Added the advanced settings page

- added a button to scan the server for installed containers
- added a check on the presence of installed containers before configuring the server, if the containers are already installed, then we will add them to the GUI
- added new control element - PopupWarning.qml
This commit is contained in:
vladimir.kuznetsov 2023-02-20 09:46:50 +03:00
parent b5778a9cb5
commit ddc3fe7807
23 changed files with 487 additions and 156 deletions

View file

@ -42,6 +42,7 @@ class StartPageLogic;
class ViewConfigLogic;
class VpnLogic;
class WizardLogic;
class AdvancedServerSettingsLogic;
class PageProtocolLogicBase;
class OpenVpnLogic;
@ -61,6 +62,7 @@ class UiLogic : public QObject
AUTO_PROPERTY(int, pagesStackDepth)
AUTO_PROPERTY(int, currentPageValue)
AUTO_PROPERTY(QString, dialogConnectErrorText)
AUTO_PROPERTY(QString, popupWarningText)
READONLY_PROPERTY(QObject *, containersModel)
READONLY_PROPERTY(QObject *, protocolsModel)
@ -87,6 +89,7 @@ public:
friend class ViewConfigLogic;
friend class VpnLogic;
friend class WizardLogic;
friend class AdvancedServerSettingsLogic;
friend class PageProtocolLogicBase;
friend class OpenVpnLogic;
@ -112,11 +115,11 @@ public:
Q_INVOKABLE void saveBinaryFile(const QString& desc, QString ext, const QString& data);
Q_INVOKABLE void copyToClipboard(const QString& text);
Q_INVOKABLE amnezia::ErrorCode getInstalledContainers(bool addNewServerToGui);
void shareTempFile(const QString &suggestedName, QString ext, const QString& data);
signals:
void dialogConnectErrorTextChanged();
void goToPage(PageEnumNS::Page page, bool reset = true, bool slide = true);
void goToProtocolPage(Proto protocol, bool reset = true, bool slide = true);
void goToShareProtocolPage(Proto protocol, bool reset = true, bool slide = true);
@ -129,6 +132,7 @@ signals:
void hide();
void raise();
void toggleLogPanel();
void showWarningMessage(QString message);
private slots:
// containers - INOUT arg
@ -136,6 +140,7 @@ private slots:
private:
PageEnumNS::Page currentPage();
bool isContainerAlreadyAddedToGui(DockerContainer container, const ServerCredentials &selectedServerCredentials);
public:
Q_INVOKABLE PageProtocolLogicBase *protocolLogic(Proto p);
@ -178,8 +183,8 @@ private:
NotificationHandler* m_notificationHandler;
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
int m_selectedServerIndex = -1; // server index to use when proto settings page opened
DockerContainer m_selectedDockerContainer; // same
ServerCredentials m_installCredentials; // used to save cred between pages new_server and new_server_protocols and wizard
};
#endif // UILOGIC_H