#include "QueryToolModule.h" #include "QueryTool.h" #include "plugin_support/IPluginContentWidgetContext.h" #include "plugin_support/PluginRegister.h" #include #include void QueryToolModule::init() { std::string slot_name = SLOT(QueryTool::execute()); { StaticAction ma("New SQL", [this] (IPluginContentWidgetContext* context) { menuAction_new(context); }); ma.setMenuLocation(MenuPath("File/New")); ma.setToolbarLocation(ToolbarLocation("main", "new")); ma.setIcon(QIcon(":/icons/new_query_tab.png")); ma.setShortcut(QKeySequence(Qt::CTRL + Qt::Key_N)); registerStaticAction(ma); } { StaticAction ma("Open SQL", [this] (IPluginContentWidgetContext* context) { menuAction_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"); registerContextAction(wa); } { LContextAction wa("Explain", SLOT(explain())); wa.setMenuLocation("Query/2"); wa.setIcon(":/icons/lightbulb_off.png"); registerContextAction(wa); } { LContextAction wa("Analyze", SLOT(analyze())); wa.setMenuLocation("Query/1"); wa.setIcon(":/icons/lightbulb.png"); 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) { auto *ct = new QueryTool(context, nullptr); context->addContentWidget(this, ct); ct->newdoc(); } void QueryToolModule::menuAction_open(IPluginContentWidgetContext* context) { QString home_dir = QStandardPaths::locate(QStandardPaths::HomeLocation, "", QStandardPaths::LocateDirectory); QString file_name = QFileDialog::getOpenFileName(context->container(), tr("Open sql query"), home_dir, tr("SQL files (*.sql *.txt)")); if ( ! file_name.isEmpty()) { auto *ct = new QueryTool(context, nullptr); context->addContentWidget(this, ct); ct->load(file_name); } } REGISTER_PLUGIN_MODULE_CAT(QueryToolModule, "Query tool", "pglab.querytool", "database")