GpgFrontend Project
A Free, Powerful, Easy-to-Use, Compact, Cross-Platform, and Installation-Free OpenPGP(pgp) Crypto Tool.
MainWindow.h
1
29#ifndef __GPGWIN_H__
30#define __GPGWIN_H__
31
32#include "core/GpgConstants.h"
33#include "core/function/result_analyse/GpgDecryptResultAnalyse.h"
34#include "core/function/result_analyse/GpgEncryptResultAnalyse.h"
35#include "core/function/result_analyse/GpgSignResultAnalyse.h"
36#include "ui/GpgFrontendUI.h"
37#include "ui/KeyMgmt.h"
38#include "ui/dialog/WaitingDialog.h"
39#include "ui/dialog/Wizard.h"
40#include "ui/help/AboutDialog.h"
41#include "ui/import_export/KeyUploadDialog.h"
42#include "ui/settings/SettingsDialog.h"
43#include "ui/widgets/FindWidget.h"
44#include "ui/widgets/InfoBoardWidget.h"
45#include "ui/widgets/TextEdit.h"
46
47namespace GpgFrontend::UI {
52class MainWindow : public QMainWindow {
53 Q_OBJECT
54
55 public:
56
57 struct CryptoMenu{
58 using OperationType = unsigned int;
59
60 static constexpr OperationType None = 0;
61 static constexpr OperationType Encrypt = 1 << 0;
62 static constexpr OperationType Sign = 1 << 1;
63 static constexpr OperationType Decrypt = 1 << 2;
64 static constexpr OperationType Verify = 1 << 3;
65 static constexpr OperationType EncryptAndSign = 1 << 4;
66 static constexpr OperationType DecryptAndVerify = 1 << 5;
67 };
68
73 MainWindow();
74
78 void Init() noexcept;
79
83 void SetCryptoMenuStatus(CryptoMenu::OperationType type);
84
85 signals:
86
90 void SignalLoaded();
91
92
93 public slots:
94
98 void SlotSetStatusBarText(const QString& text);
99
100 protected:
106 void closeEvent(QCloseEvent* event) override;
107
108 public slots:
109
113 void SlotOpenFile(QString& path);
114
118 void SlotFileEncrypt();
119
123 void SlotFileDecrypt();
124
128 void SlotFileSign();
129
133 void SlotFileVerify();
134
138 void SlotFileEncryptSign();
139
144
149 void SlotSetRestartNeeded(bool needed);
150
151 private slots:
152
157 void slot_encrypt();
158
163 void slot_encrypt_sign();
164
169 void slot_decrypt();
170
175 void slot_sign();
176
182 void slot_verify();
183
188 void slot_decrypt_verify();
189
194
199
204
208 void slot_find();
209
213 void slot_start_wizard();
214
219
224
230
235
239 void slot_open_file_tab();
240
245
251
255 void slot_cut_pgp_header();
256
260 void slot_add_pgp_header();
261
266 void slot_disable_tab_actions(int number);
267
271 void slot_version_upgrade(const SoftwareVersion& version);
272
273 private:
278 void create_actions();
279
283 void create_menus();
284
288 void create_tool_bars();
289
293 void create_status_bar();
294
298 void create_dock_windows();
299
304
309
313 void restore_settings();
314
318 void save_settings();
319
323 [[nodiscard]] bool get_restart_needed() const;
324
326 QMenu* file_menu_{};
327 QMenu* edit_menu_{};
328 QMenu* crypt_menu_{};
329 QMenu* help_menu_{};
330 QMenu* key_menu_{};
331 QMenu* view_menu_{};
333#ifdef SMTP_SUPPORT
334 QMenu* email_menu_{};
335#endif
336
338 QToolBar* crypt_tool_bar_{};
339 QToolBar* file_tool_bar_{};
340 QToolBar* edit_tool_bar_{};
341 QToolBar*
343 QToolBar* key_tool_bar_{};
344 QToolButton*
346 QDockWidget* key_list_dock_{};
347 QDockWidget* attachment_dock_{};
348 QDockWidget* info_board_dock_{};
349
350 QAction* new_tab_act_{};
353 QAction* open_act_{};
354 QAction* browser_act_{};
355 QAction* save_act_{};
356 QAction* save_as_act_{};
357 QAction* print_act_{};
358 QAction* close_tab_act_{};
359 QAction* quit_act_{};
360 QAction* encrypt_act_{};
361 QAction* encrypt_sign_act_{};
363 QAction* decrypt_act_{};
364 QAction* sign_act_{};
365 QAction* verify_act_{};
369
370 QAction*
375 QAction* copy_act_{};
376 QAction* quote_act_{};
377 QAction* cut_act_{};
378 QAction* paste_act_{};
379 QAction* select_all_act_{};
380 QAction* find_act_{};
381 QAction* undo_act_{};
382 QAction* redo_act_{};
383 QAction* zoom_in_act_{};
384 QAction* zoom_out_act_{};
385 QAction* about_act_{};
386 QAction* check_update_act_{};
387 QAction* translate_act_{};
390 QAction* start_wizard_act_{};
393 QAction* import_key_from_file_act_{};
394 QAction* import_key_from_clipboard_act_{};
395 QAction* import_key_from_key_server_act_{};
396
397 QLabel* status_bar_icon_{};
398
399 KeyList* m_key_list_{};
400 InfoBoardWidget* info_board_{};
401
402 bool attachment_dock_created_{};
403 bool restart_needed_{};
404 bool prohibit_update_checking_ = false;
405};
406
407} // namespace GpgFrontend::UI
408
409#endif // __GPGWIN_H__
Definition: MainWindow.h:52
QAction * import_key_from_edit_act_
Action to import key from edit.
Definition: MainWindow.h:366
void slot_show_key_details()
Definition: MainWindowSlotFunction.cpp:476
void create_dock_windows()
Definition: MainWindowUI.cpp:445
void SlotOpenFile(QString &path)
Definition: MainWindowSlotFunction.cpp:504
void Init() noexcept
Definition: MainWindow.cpp:46
QAction * close_tab_act_
Action to print.
Definition: MainWindow.h:358
void SlotFileDecrypt()
Definition: MainWindowFileSlotFunction.cpp:283
void create_actions()
Definition: MainWindowUI.cpp:34
QAction * clean_double_line_breaks_act_
Definition: MainWindow.h:367
QAction * sign_act_
Action to sign text.
Definition: MainWindow.h:364
QMenu * view_menu_
Submenu for view operations.
Definition: MainWindow.h:331
QAction * verify_act_
Action to verify text.
Definition: MainWindow.h:365
QMenu * key_menu_
Submenu for key-operations.
Definition: MainWindow.h:330
void slot_open_key_management()
Definition: MainWindowSlotUI.cpp:52
void closeEvent(QCloseEvent *event) override
Definition: MainWindow.cpp:316
void create_status_bar()
Definition: MainWindowUI.cpp:429
void slot_decrypt_verify()
Definition: MainWindowSlotFunction.cpp:375
QToolBar * file_tool_bar_
Toolbar holding file actions.
Definition: MainWindow.h:339
QMenu * crypt_menu_
Submenu for crypt-operations.
Definition: MainWindow.h:328
void restore_settings()
Definition: MainWindow.cpp:146
QAction * save_as_act_
Action to save file as.
Definition: MainWindow.h:356
QAction * encrypt_sign_act_
Action to encrypt and sign text.
Definition: MainWindow.h:361
void slot_disable_tab_actions(int number)
Definition: MainWindowSlotUI.cpp:60
void SlotFileEncryptSign()
Definition: MainWindowFileSlotFunction.cpp:536
void slot_open_file_tab()
Definition: MainWindowSlotUI.cpp:58
QAction * cut_act_
Action to cut text.
Definition: MainWindow.h:377
void slot_encrypt_sign()
Definition: MainWindowSlotFunction.cpp:276
QAction * cut_pgp_header_act_
Action for cutting the PGP header.
Definition: MainWindow.h:391
QToolBar * key_tool_bar_
Toolbar holding key operations.
Definition: MainWindow.h:343
QAction * browser_act_
Action to open file browser.
Definition: MainWindow.h:354
QAction * zoom_in_act_
Action to zoom in.
Definition: MainWindow.h:383
void slot_sign()
Definition: MainWindowSlotFunction.cpp:120
QAction * new_tab_act_
Action to create new tab.
Definition: MainWindow.h:350
void close_attachment_dock()
Definition: MainWindow.cpp:307
void slot_version_upgrade(const SoftwareVersion &version)
Definition: MainWindowSlotFunction.cpp:506
QAction * open_act_
Action to open file.
Definition: MainWindow.h:353
void slot_import_key_from_edit()
Definition: MainWindowSlotUI.cpp:46
QAction * find_act_
Action to find text.
Definition: MainWindow.h:380
QAction * paste_act_
Action to paste text.
Definition: MainWindow.h:378
QAction * check_update_act_
Action to open about dialog.
Definition: MainWindow.h:386
QMenu * edit_menu_
Submenu for text-operations.
Definition: MainWindow.h:327
QAction * zoom_out_act_
Action to zoom out.
Definition: MainWindow.h:384
QAction * decrypt_verify_act_
Action to encrypt and sign text.
Definition: MainWindow.h:362
QAction * copy_act_
Action to copy text.
Definition: MainWindow.h:375
void slot_append_selected_keys()
Definition: MainWindowSlotFunction.cpp:450
void save_settings()
Definition: MainWindow.cpp:272
TextEdit * edit_
Tabwidget holding the edit-windows.
Definition: MainWindow.h:325
void slot_cut_pgp_header()
Definition: MainWindowSlotUI.cpp:161
bool get_restart_needed() const
return true, if restart is needed
Definition: MainWindowSlotUI.cpp:189
void slot_add_pgp_header()
Definition: MainWindowSlotUI.cpp:147
QToolButton * import_button_
Tool button for import dropdown menu in toolbar.
Definition: MainWindow.h:345
void SetCryptoMenuStatus(CryptoMenu::OperationType type)
Definition: MainWindowSlotUI.cpp:191
void slot_open_settings_dialog()
Definition: MainWindowSlotUI.cpp:102
QAction * switch_tab_down_act_
Action to switch tab down.
Definition: MainWindow.h:352
QMenu * help_menu_
Submenu for help-operations.
Definition: MainWindow.h:329
void SlotFileSign()
Definition: MainWindowFileSlotFunction.cpp:355
QAction * switch_tab_up_act_
Action to switch tab up.
Definition: MainWindow.h:351
QMenu * import_key_menu_
Submenu for import operations.
Definition: MainWindow.h:332
QAction * print_act_
Action to print.
Definition: MainWindow.h:357
QAction * add_pgp_header_act_
Action for adding the PGP header.
Definition: MainWindow.h:392
void SlotFileVerify()
Definition: MainWindowFileSlotFunction.cpp:447
QAction * about_act_
Action to open about dialog.
Definition: MainWindow.h:385
void SlotFileEncrypt()
Definition: MainWindowFileSlotFunction.cpp:151
void create_menus()
Definition: MainWindowUI.cpp:315
QAction * undo_act_
Action to undo last action.
Definition: MainWindow.h:381
QAction * decrypt_act_
Action to decrypt text.
Definition: MainWindow.h:363
void slot_verify()
Definition: MainWindowSlotFunction.cpp:238
void create_tool_bars()
Definition: MainWindowUI.cpp:380
void slot_start_wizard()
Definition: MainWindowSlotUI.cpp:40
QToolBar * crypt_tool_bar_
Toolbar holding crypt actions.
Definition: MainWindow.h:338
QAction * start_wizard_act_
Action to open the wizard.
Definition: MainWindow.h:390
QAction * save_act_
Action to save file.
Definition: MainWindow.h:355
void SlotSetRestartNeeded(bool needed)
Definition: MainWindowSlotUI.cpp:185
void SlotFileDecryptVerify()
Definition: MainWindowFileSlotFunction.cpp:662
QToolBar * edit_tool_bar_
Toolbar holding edit actions.
Definition: MainWindow.h:340
QAction * append_selected_keys_act_
Action to append selected keys to edit.
Definition: MainWindow.h:371
QAction * quit_act_
Action to quit application.
Definition: MainWindow.h:359
QAction * redo_act_
Action to redo last action.
Definition: MainWindow.h:382
QAction * select_all_act_
Action to select whole text.
Definition: MainWindow.h:379
QAction * show_key_details_act_
Action to open key-details dialog.
Definition: MainWindow.h:389
void upload_key_to_server()
Definition: MainWindowSlotFunction.cpp:497
QAction * encrypt_act_
Action to encrypt text.
Definition: MainWindow.h:360
QAction * open_key_management_act_
Action to open key management.
Definition: MainWindow.h:374
QDockWidget * key_list_dock_
Encrypt Dock.
Definition: MainWindow.h:346
QAction * translate_act_
Action to open about dialog.
Definition: MainWindow.h:387
void refresh_keys_from_key_server()
Definition: MainWindowSlotFunction.cpp:488
void slot_encrypt()
Definition: MainWindowSlotFunction.cpp:43
void slot_find()
Definition: MainWindowSlotFunction.cpp:226
void slot_decrypt()
Definition: MainWindowSlotFunction.cpp:183
void slot_clean_double_line_breaks()
Definition: MainWindowSlotUI.cpp:137
QMenu * file_menu_
Submenu for file-operations.
Definition: MainWindow.h:326
QToolBar * special_edit_tool_bar_
Toolbar holding special edit actions.
Definition: MainWindow.h:342
QMenu * steganography_menu_
Submenu for steganography operations.
Definition: MainWindow.h:337
QAction * copy_mail_address_to_clipboard_act_
Definition: MainWindow.h:372
void slot_copy_mail_address_to_clipboard()
Definition: MainWindowSlotFunction.cpp:463
QAction * quote_act_
Action to quote text.
Definition: MainWindow.h:376
QAction * open_settings_act_
Action to open settings dialog.
Definition: MainWindow.h:388
QDockWidget * attachment_dock_
Attachment Dock.
Definition: MainWindow.h:347
TextEdit class.
Definition: TextEdit.h:41
Definition: VerifyDetailsDialog.cpp:33
Definition: MainWindow.h:57
Definition: SoftwareVersion.h:39