|
@@ -20,6 +20,7 @@
|
|
|
#include <core/configmgr.h>
|
|
|
#include <core/coreconfig.h>
|
|
|
#include <core/fileopenparameters.h>
|
|
|
+#include "propertydefs.h"
|
|
|
#include "dialogs/settings/settingsdialog.h"
|
|
|
|
|
|
using namespace vnotex;
|
|
@@ -39,43 +40,18 @@ QToolBar *ToolBarHelper::setupFileToolBar(MainWindow *p_win, QToolBar *p_toolBar
|
|
|
tb = createToolBar(p_win, MainWindow::tr("File"), "FileToolBar");
|
|
|
}
|
|
|
|
|
|
- // New.
|
|
|
+ // Notebook.
|
|
|
{
|
|
|
- const auto &coreConfig = ConfigMgr::getInst().getCoreConfig();
|
|
|
+ auto act = tb->addAction(generateIcon("notebook_menu.svg"), MainWindow::tr("Notebook"));
|
|
|
|
|
|
- auto newBtn = WidgetsFactory::createToolButton(tb);
|
|
|
- newBtn->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
|
|
|
+ auto toolBtn = dynamic_cast<QToolButton *>(tb->widgetForAction(act));
|
|
|
+ Q_ASSERT(toolBtn);
|
|
|
+ toolBtn->setPopupMode(QToolButton::InstantPopup);
|
|
|
+ toolBtn->setProperty(PropertyDefs::s_toolButtonWithoutMenuIndicator, true);
|
|
|
|
|
|
- // Popup menu.
|
|
|
auto newMenu = WidgetsFactory::createMenu(tb);
|
|
|
- newBtn->setMenu(newMenu);
|
|
|
+ toolBtn->setMenu(newMenu);
|
|
|
|
|
|
- // New note.
|
|
|
- auto newNoteAct = newMenu->addAction(generateIcon("new_note.svg"),
|
|
|
- MainWindow::tr("New Note"),
|
|
|
- newMenu,
|
|
|
- []() {
|
|
|
- emit VNoteX::getInst().newNoteRequested();
|
|
|
- });
|
|
|
- WidgetUtils::addActionShortcut(newNoteAct,
|
|
|
- coreConfig.getShortcut(CoreConfig::Shortcut::NewNote));
|
|
|
- newBtn->setDefaultAction(newNoteAct);
|
|
|
- // To hide the shortcut text shown in button.
|
|
|
- newBtn->setText(MainWindow::tr("New Note"));
|
|
|
-
|
|
|
- newMenu->addSeparator();
|
|
|
-
|
|
|
- // New folder.
|
|
|
- newMenu->addAction(generateIcon("new_folder.svg"),
|
|
|
- MainWindow::tr("New Folder"),
|
|
|
- newMenu,
|
|
|
- []() {
|
|
|
- emit VNoteX::getInst().newFolderRequested();
|
|
|
- });
|
|
|
-
|
|
|
- newMenu->addSeparator();
|
|
|
-
|
|
|
- // New notebook.
|
|
|
newMenu->addAction(generateIcon("new_notebook.svg"),
|
|
|
MainWindow::tr("New Notebook"),
|
|
|
newMenu,
|
|
@@ -91,6 +67,8 @@ QToolBar *ToolBarHelper::setupFileToolBar(MainWindow *p_win, QToolBar *p_toolBar
|
|
|
emit VNoteX::getInst().newNotebookFromFolderRequested();
|
|
|
});
|
|
|
|
|
|
+ newMenu->addSeparator();
|
|
|
+
|
|
|
// Import notebook.
|
|
|
newMenu->addAction(generateIcon("import_notebook.svg"),
|
|
|
MainWindow::tr("Import Notebook"),
|
|
@@ -106,21 +84,38 @@ QToolBar *ToolBarHelper::setupFileToolBar(MainWindow *p_win, QToolBar *p_toolBar
|
|
|
[]() {
|
|
|
emit VNoteX::getInst().importLegacyNotebookRequested();
|
|
|
});
|
|
|
+ }
|
|
|
|
|
|
- newMenu->addSeparator();
|
|
|
+ // New Note.
|
|
|
+ {
|
|
|
+ const auto &coreConfig = ConfigMgr::getInst().getCoreConfig();
|
|
|
|
|
|
- // Import file.
|
|
|
- newMenu->addAction(MainWindow::tr("Import File"),
|
|
|
- newMenu,
|
|
|
- []() {
|
|
|
- emit VNoteX::getInst().importFileRequested();
|
|
|
- });
|
|
|
+ auto newBtn = WidgetsFactory::createToolButton(tb);
|
|
|
+ newBtn->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
|
|
|
|
|
|
- // Import folder.
|
|
|
- newMenu->addAction(MainWindow::tr("Import Folder"),
|
|
|
+ // Popup menu.
|
|
|
+ auto newMenu = WidgetsFactory::createMenu(tb);
|
|
|
+ newBtn->setMenu(newMenu);
|
|
|
+
|
|
|
+ // New note.
|
|
|
+ auto newNoteAct = newMenu->addAction(generateIcon("new_note.svg"),
|
|
|
+ MainWindow::tr("New Note"),
|
|
|
+ newMenu,
|
|
|
+ []() {
|
|
|
+ emit VNoteX::getInst().newNoteRequested();
|
|
|
+ });
|
|
|
+ WidgetUtils::addActionShortcut(newNoteAct,
|
|
|
+ coreConfig.getShortcut(CoreConfig::Shortcut::NewNote));
|
|
|
+ newBtn->setDefaultAction(newNoteAct);
|
|
|
+ // To hide the shortcut text shown in button.
|
|
|
+ newBtn->setText(MainWindow::tr("New Note"));
|
|
|
+
|
|
|
+ // New folder.
|
|
|
+ newMenu->addAction(generateIcon("new_folder.svg"),
|
|
|
+ MainWindow::tr("New Folder"),
|
|
|
newMenu,
|
|
|
[]() {
|
|
|
- emit VNoteX::getInst().importFolderRequested();
|
|
|
+ emit VNoteX::getInst().newFolderRequested();
|
|
|
});
|
|
|
|
|
|
newMenu->addSeparator();
|
|
@@ -147,6 +142,33 @@ QToolBar *ToolBarHelper::setupFileToolBar(MainWindow *p_win, QToolBar *p_toolBar
|
|
|
tb->addWidget(newBtn);
|
|
|
}
|
|
|
|
|
|
+ // Import and export.
|
|
|
+ {
|
|
|
+ auto act = tb->addAction(generateIcon("import_export_menu.svg"), MainWindow::tr("Import And Export"));
|
|
|
+
|
|
|
+ auto btn = dynamic_cast<QToolButton *>(tb->widgetForAction(act));
|
|
|
+ Q_ASSERT(btn);
|
|
|
+ btn->setPopupMode(QToolButton::InstantPopup);
|
|
|
+ btn->setProperty(PropertyDefs::s_toolButtonWithoutMenuIndicator, true);
|
|
|
+
|
|
|
+ auto newMenu = WidgetsFactory::createMenu(tb);
|
|
|
+ btn->setMenu(newMenu);
|
|
|
+
|
|
|
+ // Import file.
|
|
|
+ newMenu->addAction(MainWindow::tr("Import File"),
|
|
|
+ newMenu,
|
|
|
+ []() {
|
|
|
+ emit VNoteX::getInst().importFileRequested();
|
|
|
+ });
|
|
|
+
|
|
|
+ // Import folder.
|
|
|
+ newMenu->addAction(MainWindow::tr("Import Folder"),
|
|
|
+ newMenu,
|
|
|
+ []() {
|
|
|
+ emit VNoteX::getInst().importFolderRequested();
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
return tb;
|
|
|
}
|
|
|
|
|
@@ -176,9 +198,11 @@ QToolBar *ToolBarHelper::setupSettingsToolBar(MainWindow *p_win, QToolBar *p_too
|
|
|
|
|
|
auto btn = WidgetsFactory::createToolButton(tb);
|
|
|
|
|
|
- auto expandAct = new QAction(generateIcon("expand.svg"),
|
|
|
- MainWindow::tr("Expand Content Area"),
|
|
|
- btn);
|
|
|
+ auto menu = WidgetsFactory::createMenu(tb);
|
|
|
+ btn->setMenu(menu);
|
|
|
+
|
|
|
+ auto expandAct = menu->addAction(generateIcon("expand.svg"),
|
|
|
+ MainWindow::tr("Expand Content Area"));
|
|
|
WidgetUtils::addActionShortcut(expandAct,
|
|
|
coreConfig.getShortcut(CoreConfig::Shortcut::ExpandContentArea));
|
|
|
expandAct->setCheckable(true);
|
|
@@ -190,9 +214,6 @@ QToolBar *ToolBarHelper::setupSettingsToolBar(MainWindow *p_win, QToolBar *p_too
|
|
|
});
|
|
|
btn->setDefaultAction(expandAct);
|
|
|
|
|
|
- auto menu = WidgetsFactory::createMenu(tb);
|
|
|
- btn->setMenu(menu);
|
|
|
-
|
|
|
auto fullScreenAct = new FullScreenToggleAction(p_win,
|
|
|
generateIcon("fullscreen.svg"),
|
|
|
menu);
|
|
@@ -221,7 +242,11 @@ QToolBar *ToolBarHelper::setupSettingsToolBar(MainWindow *p_win, QToolBar *p_too
|
|
|
{
|
|
|
const auto &coreConfig = ConfigMgr::getInst().getCoreConfig();
|
|
|
|
|
|
- auto btn = WidgetsFactory::createToolButton(tb);
|
|
|
+ auto act = tb->addAction(generateIcon("settings_menu.svg"), MainWindow::tr("Settings"));
|
|
|
+ auto btn = dynamic_cast<QToolButton *>(tb->widgetForAction(act));
|
|
|
+ Q_ASSERT(btn);
|
|
|
+ btn->setPopupMode(QToolButton::InstantPopup);
|
|
|
+ btn->setProperty(PropertyDefs::s_toolButtonWithoutMenuIndicator, true);
|
|
|
|
|
|
auto menu = WidgetsFactory::createMenu(tb);
|
|
|
btn->setMenu(menu);
|
|
@@ -235,7 +260,6 @@ QToolBar *ToolBarHelper::setupSettingsToolBar(MainWindow *p_win, QToolBar *p_too
|
|
|
});
|
|
|
WidgetUtils::addActionShortcut(settingsAct,
|
|
|
coreConfig.getShortcut(CoreConfig::Shortcut::Settings));
|
|
|
- btn->setDefaultAction(settingsAct);
|
|
|
|
|
|
menu->addSeparator();
|
|
|
|
|
@@ -279,13 +303,15 @@ QToolBar *ToolBarHelper::setupSettingsToolBar(MainWindow *p_win, QToolBar *p_too
|
|
|
[p_win]() {
|
|
|
p_win->resetStateAndGeometry();
|
|
|
});
|
|
|
-
|
|
|
- tb->addWidget(btn);
|
|
|
}
|
|
|
|
|
|
- // WhatsThis.
|
|
|
+ // Help.
|
|
|
{
|
|
|
- auto btn = WidgetsFactory::createToolButton(tb);
|
|
|
+ auto act = tb->addAction(generateIcon("help_menu.svg"), MainWindow::tr("Help"));
|
|
|
+ auto btn = dynamic_cast<QToolButton *>(tb->widgetForAction(act));
|
|
|
+ Q_ASSERT(btn);
|
|
|
+ btn->setPopupMode(QToolButton::InstantPopup);
|
|
|
+ btn->setProperty(PropertyDefs::s_toolButtonWithoutMenuIndicator, true);
|
|
|
|
|
|
auto menu = WidgetsFactory::createMenu(tb);
|
|
|
btn->setMenu(menu);
|
|
@@ -297,7 +323,6 @@ QToolBar *ToolBarHelper::setupSettingsToolBar(MainWindow *p_win, QToolBar *p_too
|
|
|
QWhatsThis::enterWhatsThisMode();
|
|
|
});
|
|
|
whatsThisAct->setToolTip(MainWindow::tr("Enter WhatsThis mode and click somewhere to show help information"));
|
|
|
- btn->setDefaultAction(whatsThisAct);
|
|
|
|
|
|
menu->addSeparator();
|
|
|
|
|
@@ -327,6 +352,14 @@ QToolBar *ToolBarHelper::setupSettingsToolBar(MainWindow *p_win, QToolBar *p_too
|
|
|
|
|
|
menu->addSeparator();
|
|
|
|
|
|
+ menu->addAction(MainWindow::tr("Feedback And Discussions"),
|
|
|
+ menu,
|
|
|
+ []() {
|
|
|
+ WidgetUtils::openUrlByDesktop(QUrl("https://github.com/vnotex/vnote/discussions"));
|
|
|
+ });
|
|
|
+
|
|
|
+ menu->addSeparator();
|
|
|
+
|
|
|
menu->addAction(MainWindow::tr("About"),
|
|
|
menu,
|
|
|
[p_win]() {
|
|
@@ -340,8 +373,6 @@ QToolBar *ToolBarHelper::setupSettingsToolBar(MainWindow *p_win, QToolBar *p_too
|
|
|
aboutQtAct->setMenuRole(QAction::AboutQtRole);
|
|
|
MainWindow::connect(aboutQtAct, &QAction::triggered,
|
|
|
qApp, &QApplication::aboutQt);
|
|
|
-
|
|
|
- tb->addWidget(btn);
|
|
|
}
|
|
|
|
|
|
return tb;
|