diff options
author | saturneric <[email protected]> | 2024-01-08 07:39:58 +0000 |
---|---|---|
committer | saturneric <[email protected]> | 2024-01-08 07:39:58 +0000 |
commit | d4eb21eae9b26ceb5d915b53650964d6e129e8cf (patch) | |
tree | e7cc3ee1ec9289c669d9523389a45af3da5a3424 | |
parent | feat: select a directory before entering into the File Browser (diff) | |
download | GpgFrontend-d4eb21eae9b26ceb5d915b53650964d6e129e8cf.tar.gz GpgFrontend-d4eb21eae9b26ceb5d915b53650964d6e129e8cf.zip |
fix: slove issue #123 "Append fingerprint to editor" crashes if there is no editor open
-rw-r--r-- | src/ui/main_window/MainWindowSlotFunction.cpp | 22 | ||||
-rw-r--r-- | src/ui/main_window/MainWindowSlotUI.cpp | 13 | ||||
-rw-r--r-- | src/ui/widgets/TextEdit.cpp | 5 | ||||
-rw-r--r-- | src/ui/widgets/TextEdit.h | 7 |
4 files changed, 20 insertions, 27 deletions
diff --git a/src/ui/main_window/MainWindowSlotFunction.cpp b/src/ui/main_window/MainWindowSlotFunction.cpp index 40c0dcb3..3f29d281 100644 --- a/src/ui/main_window/MainWindowSlotFunction.cpp +++ b/src/ui/main_window/MainWindowSlotFunction.cpp @@ -65,10 +65,6 @@ void MainWindow::slot_find() { * Append the selected (not checked!) Key(s) To Textedit */ void MainWindow::slot_append_selected_keys() { - if (edit_->TabCount() == 0 || edit_->SlotCurPageTextEdit() == nullptr) { - return; - } - auto exported = GpgFrontend::SecureCreateSharedObject<ByteArray>(); auto key_ids = m_key_list_->GetSelected(); @@ -81,15 +77,11 @@ void MainWindow::slot_append_selected_keys() { QMessageBox::critical(this, _("Error"), _("Key Export Operation Failed.")); return; } - edit_->CurTextPage()->GetTextPage()->appendPlainText( - QString::fromStdString(*exported)); + + edit_->SlotAppendText2CurTextPage(QString::fromStdString(*exported)); } void MainWindow::slot_append_keys_create_datetime() { - if (edit_->TabCount() == 0 || edit_->SlotCurPageTextEdit() == nullptr) { - return; - } - auto key_ids = m_key_list_->GetSelected(); if (key_ids->empty()) { @@ -107,15 +99,11 @@ void MainWindow::slot_append_keys_create_datetime() { boost::posix_time::to_iso_extended_string(key.GetCreateTime()) + " (UTC) " + "\n"; - edit_->CurTextPage()->GetTextPage()->appendPlainText( + edit_->SlotAppendText2CurTextPage( QString::fromStdString(create_datetime_format_str)); } void MainWindow::slot_append_keys_expire_datetime() { - if (edit_->TabCount() == 0 || edit_->SlotCurPageTextEdit() == nullptr) { - return; - } - auto key_ids = m_key_list_->GetSelected(); if (key_ids->empty()) { @@ -133,7 +121,7 @@ void MainWindow::slot_append_keys_expire_datetime() { boost::posix_time::to_iso_extended_string(key.GetCreateTime()) + " (UTC) " + "\n"; - edit_->CurTextPage()->GetTextPage()->appendPlainText( + edit_->SlotAppendText2CurTextPage( QString::fromStdString(create_datetime_format_str)); } @@ -150,7 +138,7 @@ void MainWindow::slot_append_keys_fingerprint() { auto fingerprint_format_str = BeautifyFingerprint(key.GetFingerprint()) + "\n"; - edit_->CurTextPage()->GetTextPage()->appendPlainText( + edit_->SlotAppendText2CurTextPage( QString::fromStdString(fingerprint_format_str)); } diff --git a/src/ui/main_window/MainWindowSlotUI.cpp b/src/ui/main_window/MainWindowSlotUI.cpp index 54b4e413..430271ea 100644 --- a/src/ui/main_window/MainWindowSlotUI.cpp +++ b/src/ui/main_window/MainWindowSlotUI.cpp @@ -28,9 +28,6 @@ #include "MainWindow.h" #include "core/GpgConstants.h" -#include "core/function/CoreSignalStation.h" -#include "core/function/GlobalSettingStation.h" -#include "ui/UISignalStation.h" #include "ui/UserInterfaceUtils.h" #include "ui/dialog/Wizard.h" #include "ui/function/RaisePinentry.h" @@ -66,10 +63,7 @@ void MainWindow::slot_open_file_tab() { edit_->SlotNewFileTab(); } void MainWindow::slot_disable_tab_actions(int number) { bool disable; - if (number == -1) - disable = true; - else - disable = false; + disable = number == -1; if (edit_->CurFilePage() != nullptr) { disable = true; @@ -98,7 +92,6 @@ void MainWindow::slot_disable_tab_actions(int number) { zoom_in_act_->setDisabled(disable); clean_double_line_breaks_act_->setDisabled(disable); quote_act_->setDisabled(disable); - append_selected_keys_act_->setDisabled(disable); import_key_from_edit_act_->setDisabled(disable); cut_pgp_header_act_->setDisabled(disable); @@ -111,8 +104,8 @@ void MainWindow::slot_open_settings_dialog() { connect(dialog, &SettingsDialog::finished, this, [&]() -> void { SettingsObject general_settings_state("general_settings_state"); - int width = general_settings_state.Check("icon_size").Check("width", 24), - height = general_settings_state.Check("icon_size").Check("height", 24); + int width = general_settings_state.Check("icon_size").Check("width", 24); + int height = general_settings_state.Check("icon_size").Check("height", 24); GF_UI_LOG_DEBUG("icon_size: {} {}", width, height); general_settings_state.Check("info_font_size", 10); diff --git a/src/ui/widgets/TextEdit.cpp b/src/ui/widgets/TextEdit.cpp index 2bc25376..76bede8c 100644 --- a/src/ui/widgets/TextEdit.cpp +++ b/src/ui/widgets/TextEdit.cpp @@ -396,6 +396,11 @@ PlainTextEditorPage* TextEdit::CurTextPage() const { return qobject_cast<PlainTextEditorPage*>(tab_widget_->currentWidget()); } +void TextEdit::SlotAppendText2CurTextPage(const QString& text) { + if (CurTextPage() == nullptr) SlotNewTab(); + CurTextPage()->GetTextPage()->appendPlainText(text); +} + FilePage* TextEdit::CurFilePage() const { auto* curFilePage = qobject_cast<FilePage*>(tab_widget_->currentWidget()); if (curFilePage != nullptr) { diff --git a/src/ui/widgets/TextEdit.h b/src/ui/widgets/TextEdit.h index 4eb1d537..842cb406 100644 --- a/src/ui/widgets/TextEdit.h +++ b/src/ui/widgets/TextEdit.h @@ -282,6 +282,13 @@ class TextEdit : public QWidget { */ void SlotSelectAll() const; + /** + * @brief + * + * @param text + */ + void SlotAppendText2CurTextPage(const QString& text); + protected: /** * @brief Saves the content of currentTab to the file filename |