Define toolbar locations for the actions of the QueryTool module.

This commit is contained in:
eelke 2019-01-31 19:25:54 +01:00
parent 6acf70660b
commit cbb2f897aa
8 changed files with 26 additions and 4 deletions

View file

@ -13,6 +13,7 @@ void QueryToolModule::init()
MenuAction ma("New SQL", [this] (IPluginContentWidgetContext* context) MenuAction ma("New SQL", [this] (IPluginContentWidgetContext* context)
{ menuAction_new(context); }); { menuAction_new(context); });
ma.setMenuLocation(MenuPath("File/New")); ma.setMenuLocation(MenuPath("File/New"));
ma.setToolbarLocation(ToolbarLocation("main", "new"));
ma.setIcon(QIcon(":/icons/new_query_tab.png")); ma.setIcon(QIcon(":/icons/new_query_tab.png"));
ma.setShortcut(QKeySequence(Qt::CTRL + Qt::Key_N)); ma.setShortcut(QKeySequence(Qt::CTRL + Qt::Key_N));
registerMenuAction(ma); registerMenuAction(ma);
@ -21,12 +22,14 @@ void QueryToolModule::init()
MenuAction ma("Open SQL", [this] (IPluginContentWidgetContext* context) MenuAction ma("Open SQL", [this] (IPluginContentWidgetContext* context)
{ menuAction_open(context); }); { menuAction_open(context); });
ma.setMenuLocation(MenuPath("File/Open")); ma.setMenuLocation(MenuPath("File/Open"));
ma.setToolbarLocation(ToolbarLocation("main", "open"));
ma.setIcon(QIcon(":/icons/folder.png")); ma.setIcon(QIcon(":/icons/folder.png"));
registerMenuAction(ma); registerMenuAction(ma);
} }
{ {
LWidgetAction wa("Save SQL", SLOT(save())); LWidgetAction wa("Save SQL", SLOT(save()));
wa.setMenuLocation("File/Save"); wa.setMenuLocation("File/Save");
wa.setToolbarLocation(ToolbarLocation("main", "save"));
wa.setIcon(":/icons/script_save.png"); wa.setIcon(":/icons/script_save.png");
wa.setShortcut(QKeySequence(Qt::CTRL + Qt::Key_S)); wa.setShortcut(QKeySequence(Qt::CTRL + Qt::Key_S));
registerWidgetAction(wa); registerWidgetAction(wa);
@ -34,24 +37,28 @@ void QueryToolModule::init()
{ {
LWidgetAction wa("Save SQL as", SLOT(saveAs())); LWidgetAction wa("Save SQL as", SLOT(saveAs()));
wa.setMenuLocation("File/Save"); wa.setMenuLocation("File/Save");
wa.setToolbarLocation(ToolbarLocation("main", "save"));
wa.setIcon(":/icons/script_save.png"); wa.setIcon(":/icons/script_save.png");
registerWidgetAction(wa); registerWidgetAction(wa);
} }
{ {
LWidgetAction wa("Save copy of SQL as", SLOT(saveCopyAs())); LWidgetAction wa("Save copy of SQL as", SLOT(saveCopyAs()));
wa.setMenuLocation("File/Save"); wa.setMenuLocation("File/Save");
wa.setToolbarLocation(ToolbarLocation("main", "save"));
//wa.setIcon(":/icons/script_save.png"); //wa.setIcon(":/icons/script_save.png");
registerWidgetAction(wa); registerWidgetAction(wa);
} }
{ {
LWidgetAction wa("&Export data", SLOT(exportData())); LWidgetAction wa("&Export data", SLOT(exportData()));
wa.setMenuLocation("File/Export"); wa.setMenuLocation("File/Export");
wa.setToolbarLocation(ToolbarLocation("main", "save"));
wa.setIcon(":/icons/table_save.png"); wa.setIcon(":/icons/table_save.png");
registerWidgetAction(wa); registerWidgetAction(wa);
} }
{ {
LWidgetAction wa("Copy as C string", SLOT(copyQueryAsCString())); LWidgetAction wa("Copy as C string", SLOT(copyQueryAsCString()));
wa.setMenuLocation("Edit/Copy"); wa.setMenuLocation("Edit/Copy");
wa.setToolbarLocation(ToolbarLocation("edit", "copy"));
wa.setIcon(":/icons/token_shortland_character.png"); wa.setIcon(":/icons/token_shortland_character.png");
registerWidgetAction(wa); registerWidgetAction(wa);
} }

View file

@ -50,6 +50,7 @@ namespace LMainWindow_details {
using namespace LMainWindow_details; using namespace LMainWindow_details;
LMainWindow::LMainWindow(QWidget *parent) LMainWindow::LMainWindow(QWidget *parent)
: QMainWindow(parent) : QMainWindow(parent)
{ {
@ -73,7 +74,7 @@ LMainWindow::LMainWindow(QWidget *parent)
auto statusBar = new QStatusBar(this); auto statusBar = new QStatusBar(this);
setStatusBar(statusBar); setStatusBar(statusBar);
m_fileMenu = new QMenu("File", this); m_fileMenu = new QMenu(tr("File"), this);
createActions(); createActions();
m_mainToolBar->addAction(m_closeAction); m_mainToolBar->addAction(m_closeAction);

View file

@ -25,6 +25,11 @@ void LWidgetAction::setMenuLocation(MenuLocation menu_location)
m_menuLocation = std::move(menu_location); m_menuLocation = std::move(menu_location);
} }
void LWidgetAction::setToolbarLocation(ToolbarLocation toolbar_location)
{
m_toolbarLocation = toolbar_location;
}
void LWidgetAction::setShortcut(QKeySequence shortcut) void LWidgetAction::setShortcut(QKeySequence shortcut)
{ {
m_shortCut = std::move(shortcut); m_shortCut = std::move(shortcut);

View file

@ -2,6 +2,7 @@
#define LWIDGETACTION_H #define LWIDGETACTION_H
#include "MenuLocation.h" #include "MenuLocation.h"
#include "ToolbarLocation.h"
#include <QIcon> #include <QIcon>
#include <QKeySequence> #include <QKeySequence>
#include <QString> #include <QString>
@ -23,6 +24,7 @@ public:
void setIcon(const char * icon) { setIcon(QIcon(icon)); } void setIcon(const char * icon) { setIcon(QIcon(icon)); }
void setMenuLocation(MenuLocation menu_location); void setMenuLocation(MenuLocation menu_location);
void setMenuLocation(const char * menu_location) { setMenuLocation(MenuPath(menu_location)); } void setMenuLocation(const char * menu_location) { setMenuLocation(MenuPath(menu_location)); }
void setToolbarLocation(ToolbarLocation toolbar_location);
void setShortcut(QKeySequence shortcut); void setShortcut(QKeySequence shortcut);
void setText(QString text); void setText(QString text);
void setToolTip(QString tooltip); void setToolTip(QString tooltip);
@ -37,6 +39,7 @@ private:
QIcon m_icon; QIcon m_icon;
QKeySequence m_shortCut; QKeySequence m_shortCut;
MenuLocation m_menuLocation; MenuLocation m_menuLocation;
ToolbarLocation m_toolbarLocation;
const char * m_slotname; const char * m_slotname;
}; };

View file

@ -25,6 +25,11 @@ void MenuAction::setMenuLocation(MenuLocation menu_location)
m_menuLocation = std::move(menu_location); m_menuLocation = std::move(menu_location);
} }
void MenuAction::setToolbarLocation(ToolbarLocation toolbar_location)
{
m_toolbarLocation = toolbar_location;
}
void MenuAction::setShortcut(QKeySequence shortcut) void MenuAction::setShortcut(QKeySequence shortcut)
{ {
m_shortcut = std::move(shortcut); m_shortcut = std::move(shortcut);

View file

@ -27,6 +27,7 @@ public:
const MenuLocation& menuLocation() const; const MenuLocation& menuLocation() const;
void setIcon(QIcon icon); void setIcon(QIcon icon);
void setMenuLocation(MenuLocation menu_location); void setMenuLocation(MenuLocation menu_location);
void setToolbarLocation(ToolbarLocation toolbar_location);
void setShortcut(QKeySequence shortcut); void setShortcut(QKeySequence shortcut);
void setText(QString text); void setText(QString text);
void setToolTip(QString tooltip); void setToolTip(QString tooltip);
@ -41,6 +42,7 @@ private:
QIcon m_icon; QIcon m_icon;
QKeySequence m_shortcut; QKeySequence m_shortcut;
MenuLocation m_menuLocation; MenuLocation m_menuLocation;
ToolbarLocation m_toolbarLocation;
Func m_func; Func m_func;
}; };

View file

@ -12,9 +12,6 @@ public:
private: private:
QString m_menuPath; QString m_menuPath;
/// Contains the elements of the path, in general
/// more then 3 levels is a bad idea but small_vector can grow when required.
// boost::container::small_vector<int, 3> m_menuItemSeperators;
}; };

View file

@ -35,6 +35,8 @@ public:
void registerMenuAction(MenuAction action); void registerMenuAction(MenuAction action);
const MenuActionList& menuActions() const; const MenuActionList& menuActions() const;
/// "API" action that other modules can trigger by name without being linked to
/// this module. Allows for loose coupling.
void registerModuleAction(QString module_action, ModuleAction action); void registerModuleAction(QString module_action, ModuleAction action);
/// Searches for and returns a pointer to the requested module action. /// Searches for and returns a pointer to the requested module action.