Context actions have become normal actions in the pluginwidget so the widget knows abot them and can easily do things like enable/disable.
45 lines
1.2 KiB
C++
45 lines
1.2 KiB
C++
#ifndef PLUGINCONTENTWIDGETCONTEXTBASE_H
|
|
#define PLUGINCONTENTWIDGETCONTEXTBASE_H
|
|
|
|
#include "plugin_support/IPluginContentWidgetContext.h"
|
|
#include <QList>
|
|
|
|
class LContextAction;
|
|
class QToolBar;
|
|
class QAction;
|
|
|
|
class LWidgetData {
|
|
public:
|
|
LWidgetData(PluginModule *module);
|
|
PluginModule* module() { return m_module; }
|
|
void init(PluginContentWidget *widget);
|
|
|
|
private:
|
|
PluginModule *m_module;
|
|
};
|
|
|
|
/// Provides base implementation of IPluginContentWidgetContext
|
|
class PluginContentWidgetContextBase : public IPluginContentWidgetContext
|
|
{
|
|
public:
|
|
PluginContentWidgetContextBase();
|
|
|
|
void moduleAction(
|
|
const QString &module_identifier,
|
|
QString module_action,
|
|
const ModuleActionParameters &action_params
|
|
) override;
|
|
|
|
void addContentWidget(PluginModule *module, PluginContentWidget *widget) override;
|
|
void removeContentWidget(PluginContentWidget *widget) override;
|
|
|
|
void addWidgetActionsToToolbar(PluginContentWidget *widget, QToolBar *toolbar);
|
|
void removeWidgetActionsFromToolbar(PluginContentWidget *widget, QToolBar *toolbar);
|
|
private:
|
|
|
|
using WidgetLst = std::map<PluginContentWidget*, LWidgetData>;
|
|
|
|
WidgetLst m_widgetLst;
|
|
};
|
|
|
|
#endif // PLUGINCONTENTWIDGETCONTEXTBASE_H
|