Made step to remove ASyncWindow in favour of usage of Future and FutureWatcher.

This should allow concurrency in the plugins to be independent from their container.

Contains also some work on the system for registering plugins.
This commit is contained in:
eelke 2018-12-30 15:46:15 +01:00
parent a54a063c13
commit 15bee33076
25 changed files with 327 additions and 52 deletions

View file

@ -0,0 +1,33 @@
#ifndef PGLPAGE_H
#define PGLPAGE_H
#include <QWidget>
#include <vector>
class IPluginContentWidgetContext;
/// Provides a pluggable system for toolbar buttons and menu actions
///
/// We will need several kind of actions
/// - create actions, these will create a new document or load from file , always available in menu
/// - save actions available when on tab
/// - edit actions
/// - custom menu?
///
/// Can we use same groupings for toolbars and menu's
/// How about additional toolbars?
///
class PluginContentWidget: public QWidget{
public:
PluginContentWidget(IPluginContentWidgetContext *context, QWidget* parent = nullptr);
/// Returns the toolbar buttons for this page
virtual std::vector<QAction*> getToolbarActions();
virtual bool canClose();
protected:
IPluginContentWidgetContext *context() { return m_context; }
private:
IPluginContentWidgetContext *m_context;
};
#endif // PGLPAGE_H