Схлопывание диалогов при выключении Сервера

This commit is contained in:
2025-11-27 10:43:12 +03:00
parent f75ff9660f
commit 3e50bfe2e2
7 changed files with 72 additions and 14 deletions

View File

@@ -11,6 +11,7 @@ DialogSettings::DialogSettings(ConnectorToServer* connectorToServer, bool instru
ui(new Ui::DialogSettings),
settings(nullptr),
connectorToServer(nullptr),
dlgVersionControl(nullptr),
flSettingsServerChanged(false)
{
ui->setupUi(this);
@@ -76,10 +77,25 @@ DialogSettings::DialogSettings(ConnectorToServer* connectorToServer, bool instru
DialogSettings::~DialogSettings()
{
if(dlgVersionControl)
dlgVersionControl->close();
delete ui;
delete settings;
}
void DialogSettings::deactivate()
{
ui->btnSetVersion->setEnabled(false);
if(dlgVersionControl)
{
dlgVersionControl->close();
delete dlgVersionControl;
dlgVersionControl = nullptr;
}
}
ServerSettings DialogSettings::getSettings()
{
return *settings;
@@ -201,10 +217,15 @@ void DialogSettings::on_btnSetVersion_clicked()
if(connectorToServer)
if(connectorToServer->getIsConnected())
{
DialogVersionControl *versionSelectWidget = new DialogVersionControl(connectorToServer, this);
versionSelectWidget->initialize(connectorToServer->getLoginName());
versionSelectWidget->exec();
delete versionSelectWidget;
dlgVersionControl = new DialogVersionControl(connectorToServer, this);
dlgVersionControl->initialize(connectorToServer->getLoginName());
dlgVersionControl->exec();
if(dlgVersionControl)
{
delete dlgVersionControl;
dlgVersionControl = nullptr;
}
}
}

View File

@@ -6,6 +6,7 @@
#include <QEvent>
#include "Datas.h"
#include "connectortoserver.h"
#include "dialogversioncontrol.h"
namespace Ui {
class DialogSettings;
@@ -19,6 +20,8 @@ public:
explicit DialogSettings(ConnectorToServer* connectorToServer, bool instructorIsLogged, QWidget *parent = nullptr);
~DialogSettings();
void deactivate();
ServerSettings getSettings();
bool settingsServerIsChanged(){ return flSettingsServerChanged;}
@@ -53,6 +56,8 @@ private:
ServerSettings *settings;
ConnectorToServer* connectorToServer;
DialogVersionControl *dlgVersionControl;
bool flSettingsServerChanged;
};

View File

@@ -13,6 +13,7 @@ DialogVersionControl::DialogVersionControl(ConnectorToServer* connectorToServer,
selectedVersion(nullptr),
versionContainer(nullptr),
waitAnimationWidget(nullptr),
dlgNewVersion(nullptr),
authorName(""),
flGetVersion(false)
{
@@ -32,6 +33,13 @@ DialogVersionControl::DialogVersionControl(ConnectorToServer* connectorToServer,
DialogVersionControl::~DialogVersionControl()
{
if(dlgNewVersion)
{
dlgNewVersion->close();
delete dlgNewVersion;
dlgNewVersion = nullptr;
}
waitAnimationWidget->hideWithStop();
delete versionContainer;
@@ -123,7 +131,7 @@ void DialogVersionControl::on_createDuplicateButton_clicked()
return;
}
DialogNewVersion *dlgNewVersion = new DialogNewVersion(this);
dlgNewVersion = new DialogNewVersion(this);
dlgNewVersion->initialize(selectedVersion->getViewName());
switch(dlgNewVersion->exec())
@@ -140,7 +148,11 @@ void DialogVersionControl::on_createDuplicateButton_clicked()
break;
}
delete dlgNewVersion;
if(dlgNewVersion)
{
delete dlgNewVersion;
dlgNewVersion = nullptr;
}
}
void DialogVersionControl::on_deleteVersionButton_clicked()

View File

@@ -66,6 +66,8 @@ private:
WaitAnimationWidget *waitAnimationWidget;
DialogNewVersion *dlgNewVersion;
QString authorName;
bool flGetVersion;