#ifndef UILOGIC_H #define UILOGIC_H #include #include #include #include "pages.h" #include "protocols/vpnprotocol.h" #include "settings.h" class AppSettingsLogic; class GeneralSettingsLogic; class NetworkSettingsLogic; class NewServerProtocolsLogic; class NewServerConfiguringLogic; class ProtocolSettingsLogic; class ServerListLogic; class ServerSettingsLogic; class ServerVpnProtocolsLogic; class ShareConnectionLogic; class SitesLogic; class StartPageLogic; class VpnLogic; class WizardLogic; class OpenVpnLogic; class ShadowSocksLogic; class CloakLogic; class VpnConnection; class UiLogic : public QObject { Q_OBJECT Q_PROPERTY(bool frameWireguardSettingsVisible READ getFrameWireguardSettingsVisible WRITE setFrameWireguardSettingsVisible NOTIFY frameWireguardSettingsVisibleChanged) Q_PROPERTY(bool frameWireguardVisible READ getFrameWireguardVisible WRITE setFrameWireguardVisible NOTIFY frameWireguardVisibleChanged) Q_PROPERTY(int currentPageValue READ getCurrentPageValue WRITE setCurrentPageValue NOTIFY currentPageValueChanged) Q_PROPERTY(QString trayIconUrl READ getTrayIconUrl WRITE setTrayIconUrl NOTIFY trayIconUrlChanged) Q_PROPERTY(bool trayActionDisconnectEnabled READ getTrayActionDisconnectEnabled WRITE setTrayActionDisconnectEnabled NOTIFY trayActionDisconnectEnabledChanged) Q_PROPERTY(bool trayActionConnectEnabled READ getTrayActionConnectEnabled WRITE setTrayActionConnectEnabled NOTIFY trayActionConnectEnabledChanged) Q_PROPERTY(bool pushButtonConnectChecked READ getPushButtonConnectChecked WRITE setPushButtonConnectChecked NOTIFY pushButtonConnectCheckedChanged) Q_PROPERTY(bool pushButtonProtoOpenvpnContInstallChecked READ getPushButtonProtoOpenvpnContInstallChecked WRITE setPushButtonProtoOpenvpnContInstallChecked NOTIFY pushButtonProtoOpenvpnContInstallCheckedChanged) Q_PROPERTY(bool pushButtonProtoSsOpenvpnContInstallChecked READ getPushButtonProtoSsOpenvpnContInstallChecked WRITE setPushButtonProtoSsOpenvpnContInstallChecked NOTIFY pushButtonProtoSsOpenvpnContInstallCheckedChanged) Q_PROPERTY(bool pushButtonProtoCloakOpenvpnContInstallChecked READ getPushButtonProtoCloakOpenvpnContInstallChecked WRITE setPushButtonProtoCloakOpenvpnContInstallChecked NOTIFY pushButtonProtoCloakOpenvpnContInstallCheckedChanged) Q_PROPERTY(bool pushButtonProtoWireguardContInstallChecked READ getPushButtonProtoWireguardContInstallChecked WRITE setPushButtonProtoWireguardContInstallChecked NOTIFY pushButtonProtoWireguardContInstallCheckedChanged) Q_PROPERTY(bool pushButtonProtoOpenvpnContInstallEnabled READ getPushButtonProtoOpenvpnContInstallEnabled WRITE setPushButtonProtoOpenvpnContInstallEnabled NOTIFY pushButtonProtoOpenvpnContInstallEnabledChanged) Q_PROPERTY(bool pushButtonProtoSsOpenvpnContInstallEnabled READ getPushButtonProtoSsOpenvpnContInstallEnabled WRITE setPushButtonProtoSsOpenvpnContInstallEnabled NOTIFY pushButtonProtoSsOpenvpnContInstallEnabledChanged) Q_PROPERTY(bool pushButtonProtoCloakOpenvpnContInstallEnabled READ getPushButtonProtoCloakOpenvpnContInstallEnabled WRITE setPushButtonProtoCloakOpenvpnContInstallEnabled NOTIFY pushButtonProtoCloakOpenvpnContInstallEnabledChanged) Q_PROPERTY(bool pushButtonProtoWireguardContInstallEnabled READ getPushButtonProtoWireguardContInstallEnabled WRITE setPushButtonProtoWireguardContInstallEnabled NOTIFY pushButtonProtoWireguardContInstallEnabledChanged) Q_PROPERTY(bool pushButtonProtoOpenvpnContDefaultChecked READ getPushButtonProtoOpenvpnContDefaultChecked WRITE setPushButtonProtoOpenvpnContDefaultChecked NOTIFY pushButtonProtoOpenvpnContDefaultCheckedChanged) Q_PROPERTY(bool pushButtonProtoSsOpenvpnContDefaultChecked READ getPushButtonProtoSsOpenvpnContDefaultChecked WRITE setPushButtonProtoSsOpenvpnContDefaultChecked NOTIFY pushButtonProtoSsOpenvpnContDefaultCheckedChanged) Q_PROPERTY(bool pushButtonProtoCloakOpenvpnContDefaultChecked READ getPushButtonProtoCloakOpenvpnContDefaultChecked WRITE setPushButtonProtoCloakOpenvpnContDefaultChecked NOTIFY pushButtonProtoCloakOpenvpnContDefaultCheckedChanged) Q_PROPERTY(bool pushButtonProtoWireguardContDefaultChecked READ getPushButtonProtoWireguardContDefaultChecked WRITE setPushButtonProtoWireguardContDefaultChecked NOTIFY pushButtonProtoWireguardContDefaultCheckedChanged) Q_PROPERTY(bool pushButtonProtoOpenvpnContDefaultVisible READ getPushButtonProtoOpenvpnContDefaultVisible WRITE setPushButtonProtoOpenvpnContDefaultVisible NOTIFY pushButtonProtoOpenvpnContDefaultVisibleChanged) Q_PROPERTY(bool pushButtonProtoSsOpenvpnContDefaultVisible READ getPushButtonProtoSsOpenvpnContDefaultVisible WRITE setPushButtonProtoSsOpenvpnContDefaultVisible NOTIFY pushButtonProtoSsOpenvpnContDefaultVisibleChanged) Q_PROPERTY(bool pushButtonProtoCloakOpenvpnContDefaultVisible READ getPushButtonProtoCloakOpenvpnContDefaultVisible WRITE setPushButtonProtoCloakOpenvpnContDefaultVisible NOTIFY pushButtonProtoCloakOpenvpnContDefaultVisibleChanged) Q_PROPERTY(bool pushButtonProtoWireguardContDefaultVisible READ getPushButtonProtoWireguardContDefaultVisible WRITE setPushButtonProtoWireguardContDefaultVisible NOTIFY pushButtonProtoWireguardContDefaultVisibleChanged) Q_PROPERTY(bool pushButtonProtoOpenvpnContShareVisible READ getPushButtonProtoOpenvpnContShareVisible WRITE setPushButtonProtoOpenvpnContShareVisible NOTIFY pushButtonProtoOpenvpnContShareVisibleChanged) Q_PROPERTY(bool pushButtonProtoSsOpenvpnContShareVisible READ getPushButtonProtoSsOpenvpnContShareVisible WRITE setPushButtonProtoSsOpenvpnContShareVisible NOTIFY pushButtonProtoSsOpenvpnContShareVisibleChanged) Q_PROPERTY(bool pushButtonProtoCloakOpenvpnContShareVisible READ getPushButtonProtoCloakOpenvpnContShareVisible WRITE setPushButtonProtoCloakOpenvpnContShareVisible NOTIFY pushButtonProtoCloakOpenvpnContShareVisibleChanged) Q_PROPERTY(bool pushButtonProtoWireguardContShareVisible READ getPushButtonProtoWireguardContShareVisible WRITE setPushButtonProtoWireguardContShareVisible NOTIFY pushButtonProtoWireguardContShareVisibleChanged) Q_PROPERTY(bool frameOpenvpnSettingsVisible READ getFrameOpenvpnSettingsVisible WRITE setFrameOpenvpnSettingsVisible NOTIFY frameOpenvpnSettingsVisibleChanged) Q_PROPERTY(bool frameOpenvpnSsSettingsVisible READ getFrameOpenvpnSsSettingsVisible WRITE setFrameOpenvpnSsSettingsVisible NOTIFY frameOpenvpnSsSettingsVisibleChanged) Q_PROPERTY(bool frameOpenvpnSsCloakSettingsVisible READ getFrameOpenvpnSsCloakSettingsVisible WRITE setFrameOpenvpnSsCloakSettingsVisible NOTIFY frameOpenvpnSsCloakSettingsVisibleChanged) Q_PROPERTY(bool progressBarProtocolsContainerReinstallVisible READ getProgressBarProtocolsContainerReinstallVisible WRITE setProgressBarProtocolsContainerReinstallVisible NOTIFY progressBarProtocolsContainerReinstallVisibleChanged) Q_PROPERTY(QString labelSpeedReceivedText READ getLabelSpeedReceivedText WRITE setLabelSpeedReceivedText NOTIFY labelSpeedReceivedTextChanged) Q_PROPERTY(QString labelSpeedSentText READ getLabelSpeedSentText WRITE setLabelSpeedSentText NOTIFY labelSpeedSentTextChanged) Q_PROPERTY(QString labelStateText READ getLabelStateText WRITE setLabelStateText NOTIFY labelStateTextChanged) Q_PROPERTY(bool pushButtonConnectEnabled READ getPushButtonConnectEnabled WRITE setPushButtonConnectEnabled NOTIFY pushButtonConnectEnabledChanged) Q_PROPERTY(bool widgetVpnModeEnabled READ getWidgetVpnModeEnabled WRITE setWidgetVpnModeEnabled NOTIFY widgetVpnModeEnabledChanged) Q_PROPERTY(QString labelErrorText READ getLabelErrorText WRITE setLabelErrorText NOTIFY labelErrorTextChanged) Q_PROPERTY(QString dialogConnectErrorText READ getDialogConnectErrorText WRITE setDialogConnectErrorText NOTIFY dialogConnectErrorTextChanged) Q_PROPERTY(bool pageServerProtocolsEnabled READ getPageServerProtocolsEnabled WRITE setPageServerProtocolsEnabled NOTIFY pageServerProtocolsEnabledChanged) Q_PROPERTY(int progressBarProtocolsContainerReinstallValue READ getProgressBarProtocolsContainerReinstallValue WRITE setProgressBarProtocolsContainerReinstallValue NOTIFY progressBarProtocolsContainerReinstallValueChanged) Q_PROPERTY(int progressBarProtocolsContainerReinstallMaximium READ getProgressBarProtocolsContainerReinstallMaximium WRITE setProgressBarProtocolsContainerReinstallMaximium NOTIFY progressBarProtocolsContainerReinstallMaximiumChanged) Q_PROPERTY(bool pushButtonVpnAddSiteEnabled READ getPushButtonVpnAddSiteEnabled WRITE setPushButtonVpnAddSiteEnabled NOTIFY pushButtonVpnAddSiteEnabledChanged) Q_PROPERTY(bool radioButtonVpnModeAllSitesChecked READ getRadioButtonVpnModeAllSitesChecked WRITE setRadioButtonVpnModeAllSitesChecked NOTIFY radioButtonVpnModeAllSitesCheckedChanged) Q_PROPERTY(bool radioButtonVpnModeForwardSitesChecked READ getRadioButtonVpnModeForwardSitesChecked WRITE setRadioButtonVpnModeForwardSitesChecked NOTIFY radioButtonVpnModeForwardSitesCheckedChanged) Q_PROPERTY(bool radioButtonVpnModeExceptSitesChecked READ getRadioButtonVpnModeExceptSitesChecked WRITE setRadioButtonVpnModeExceptSitesChecked NOTIFY radioButtonVpnModeExceptSitesCheckedChanged) public: explicit UiLogic(QObject *parent = nullptr); ~UiLogic(); void showOnStartup(); friend class AppSettingsLogic; friend class GeneralSettingsLogic; friend class NetworkSettingsLogic; friend class NewServerConfiguringLogic; friend class NewServerProtocolsLogic; friend class ProtocolSettingsLogic; friend class ServerListLogic; friend class ServerSettingsLogic; friend class ServerVpnProtocolsLogic; friend class ShareConnectionLogic; friend class SitesLogic; friend class StartPageLogic; friend class VpnLogic; friend class WizardLogic; friend class OpenVpnLogic; friend class ShadowSocksLogic; friend class CloakLogic; Q_INVOKABLE void initalizeUiLogic(); bool getFrameWireguardSettingsVisible() const; void setFrameWireguardSettingsVisible(bool frameWireguardSettingsVisible); bool getFrameWireguardVisible() const; void setFrameWireguardVisible(bool frameWireguardVisible); int getCurrentPageValue() const; void setCurrentPageValue(int currentPageValue); QString getTrayIconUrl() const; void setTrayIconUrl(const QString &trayIconUrl); bool getTrayActionDisconnectEnabled() const; void setTrayActionDisconnectEnabled(bool trayActionDisconnectEnabled); bool getTrayActionConnectEnabled() const; void setTrayActionConnectEnabled(bool trayActionConnectEnabled); bool getPushButtonConnectChecked() const; void setPushButtonConnectChecked(bool pushButtonConnectChecked); bool getPushButtonProtoOpenvpnContInstallChecked() const; void setPushButtonProtoOpenvpnContInstallChecked(bool pushButtonProtoOpenvpnContInstallChecked); bool getPushButtonProtoSsOpenvpnContInstallChecked() const; void setPushButtonProtoSsOpenvpnContInstallChecked(bool pushButtonProtoSsOpenvpnContInstallChecked); bool getPushButtonProtoCloakOpenvpnContInstallChecked() const; void setPushButtonProtoCloakOpenvpnContInstallChecked(bool pushButtonProtoCloakOpenvpnContInstallChecked); bool getPushButtonProtoWireguardContInstallChecked() const; void setPushButtonProtoWireguardContInstallChecked(bool pushButtonProtoWireguardContInstallChecked); bool getPushButtonProtoOpenvpnContInstallEnabled() const; void setPushButtonProtoOpenvpnContInstallEnabled(bool pushButtonProtoOpenvpnContInstallEnabled); bool getPushButtonProtoSsOpenvpnContInstallEnabled() const; void setPushButtonProtoSsOpenvpnContInstallEnabled(bool pushButtonProtoSsOpenvpnContInstallEnabled); bool getPushButtonProtoCloakOpenvpnContInstallEnabled() const; void setPushButtonProtoCloakOpenvpnContInstallEnabled(bool pushButtonProtoCloakOpenvpnContInstallEnabled); bool getPushButtonProtoWireguardContInstallEnabled() const; void setPushButtonProtoWireguardContInstallEnabled(bool pushButtonProtoWireguardContInstallEnabled); bool getPushButtonProtoOpenvpnContDefaultChecked() const; void setPushButtonProtoOpenvpnContDefaultChecked(bool pushButtonProtoOpenvpnContDefaultChecked); bool getPushButtonProtoSsOpenvpnContDefaultChecked() const; void setPushButtonProtoSsOpenvpnContDefaultChecked(bool pushButtonProtoSsOpenvpnContDefaultChecked); bool getPushButtonProtoCloakOpenvpnContDefaultChecked() const; void setPushButtonProtoCloakOpenvpnContDefaultChecked(bool pushButtonProtoCloakOpenvpnContDefaultChecked); bool getPushButtonProtoWireguardContDefaultChecked() const; void setPushButtonProtoWireguardContDefaultChecked(bool pushButtonProtoWireguardContDefaultChecked); bool getPushButtonProtoOpenvpnContDefaultVisible() const; void setPushButtonProtoOpenvpnContDefaultVisible(bool pushButtonProtoOpenvpnContDefaultVisible); bool getPushButtonProtoSsOpenvpnContDefaultVisible() const; void setPushButtonProtoSsOpenvpnContDefaultVisible(bool pushButtonProtoSsOpenvpnContDefaultVisible); bool getPushButtonProtoCloakOpenvpnContDefaultVisible() const; void setPushButtonProtoCloakOpenvpnContDefaultVisible(bool pushButtonProtoCloakOpenvpnContDefaultVisible); bool getPushButtonProtoWireguardContDefaultVisible() const; void setPushButtonProtoWireguardContDefaultVisible(bool pushButtonProtoWireguardContDefaultVisible); bool getPushButtonProtoOpenvpnContShareVisible() const; void setPushButtonProtoOpenvpnContShareVisible(bool pushButtonProtoOpenvpnContShareVisible); bool getPushButtonProtoSsOpenvpnContShareVisible() const; void setPushButtonProtoSsOpenvpnContShareVisible(bool pushButtonProtoSsOpenvpnContShareVisible); bool getPushButtonProtoCloakOpenvpnContShareVisible() const; void setPushButtonProtoCloakOpenvpnContShareVisible(bool pushButtonProtoCloakOpenvpnContShareVisible); bool getPushButtonProtoWireguardContShareVisible() const; void setPushButtonProtoWireguardContShareVisible(bool pushButtonProtoWireguardContShareVisible); bool getFrameOpenvpnSettingsVisible() const; void setFrameOpenvpnSettingsVisible(bool frameOpenvpnSettingsVisible); bool getFrameOpenvpnSsSettingsVisible() const; void setFrameOpenvpnSsSettingsVisible(bool frameOpenvpnSsSettingsVisible); bool getFrameOpenvpnSsCloakSettingsVisible() const; void setFrameOpenvpnSsCloakSettingsVisible(bool frameOpenvpnSsCloakSettingsVisible); bool getProgressBarProtocolsContainerReinstallVisible() const; void setProgressBarProtocolsContainerReinstallVisible(bool progressBarProtocolsContainerReinstallVisible); QString getLabelSpeedReceivedText() const; void setLabelSpeedReceivedText(const QString &labelSpeedReceivedText); QString getLabelSpeedSentText() const; void setLabelSpeedSentText(const QString &labelSpeedSentText); QString getLabelStateText() const; void setLabelStateText(const QString &labelStateText); bool getPushButtonConnectEnabled() const; void setPushButtonConnectEnabled(bool pushButtonConnectEnabled); bool getWidgetVpnModeEnabled() const; void setWidgetVpnModeEnabled(bool widgetVpnModeEnabled); QString getLabelErrorText() const; void setLabelErrorText(const QString &labelErrorText); QString getDialogConnectErrorText() const; void setDialogConnectErrorText(const QString &dialogConnectErrorText); bool getPageServerProtocolsEnabled() const; void setPageServerProtocolsEnabled(bool pageServerProtocolsEnabled); int getProgressBarProtocolsContainerReinstallValue() const; void setProgressBarProtocolsContainerReinstallValue(int progressBarProtocolsContainerReinstallValue); int getProgressBarProtocolsContainerReinstallMaximium() const; void setProgressBarProtocolsContainerReinstallMaximium(int progressBarProtocolsContainerReinstallMaximium); bool getRadioButtonVpnModeAllSitesChecked() const; void setRadioButtonVpnModeAllSitesChecked(bool radioButtonVpnModeAllSitesChecked); bool getRadioButtonVpnModeForwardSitesChecked() const; void setRadioButtonVpnModeForwardSitesChecked(bool radioButtonVpnModeForwardSitesChecked); bool getRadioButtonVpnModeExceptSitesChecked() const; void setRadioButtonVpnModeExceptSitesChecked(bool radioButtonVpnModeExceptSitesChecked); bool getPushButtonVpnAddSiteEnabled() const; void setPushButtonVpnAddSiteEnabled(bool pushButtonVpnAddSiteEnabled); Q_INVOKABLE void updateVpnPage(); Q_INVOKABLE void onRadioButtonVpnModeAllSitesToggled(bool checked); Q_INVOKABLE void onRadioButtonVpnModeForwardSitesToggled(bool checked); Q_INVOKABLE void onRadioButtonVpnModeExceptSitesToggled(bool checked); Q_INVOKABLE void onPushButtonConnectClicked(bool checked); Q_INVOKABLE void onPushButtonProtoOpenvpnContOpenvpnConfigClicked(); Q_INVOKABLE void onPushButtonProtoSsOpenvpnContOpenvpnConfigClicked(); Q_INVOKABLE void onPushButtonProtoSsOpenvpnContSsConfigClicked(); Q_INVOKABLE void onPushButtonProtoCloakOpenvpnContOpenvpnConfigClicked(); Q_INVOKABLE void onPushButtonProtoCloakOpenvpnContSsConfigClicked(); Q_INVOKABLE void onPushButtonProtoCloakOpenvpnContCloakConfigClicked(); Q_INVOKABLE void onCloseWindow(); Q_INVOKABLE void updateProtocolsPage(); signals: void frameWireguardSettingsVisibleChanged(); void frameWireguardVisibleChanged(); void radioButtonVpnModeAllSitesCheckedChanged(); void radioButtonVpnModeForwardSitesCheckedChanged(); void radioButtonVpnModeExceptSitesCheckedChanged(); void pushButtonVpnAddSiteEnabledChanged(); void currentPageValueChanged(); void trayIconUrlChanged(); void trayActionDisconnectEnabledChanged(); void trayActionConnectEnabledChanged(); void pushButtonConnectCheckedChanged(); void pushButtonProtoOpenvpnContInstallCheckedChanged(); void pushButtonProtoSsOpenvpnContInstallCheckedChanged(); void pushButtonProtoCloakOpenvpnContInstallCheckedChanged(); void pushButtonProtoWireguardContInstallCheckedChanged(); void pushButtonProtoOpenvpnContInstallEnabledChanged(); void pushButtonProtoSsOpenvpnContInstallEnabledChanged(); void pushButtonProtoCloakOpenvpnContInstallEnabledChanged(); void pushButtonProtoWireguardContInstallEnabledChanged(); void pushButtonProtoOpenvpnContDefaultCheckedChanged(); void pushButtonProtoSsOpenvpnContDefaultCheckedChanged(); void pushButtonProtoCloakOpenvpnContDefaultCheckedChanged(); void pushButtonProtoWireguardContDefaultCheckedChanged(); void pushButtonProtoOpenvpnContDefaultVisibleChanged(); void pushButtonProtoSsOpenvpnContDefaultVisibleChanged(); void pushButtonProtoCloakOpenvpnContDefaultVisibleChanged(); void pushButtonProtoWireguardContDefaultVisibleChanged(); void pushButtonProtoOpenvpnContShareVisibleChanged(); void pushButtonProtoSsOpenvpnContShareVisibleChanged(); void pushButtonProtoCloakOpenvpnContShareVisibleChanged(); void pushButtonProtoWireguardContShareVisibleChanged(); void frameOpenvpnSettingsVisibleChanged(); void frameOpenvpnSsSettingsVisibleChanged(); void frameOpenvpnSsCloakSettingsVisibleChanged(); void progressBarProtocolsContainerReinstallVisibleChanged(); void labelSpeedReceivedTextChanged(); void labelSpeedSentTextChanged(); void labelStateTextChanged(); void pushButtonConnectEnabledChanged(); void widgetVpnModeEnabledChanged(); void labelErrorTextChanged(); void dialogConnectErrorTextChanged(); void pageServerProtocolsEnabledChanged(); void progressBarProtocolsContainerReinstallValueChanged(); void progressBarProtocolsContainerReinstallMaximiumChanged(); void goToPage(int page, bool reset = true, bool slide = true); void closePage(); void setStartPage(int page, bool slide = true); void showPublicKeyWarning(); void showConnectErrorDialog(); void show(); void hide(); void pushButtonProtoOpenvpnContDefaultClicked(bool checked); void pushButtonProtoSsOpenvpnContDefaultClicked(bool checked); void pushButtonProtoCloakOpenvpnContDefaultClicked(bool checked); void pushButtonProtoWireguardContDefaultClicked(bool checked); void pushButtonProtoOpenvpnContInstallClicked(bool checked); void pushButtonProtoSsOpenvpnContInstallClicked(bool checked); void pushButtonProtoCloakOpenvpnContInstallClicked(bool checked); void pushButtonProtoWireguardContInstallClicked(bool checked); void pushButtonProtoOpenvpnContShareClicked(bool checked); void pushButtonProtoSsOpenvpnContShareClicked(bool checked); void pushButtonProtoCloakOpenvpnContShareClicked(bool checked); void pushButtonProtoWireguardContShareClicked(bool checked); private: bool m_frameWireguardSettingsVisible; bool m_frameWireguardVisible; bool m_radioButtonVpnModeAllSitesChecked; bool m_radioButtonVpnModeForwardSitesChecked; bool m_radioButtonVpnModeExceptSitesChecked; bool m_pushButtonVpnAddSiteEnabled; int m_currentPageValue; QString m_trayIconUrl; bool m_trayActionDisconnectEnabled; bool m_trayActionConnectEnabled; bool m_pushButtonConnectChecked; bool m_pushButtonProtoOpenvpnContInstallChecked; bool m_pushButtonProtoSsOpenvpnContInstallChecked; bool m_pushButtonProtoCloakOpenvpnContInstallChecked; bool m_pushButtonProtoWireguardContInstallChecked; bool m_pushButtonProtoOpenvpnContInstallEnabled; bool m_pushButtonProtoSsOpenvpnContInstallEnabled; bool m_pushButtonProtoCloakOpenvpnContInstallEnabled; bool m_pushButtonProtoWireguardContInstallEnabled; bool m_pushButtonProtoOpenvpnContDefaultChecked; bool m_pushButtonProtoSsOpenvpnContDefaultChecked; bool m_pushButtonProtoCloakOpenvpnContDefaultChecked; bool m_pushButtonProtoWireguardContDefaultChecked; bool m_pushButtonProtoOpenvpnContDefaultVisible; bool m_pushButtonProtoSsOpenvpnContDefaultVisible; bool m_pushButtonProtoCloakOpenvpnContDefaultVisible; bool m_pushButtonProtoWireguardContDefaultVisible; bool m_pushButtonProtoOpenvpnContShareVisible; bool m_pushButtonProtoSsOpenvpnContShareVisible; bool m_pushButtonProtoCloakOpenvpnContShareVisible; bool m_pushButtonProtoWireguardContShareVisible; bool m_frameOpenvpnSettingsVisible; bool m_frameOpenvpnSsSettingsVisible; bool m_frameOpenvpnSsCloakSettingsVisible; bool m_progressBarProtocolsContainerReinstallVisible; QString m_labelSpeedReceivedText; QString m_labelSpeedSentText; QString m_labelStateText; bool m_pushButtonConnectEnabled; bool m_widgetVpnModeEnabled; QString m_labelErrorText; QString m_dialogConnectErrorText; bool m_pageServerProtocolsEnabled; int m_progressBarProtocolsContainerReinstallValue; int m_progressBarProtocolsContainerReinstallMaximium; private slots: void onBytesChanged(quint64 receivedBytes, quint64 sentBytes); void onConnectionStateChanged(VpnProtocol::ConnectionState state); void onVpnProtocolError(amnezia::ErrorCode errorCode); void installServer(const QMap &containers); void setTrayState(VpnProtocol::ConnectionState state); void onConnect(); void onConnectWorker(int serverIndex, const ServerCredentials &credentials, DockerContainer container, const QJsonObject &containerConfig); void onDisconnect(); private: PageEnumNS::Page currentPage(); struct ProgressFunc { std::function setVisibleFunc; std::function setValueFunc; std::function getValueFunc; std::function getMaximiumFunc; std::function setTextVisibleFunc; std::function setTextFunc; }; struct PageFunc { std::function setEnabledFunc; }; struct ButtonFunc { std::function setVisibleFunc; }; struct LabelFunc { std::function setVisibleFunc; std::function setTextFunc; }; bool installContainers(ServerCredentials credentials, const QMap &containers, const PageFunc& page, const ProgressFunc& progress, const ButtonFunc& button, const LabelFunc& info); ErrorCode doInstallAction(const std::function &action, const PageFunc& page, const ProgressFunc& progress, const ButtonFunc& button, const LabelFunc& info); void setupTray(); void setTrayIcon(const QString &iconPath); void setupNewServerConnections(); // void setupSitesPageConnections(); void setupProtocolsPageConnections(); public: AppSettingsLogic *appSettingsLogic() { return m_appSettingsLogic; } GeneralSettingsLogic *generalSettingsLogic() { return m_generalSettingsLogic; } NetworkSettingsLogic *networkSettingsLogic() { return m_networkSettingsLogic; } NewServerConfiguringLogic *newServerConfiguringLogic() { return m_newServerConfiguringLogic; } NewServerProtocolsLogic *newServerProtocolsLogic() { return m_newServerProtocolsLogic; } ProtocolSettingsLogic *protocolSettingsLogic() { return m_protocolSettingsLogic; } ServerListLogic *serverListLogic() { return m_serverListLogic; } ServerSettingsLogic *serverSettingsLogic() { return m_serverSettingsLogic; } ServerVpnProtocolsLogic *serverVpnProtocolsLogic() { return m_serverVpnProtocolsLogic; } ShareConnectionLogic *shareConnectionLogic() { return m_shareConnectionLogic; } SitesLogic *sitesLogic() { return m_sitesLogic; } StartPageLogic *startPageLogic() { return m_startPageLogic; } VpnLogic *vpnLogic() { return m_vpnLogic; } WizardLogic *wizardLogic() { return m_wizardLogic; } OpenVpnLogic *openVpnLogic() { return m_openVpnLogic; } ShadowSocksLogic *shadowSocksLogic() { return m_shadowSocksLogic; } CloakLogic *cloakLogic() { return m_cloakLogic; } private: AppSettingsLogic *m_appSettingsLogic; GeneralSettingsLogic *m_generalSettingsLogic; NetworkSettingsLogic *m_networkSettingsLogic; NewServerConfiguringLogic *m_newServerConfiguringLogic; NewServerProtocolsLogic *m_newServerProtocolsLogic; ProtocolSettingsLogic *m_protocolSettingsLogic; ServerListLogic *m_serverListLogic; ServerSettingsLogic *m_serverSettingsLogic; ServerVpnProtocolsLogic *m_serverVpnProtocolsLogic; ShareConnectionLogic *m_shareConnectionLogic; SitesLogic *m_sitesLogic; StartPageLogic *m_startPageLogic; VpnLogic *m_vpnLogic; WizardLogic *m_wizardLogic; OpenVpnLogic *m_openVpnLogic; ShadowSocksLogic *m_shadowSocksLogic; CloakLogic *m_cloakLogic; VpnConnection* m_vpnConnection; Settings m_settings; // QRegExpValidator m_ipAddressValidator; // QRegExpValidator m_ipAddressPortValidator; // QRegExpValidator m_ipNetwok24Validator; // QRegExpValidator m_ipPortValidator; // QPoint offset; // bool needToHideCustomTitlebar = false; // void keyPressEvent(QKeyEvent* event) override; // void showEvent(QShowEvent *event) override; // void hideEvent(QHideEvent *event) override; const QString ConnectedTrayIconName = "active.png"; const QString DisconnectedTrayIconName = "default.png"; const QString ErrorTrayIconName = "error.png"; // QStack pagesStack; int selectedServerIndex = -1; // server index to use when proto settings page opened DockerContainer selectedDockerContainer; // same ServerCredentials installCredentials; // used to save cred between pages new_server and new_server_protocols and wizard }; #endif // UILOGIC_H