diff options
Diffstat (limited to 'src/widgets/direct_connect_dialog.h')
| -rw-r--r-- | src/widgets/direct_connect_dialog.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/widgets/direct_connect_dialog.h b/src/widgets/direct_connect_dialog.h new file mode 100644 index 00000000..fc34f748 --- /dev/null +++ b/src/widgets/direct_connect_dialog.h @@ -0,0 +1,43 @@ +#pragma once + +#include <QComboBox> +#include <QDialog> +#include <QLabel> +#include <QLineEdit> +#include <QPushButton> +#include <QRegularExpression> +#include <QSpinBox> +#include <QTimer> + +class NetworkManager; + +class DirectConnectDialog : public QDialog +{ + Q_OBJECT + +public: + DirectConnectDialog(NetworkManager *p_net_manager); + ~DirectConnectDialog() = default; + +private Q_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"; +}; |
