Work on plugin mechanism

Context actions have become normal actions in the pluginwidget so the widget knows abot them and
can easily do things like enable/disable.
This commit is contained in:
eelke 2019-02-08 10:10:11 +01:00
parent eca8841427
commit a704332342
24 changed files with 239 additions and 267 deletions

View file

@ -11,7 +11,7 @@ void QueryToolModule::init()
std::string slot_name = SLOT(QueryTool::execute());
{
StaticAction ma("New SQL", [this] (IPluginContentWidgetContext* context)
{ menuAction_new(context); });
{ staticAction_new(context); });
ma.setMenuLocation(MenuPath("File/New"));
ma.setToolbarLocation(ToolbarLocation("main", "new"));
ma.setIcon(QIcon(":/icons/new_query_tab.png"));
@ -20,91 +20,22 @@ void QueryToolModule::init()
}
{
StaticAction ma("Open SQL", [this] (IPluginContentWidgetContext* context)
{ menuAction_open(context); });
{ staticAction_open(context); });
ma.setMenuLocation(MenuPath("File/Open"));
ma.setToolbarLocation(ToolbarLocation("main", "open"));
ma.setIcon(QIcon(":/icons/folder.png"));
registerStaticAction(ma);
}
{
LContextAction wa("Save SQL", SLOT(save()));
wa.setMenuLocation("File/Save");
wa.setToolbarLocation(ToolbarLocation("main", "save"));
wa.setIcon(":/icons/script_save.png");
wa.setShortcut(QKeySequence(Qt::CTRL + Qt::Key_S));
registerContextAction(wa);
}
{
LContextAction wa("Save SQL as", SLOT(saveAs()));
wa.setMenuLocation("File/Save");
wa.setToolbarLocation(ToolbarLocation("main", "save"));
wa.setIcon(":/icons/script_save.png");
registerContextAction(wa);
}
{
LContextAction wa("Save copy of SQL as", SLOT(saveCopyAs()));
wa.setMenuLocation("File/Save");
wa.setToolbarLocation(ToolbarLocation("main", "save"));
//wa.setIcon(":/icons/script_save.png");
registerContextAction(wa);
}
{
LContextAction wa("&Export data", SLOT(exportData()));
wa.setMenuLocation("File/Export");
wa.setToolbarLocation(ToolbarLocation("main", "save"));
wa.setIcon(":/icons/table_save.png");
registerContextAction(wa);
}
{
LContextAction wa("Copy as C string", SLOT(copyQueryAsCString()));
wa.setMenuLocation("Edit/Copy");
wa.setToolbarLocation(ToolbarLocation("edit", "copy"));
wa.setIcon(":/icons/token_shortland_character.png");
registerContextAction(wa);
}
{
LContextAction wa("Copy as raw C++ string", SLOT(copyQueryAsRawCppString()));
wa.setMenuLocation("Edit/Copy");
wa.setIcon(":/icons/token_shortland_character.png");
registerContextAction(wa);
}
{
LContextAction wa("Execute", SLOT(execute()));
wa.setMenuLocation("Query/1");
wa.setIcon(":/icons/script_go.png");
wa.setShortcut(QKeySequence(Qt::Key_F5));
registerContextAction(wa);
}
{
LContextAction wa("Explain", SLOT(explain()));
wa.setMenuLocation("Query/2");
wa.setIcon(":/icons/lightbulb_off.png");
wa.setShortcut(QKeySequence(Qt::Key_F7));
registerContextAction(wa);
}
{
LContextAction wa("Analyze", SLOT(analyze()));
wa.setMenuLocation("Query/1");
wa.setIcon(":/icons/lightbulb.png");
wa.setShortcut(QKeySequence(Qt::SHIFT + Qt::Key_F7));
registerContextAction(wa);
}
{
LContextAction wa("Cancel", SLOT(cancel()));
wa.setMenuLocation("Query/1");
wa.setIcon(":/icons/script_delete.png");
registerContextAction(wa);
}
}
void QueryToolModule::menuAction_new(IPluginContentWidgetContext* context)
void QueryToolModule::staticAction_new(IPluginContentWidgetContext* context)
{
auto *ct = new QueryTool(context, nullptr);
context->addContentWidget(this, ct);
ct->newdoc();
}
void QueryToolModule::menuAction_open(IPluginContentWidgetContext* context)
void QueryToolModule::staticAction_open(IPluginContentWidgetContext* context)
{
QString home_dir = QStandardPaths::locate(QStandardPaths::HomeLocation, "", QStandardPaths::LocateDirectory);
QString file_name = QFileDialog::getOpenFileName(context->container(),