Q3270
A Qt-based 3270 Terminal Emulator
Loading...
Searching...
No Matches
MainWindow.h
1/*
2 * Q3270 Terminal Emulator
3 *
4 * Copyright (c) 2020–2025 Andy Styles
5 * SPDX-License-Identifier: BSD-3-Clause
6 *
7 * This file is part of Q3270.
8 * See the LICENSE file in the project root for full license information.
9 */
10
11#ifndef MAINWINDOW_H
12#define MAINWINDOW_H
13
14#include <QMainWindow>
15#include <QPainter>
16#include <QAction>
17#include <QWidget>
18#include <QGraphicsScene>
19#include <QGraphicsView>
20#include <QGraphicsItem>
21#include <QTextDocument>
22#include <QHostAddress>
23#include <QTextEdit>
24#include <QEvent>
25#include <QKeyEvent>
26#include <QDebug>
27#include <QFontDialog>
28#include <QSettings>
29#include <QWidgetAction>
30#include <QLabel>
31#include <QString>
32
33#include "Preferences/PreferencesDialog.h"
34#include "Terminal.h"
35#include "ColourTheme.h"
36#include "KeyboardThemeDialog.h"
37#include "ActiveSettings.h"
38#include "CertificateDetails.h"
39#include "Stores/SessionStore.h"
40#include "Stores/KeyboardStore.h"
41#include "Stores/ColourStore.h"
42
43QT_BEGIN_NAMESPACE
44
45namespace Ui {
46 class MainWindowDialog;
48}
49
50QT_END_NAMESPACE
51
52#define MRU_COUNT 10
53
55{
56 QWidget *parent = nullptr;
57 QString session = {} ;
58};
59
60class MainWindow : public QMainWindow
61{
62
63 Q_OBJECT
64
65 public:
66
67 explicit MainWindow(LaunchParms lp = {});
69
70 public slots:
71
72 void closeEvent(QCloseEvent *c);
73 void showEvent(QShowEvent *s);
74 void resizeEvent(QResizeEvent *s);
75
76 private slots:
77
78 //File menu
79 void menuNew();
80 void menuDuplicate();
81 void mruConnect();
82 void menuSaveSessionAs();
83 void menuSaveSession();
84 void menuOpenSession();
85 void menuManageSessions();
86 void menuManageAutostartSessions();
87 void menuQuit();
88
89 // Session menu
90 void menuConnect();
91 void menuDisconnect();
92 void menuSessionPreferences();
93
94 // Themes menu
95 void menuKeyboardTheme();
96 void menuColourTheme();
97
98 // The Help menu
99 void menuAbout();
100 void menuAboutConnection();
101
102 // Triggered by Terminal on connection state
103 void enableConnectMenu(bool state);
104
105 // Triggered by Terminal on connection/disconnection
106 void enableDisconnectMenu();
107 void disableDisconnectMenu();
108
109 // Triggered when a new keyboard or colour theme is chosen
110 void activeKeyboardNameChanged(const QString &name);
111 void activeColoursNameChanged(const QString &name);
112
113 // Triggered when the user modifies a keyboard or colour theme
114 void checkKeyboardThemeModified(const QString &name);
115 void checkColourThemeModified(const QString &name);
116
117 void checkHostNameChange(const QString &hostName, const int port, const QString &hostLU);
118
119 private:
120
121 void populateMRU();
122 void updateMRUList();
123 void storeAppWideSettings();
124
125 ActiveSettings activeSettings;
126
127 // Persistence Stores
128 SessionStore sessionStore;
129 KeyboardStore keyboardStore;
130 ColourStore colourStore;
131
132 // 3270 'hardware' layers
133 Keyboard keyboard;
134 CodePage codePage;
135 Terminal *terminal;
136
137 // Dialogs
138 KeyboardThemeDialog *keyboardTheme;
139 PreferencesDialog *settings;
140 ColourTheme *colourTheme;
141
142 int maxMruCount;
143
144 QStringList mruList;
145
146 Ui::MainWindowDialog *ui;
147
148};
149
150#endif
Definition ActiveSettings.h:20
Definition CertificateDetails.h:23
The CodePage class.
Definition CodePage.h:27
Definition ColourStore.h:21
Definition ColourTheme.h:34
Definition KeyboardStore.h:21
Definition KeyboardThemeDialog.h:32
Keyboard::Keyboard - Keyboard input processing.
Definition Keyboard.h:25
Definition MainWindow.h:61
void showEvent(QShowEvent *s)
MainWindow::showEvent - resize the content when the window is shown.
Definition MainWindow.cpp:628
void resizeEvent(QResizeEvent *s)
MainWindow::resizeEvent - resize the content when the window is resized.
Definition MainWindow.cpp:640
void closeEvent(QCloseEvent *c)
MainWindow::closeEvent - close the window.
Definition MainWindow.cpp:579
~MainWindow()
MainWindow::~MainWindow - destructor.
Definition MainWindow.cpp:320
Definition PreferencesDialog.h:37
Definition SessionStore.h:19
Definition Terminal.h:27
Definition MainWindow.h:55