aboutsummaryrefslogtreecommitdiffstats
path: root/src/ui/main_window
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/main_window')
-rw-r--r--src/ui/main_window/MainWindow.cpp45
-rw-r--r--src/ui/main_window/MainWindow.h16
-rw-r--r--src/ui/main_window/MainWindowSlotUI.cpp7
-rw-r--r--src/ui/main_window/MainWindowUI.cpp39
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"));