diff options
Diffstat (limited to 'src/ui/main_window')
-rw-r--r-- | src/ui/main_window/MainWindow.cpp | 45 | ||||
-rw-r--r-- | src/ui/main_window/MainWindow.h | 16 | ||||
-rw-r--r-- | src/ui/main_window/MainWindowSlotUI.cpp | 7 | ||||
-rw-r--r-- | src/ui/main_window/MainWindowUI.cpp | 39 |
4 files changed, 47 insertions, 60 deletions
diff --git a/src/ui/main_window/MainWindow.cpp b/src/ui/main_window/MainWindow.cpp index e17dacca..104f54d8 100644 --- a/src/ui/main_window/MainWindow.cpp +++ b/src/ui/main_window/MainWindow.cpp @@ -28,7 +28,6 @@ #include "MainWindow.h" -#include "core/function/CacheManager.h" #include "core/function/GlobalSettingStation.h" #include "core/model/SettingsObject.h" #include "core/module/ModuleManager.h" @@ -138,17 +137,12 @@ void MainWindow::Init() noexcept { restore_settings(); - edit_->CurTextPage()->setFocus(); - info_board_->AssociateTabWidget(edit_->TabWidget()); // check update if needed check_update_at_startup(); - // recover unsaved page from cache if it exists - recover_editor_unsaved_pages_from_cache(); - - slot_update_operations_menu_by_checked_keys(~0); + slot_switch_menu_control_mode(0); // check if need to open wizard window if (GetSettings().value("wizard/show_wizard", true).toBool()) { @@ -210,6 +204,7 @@ void MainWindow::restore_settings() { icon_style_ = appearance.tool_bar_button_style; import_button_->setToolButtonStyle(icon_style_); + workspace_button_->setToolButtonStyle(icon_style_); this->setToolButtonStyle(icon_style_); // icons ize @@ -217,40 +212,8 @@ void MainWindow::restore_settings() { QSize(appearance.tool_bar_icon_width, appearance.tool_bar_icon_height)); import_button_->setIconSize( QSize(appearance.tool_bar_icon_width, appearance.tool_bar_icon_height)); -} - -void MainWindow::recover_editor_unsaved_pages_from_cache() { - auto json_data = - CacheManager::GetInstance().LoadDurableCache("editor_unsaved_pages"); - - if (json_data.isEmpty() || !json_data.isArray()) { - return; - } - - bool first = true; - - auto unsaved_page_array = json_data.array(); - for (const auto& value_ref : unsaved_page_array) { - if (!value_ref.isObject()) continue; - auto unsaved_page_json = value_ref.toObject(); - - if (!unsaved_page_json.contains("title") || - !unsaved_page_json.contains("content")) { - continue; - } - - auto title = unsaved_page_json["title"].toString(); - auto content = unsaved_page_json["content"].toString(); - - LOG_D() << "restoring tab, title: " << title; - - if (first) { - edit_->SlotCloseTab(); - first = false; - } - - edit_->SlotNewTabWithContent(title, content); - } + workspace_button_->setIconSize( + QSize(appearance.tool_bar_icon_width, appearance.tool_bar_icon_height)); } void MainWindow::close_attachment_dock() { diff --git a/src/ui/main_window/MainWindow.h b/src/ui/main_window/MainWindow.h index d89356aa..15fb9fb1 100644 --- a/src/ui/main_window/MainWindow.h +++ b/src/ui/main_window/MainWindow.h @@ -537,6 +537,12 @@ class MainWindow : public GeneralMainWindow { */ void slot_popup_menu_by_key_list(QContextMenuEvent* event, KeyTable*); + /** + * @brief + * + */ + void slot_open_file_tab_with_directory(); + private: /** * @details Create actions for the main-menu and the context-menu of the @@ -580,11 +586,6 @@ class MainWindow : public GeneralMainWindow { void restore_settings(); /** - * @details - */ - void recover_editor_unsaved_pages_from_cache(); - - /** * @brief Create a action object * * @param id @@ -692,6 +693,7 @@ class MainWindow : public GeneralMainWindow { QMenu* key_menu_{}; ///< Submenu for key-operations QMenu* view_menu_{}; ///< Submenu for view operations QMenu* import_key_menu_{}; ///< Submenu for import operations + QMenu* workspace_menu_{}; QToolBar* crypt_tool_bar_{}; ///< Toolbar holding crypt actions QToolBar* file_tool_bar_{}; ///< Toolbar holding file actions @@ -701,6 +703,7 @@ class MainWindow : public GeneralMainWindow { QToolBar* key_tool_bar_{}; ///< Toolbar holding key operations QToolButton* import_button_{}; ///< Tool button for import dropdown menu in toolbar + QToolButton* workspace_button_{}; QDockWidget* key_list_dock_{}; ///< Encrypt Dock QDockWidget* attachment_dock_{}; ///< Attachment Dock QDockWidget* info_board_dock_{}; @@ -709,8 +712,8 @@ class MainWindow : public GeneralMainWindow { QAction* new_email_tab_act_{}; ///< Action to create email tab QAction* switch_tab_up_act_{}; ///< Action to switch tab up QAction* switch_tab_down_act_{}; ///< Action to switch tab down - QAction* open_act_{}; ///< Action to open file QAction* browser_act_{}; ///< Action to open file browser + QAction* browser_dir_act_{}; ///< Action to open file browser QAction* save_act_{}; ///< Action to save file QAction* save_as_act_{}; ///< Action to save file as QAction* print_act_{}; ///< Action to print @@ -724,7 +727,6 @@ class MainWindow : public GeneralMainWindow { QAction* verify_act_{}; ///< Action to verify text QAction* import_key_from_edit_act_{}; ///< Action to import key from edit QAction* clean_double_line_breaks_act_{}; ///< Action to remove double - ///< line breaks QAction* gnupg_controller_open_act_{}; ///< QAction* module_controller_open_act_{}; ///< diff --git a/src/ui/main_window/MainWindowSlotUI.cpp b/src/ui/main_window/MainWindowSlotUI.cpp index 49958c9f..e0a72ed1 100644 --- a/src/ui/main_window/MainWindowSlotUI.cpp +++ b/src/ui/main_window/MainWindowSlotUI.cpp @@ -60,6 +60,10 @@ void MainWindow::slot_open_key_management() { void MainWindow::slot_open_file_tab() { edit_->SlotNewFileBrowserTab(); } +void MainWindow::slot_open_file_tab_with_directory() { + edit_->SlotNewFileBrowserTabWithDirectory(); +} + void MainWindow::slot_switch_menu_control_mode(int index) { auto disable = false; if (index == -1) disable = true; @@ -96,6 +100,9 @@ void MainWindow::slot_switch_menu_control_mode(int index) { if (edit_->CurFilePage() != nullptr) { auto* file_page = edit_->CurFilePage(); emit file_page->SignalCurrentTabChanged(); + } else { + operations_menu_mask_ = ~0; + slot_update_operations_menu_by_checked_keys(operations_menu_mask_); } } diff --git a/src/ui/main_window/MainWindowUI.cpp b/src/ui/main_window/MainWindowUI.cpp index 41463b7a..14045c49 100644 --- a/src/ui/main_window/MainWindowUI.cpp +++ b/src/ui/main_window/MainWindowUI.cpp @@ -41,20 +41,22 @@ namespace GpgFrontend::UI { void MainWindow::create_actions() { new_tab_act_ = create_action( - "new_tab", tr("New"), ":/icons/misc_doc.png", tr("Open a new file"), + "new_tab", tr("New Text"), ":/icons/misc_doc.png", tr("Open a new file"), {QKeySequence(Qt::CTRL | Qt::Key_N), QKeySequence(Qt::CTRL | Qt::Key_T)}); connect(new_tab_act_, &QAction::triggered, edit_, &TextEdit::SlotNewTab); - open_act_ = create_action("open", tr("Open..."), ":/icons/fileopen.png", - tr("Open an existing file"), {QKeySequence::Open}); - connect(open_act_, &QAction::triggered, edit_, &TextEdit::SlotOpen); - - browser_act_ = create_action( - "file_browser", tr("File Panel"), ":/icons/file-operator.png", - tr("Open a file panel"), {QKeySequence(Qt::CTRL | Qt::Key_B)}); + browser_act_ = + create_action("file_browser", tr("Open File"), + ":/icons/file-operator.png", tr("Open a file panel")); connect(browser_act_, &QAction::triggered, this, &MainWindow::slot_open_file_tab); + browser_dir_act_ = create_action( + "file_browser_dir", tr("Open Directory"), ":/icons/file-operator.png", + tr("Open a file panel"), {QKeySequence(Qt::CTRL | Qt::Key_B)}); + connect(browser_dir_act_, &QAction::triggered, this, + &MainWindow::slot_open_file_tab_with_directory); + save_act_ = create_action("save", tr("Save File"), ":/icons/filesave.png", tr("Save the current File"), {QKeySequence::Save}); connect(save_act_, &QAction::triggered, edit_, &TextEdit::SlotSave); @@ -412,9 +414,12 @@ void MainWindow::create_menus() { file_menu_->addAction(new_email_tab_act_); } - file_menu_->addAction(browser_act_); - file_menu_->addAction(open_act_); file_menu_->addSeparator(); + workspace_menu_ = file_menu_->addMenu(tr("Workspace")); + workspace_menu_->addAction(browser_act_); + workspace_menu_->addAction(browser_dir_act_); + file_menu_->addSeparator(); + file_menu_->addAction(save_act_); file_menu_->addAction(save_as_act_); file_menu_->addSeparator(); @@ -493,14 +498,24 @@ void MainWindow::create_menus() { void MainWindow::create_tool_bars() { file_tool_bar_ = addToolBar(tr("File")); file_tool_bar_->setObjectName("fileToolBar"); + + // add dropdown menu for workspace + workspace_button_ = new QToolButton(); + workspace_button_->setMenu(workspace_menu_); + workspace_button_->setPopupMode(QToolButton::InstantPopup); + workspace_button_->setIcon(QIcon(":/icons/workspace.png")); + workspace_button_->setToolTip(tr("Open Workspace...")); + workspace_button_->setText(tr("Workspace")); + + file_tool_bar_->addWidget(workspace_button_); + file_tool_bar_->addSeparator(); + file_tool_bar_->addAction(new_tab_act_); if (Module::IsModuleActivate(kEmailModuleID)) { file_tool_bar_->addAction(new_email_tab_act_); } - file_tool_bar_->addAction(open_act_); - file_tool_bar_->addAction(browser_act_); view_menu_->addAction(file_tool_bar_->toggleViewAction()); crypt_tool_bar_ = addToolBar(tr("Operations")); |