aboutsummaryrefslogtreecommitdiff
path: root/include/widgets/direct_connect_dialog.h
blob: 931752493a6222b2705d1eaf87d1cb9a0b92542e (plain)
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
#ifndef DIRECT_CONNECT_DIALOG_H
#define DIRECT_CONNECT_DIALOG_H

#include <QDialog>
#include <QTimer>
#include <QRegularExpression>

class QLabel;
class QSpinBox;
class QLineEdit;
class QPushButton;
class QComboBox;
class QLabel;
class NetworkManager;

class DirectConnectDialog : public QDialog {
    Q_OBJECT
public:
    DirectConnectDialog(NetworkManager* p_net_manager);
    ~DirectConnectDialog() = default;

private slots:
    void onConnectPressed();
    void onServerConnected();
    void onConnectTimeout();

private:
    NetworkManager* net_manager;

    QLineEdit* ui_direct_hostname_edit;

    QLabel* ui_direct_connection_status_lbl;
    QPushButton* ui_direct_connect_button;
    QPushButton* ui_direct_cancel_button;

    QWidget* ui_widget;
    QTimer connect_timeout;

    const int TCP_INDEX = 0;
    const QRegularExpression SCHEME_PATTERN{"^\\w+://.+$"};
    const int CONNECT_TIMEOUT = 5 * 1000;
    const QString DEFAULT_UI = "direct_connect_dialog.ui";;

};

#endif // DIRECT_CONNECT_DIALOG_H