-
Notifications
You must be signed in to change notification settings - Fork 2
/
mainwindow.h
68 lines (57 loc) · 1.78 KB
/
mainwindow.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#pragma once
#include "dhcpserver.h"
#include <QMainWindow>
#include <QCloseEvent>
#include <QSystemTrayIcon>
#include <QMenu>
#include <QAction>
#include <QSettings>
#include <QRegExp>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
protected:
void closeEvent (QCloseEvent *event) override;
private:
void createTrayIcon();
void populateNetworkInterfaces();
void setUiEnable(const bool editable);
void makeSettingSuggestion();
void saveSettings();
void hideMe();
void showMe();
Ui::MainWindow *ui;
QSystemTrayIcon *mpTrayIcon;
QMenu *mpTrayIconMenu;
QAction *mpShowHideAction;
QAction *mpQuitAction;
QSettings* mpSettings;
QStandardItemModel emptyDataModel;
QHostAddress mSelectedInterfaceAddress;
DhcpServer *mpServer;
const QString defaultTrayIconText;
static const QString exitMenuText;
static const QString minimizeMenuText;
static const QString showMenuText;
static const QRegExp ipAddressRegex;
static const int defaultLeaseTime;
static const QString selectedInterfaceIpKey;
static const QString startAddressKey;
static const QString endAddressKey;
static const QString netmaskKey;
static const QString leaseTimeKey;
private slots:
void onTrayIconActivated(QSystemTrayIcon::ActivationReason reason);
void onShowHideAction();
void onQuitAction();
void onSelectedNetworkInterfaceChanged(int index);
void onServerStateChange(bool newState);
void onAssignmentsTableViewDoubleClicked(const QModelIndex &index);
void onCheckShowDebugOutputChanged(int state);
};