fix: server changable version

This commit is contained in:
semenov
2025-12-12 11:34:02 +03:00
parent 14c1ffb66f
commit c23f3d519b
24 changed files with 13298 additions and 13264 deletions

View File

@@ -15,9 +15,9 @@ void DataParser::initialize(PostProcessorSystem *postProcessSystem)
}
ServerSettings *DataParser::getClientSettings()
Settings *DataParser::getSettings()
{
ServerSettings *settings = new ServerSettings;
Settings *settings = new Settings;
QFile file(settingsName);
file.open(QIODevice::ReadOnly);
QXmlStreamReader xmlReader(&file);

View File

@@ -20,7 +20,7 @@ public:
~DataParser() = default;
void initialize(PostProcessorSystem *postProcessSystem);
ServerSettings* getClientSettings();
Settings* getSettings();
bool xmlParser(const QByteArray& array);
private:
PostProcessorSystem *postProcessSystem;

View File

@@ -125,7 +125,42 @@ void DataParserOutput::createAuthMessage(ClientAutorization *auth)
file.close();
}
void DataParserOutput::createServerSettings(ServerSettings* serverSettings)
void DataParserOutput::createServerSettings()
{
QFile file(settingsName);
if (file.exists()) return;
file.open(QIODevice::WriteOnly);
QXmlStreamWriter xmlWriter(&file);
xmlWriter.setAutoFormatting(true);
xmlWriter.writeStartDocument();
xmlWriter.writeStartElement("ServerSettingsContainer");
xmlWriter.writeStartElement("ServerSettings");
xmlWriter.writeAttribute("Address","");
xmlWriter.writeAttribute("Port","");
xmlWriter.writeAttribute("Language","RUS");
xmlWriter.writeAttribute("AutoStart",QString::number(false));
xmlWriter.writeEndElement();
xmlWriter.writeStartElement("VersionData");
xmlWriter.writeAttribute("Version","-----");
xmlWriter.writeAttribute("isChangable","0");
xmlWriter.writeEndElement();
xmlWriter.writeEndElement();
xmlWriter.writeEndDocument();
file.close();
}
void DataParserOutput::updateServerSettings(Settings* serverSettings)
{
QFile file(settingsName);
file.open(QIODevice::WriteOnly);
@@ -142,9 +177,6 @@ void DataParserOutput::createServerSettings(ServerSettings* serverSettings)
xmlWriter.writeAttribute("Port",serverSettings->Port);
xmlWriter.writeAttribute("Language","RUS");
xmlWriter.writeAttribute("AutoStart",QString::number(false));
//xmlWriter.writeAttribute("DestPortMath","18003");
//xmlWriter.writeAttribute("LocalPortMath","18004");
//xmlWriter.writeAttribute("UseMathModel",QString::number(serverSettings->mathModelUse));
xmlWriter.writeEndElement();

View File

@@ -17,7 +17,8 @@ public:
explicit DataParserOutput(QObject *parent = 0);
void createFileDataList(const QList<FileData>& fileDataList,const QString& filename);
void createAuthMessage(ClientAutorization *auth);
void createServerSettings(ServerSettings *serverSettings);
void createServerSettings();
void updateServerSettings(Settings *serverSettings);
void changeVersion(StreamingVersionData *versionData);
void createAuthData(ServerAuthorization *serverAuth);
void createAuthDataOffline(const QString& username,const QString& pass);

View File

@@ -17,7 +17,7 @@ void TCPClient::initialize(RecognizeSystem *recognize,SendSystem *sendSystem)
emit sigSendDebugLog(Tools::getTime() + " Client started");
}
void TCPClient::setConnect(ServerSettings *serverSettings)
void TCPClient::setConnect(Settings *serverSettings)
{
socket = new QTcpSocket();
qDebug() << "TCPCLient thread: " << thread();

View File

@@ -21,7 +21,7 @@ class TCPClient : public QObject
public:
explicit TCPClient(QObject *parent = 0);
void initialize(RecognizeSystem *recognize,SendSystem *sendSystem);
void setConnect(ServerSettings *serverSettings);
void setConnect(Settings *serverSettings);
~TCPClient(){};
void setDisconnect();
bool getIsConnected() const;

View File

@@ -5,7 +5,7 @@
#include <QString>
class ServerSettings{
class Settings{
public:
QString Address;
QString Port;

2
StaticData/authData.xml Normal file
View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<AuthData Login="I1" Password="b59c67bf196a4758191e42f76670ceba" InstructorName="Колобков А.К." ClientName="Колобков А.К." AccessType="instructor"/>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<ServerSettingsContainer>
<ServerSettings Address="192.168.100.83" Port="6000" Language="RUS" AutoStart="0"/>
<VersionData Version="base" isChangable="96"/>
<ServerSettings Address="192.168.100.134" Port="6000" Language="RUS" AutoStart="0"/>
<VersionData Version="ver1" isChangable="1"/>
</ServerSettingsContainer>

File diff suppressed because it is too large Load Diff

View File

@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<ClientNotify Code="DISABLE"/>
<ClientNotify Code="CHECKVERSIONLIST"/>

View File

@@ -65,21 +65,7 @@ void EntryWidget::on_saveServerButton_clicked()
emit sigSaveServerSettings();
}
ServerSettings *EntryWidget::getServerSettings()
{
ServerSettings *data = new ServerSettings;
QString server = ui->serverInputField->text();
QString port = ui->portInputField->text();
//bool checked = ui->mathModelUsecheckBox->isChecked();
data->Address = server;
data->Port = port;
data->mathModelUse = true;
return data;
}
void EntryWidget::fillSettings(ServerSettings *settings)
void EntryWidget::fillSettings(Settings *settings)
{
ui->serverInputField->setText(settings->Address);
ui->portInputField->setText(settings->Port);

View File

@@ -20,11 +20,9 @@ public:
void showLoginWidget(bool flag);
void disconnectState();
void fillSettings(ServerSettings *settings);
void fillSettings(Settings *settings);
void isActive(bool flag);
bool getLoginWidgetIsHidden();
ServerSettings *getServerSettings();
ClientAutorization* getAuthData();
signals:

View File

@@ -72,11 +72,7 @@ void UpdateNotifyWidget::showWithFill()
{
clearList();
if(!versionContainer->getLocalVersionData()->getIsChangeable())
{
showTryChangeBase();
}
else if(!versionContainer->getServerVersionData()->getIsChangeable())
if(!versionContainer->getServerVersionData()->getIsChangeable())
{
showTryChangeBase();
}

View File

@@ -17,10 +17,13 @@ CoreManager::CoreManager(QObject *parent) :
resourceManager = new ResourceManager;
postProcessorSystem = new PostProcessorSystem;
client = new Client;
settings = new Settings;
}
void CoreManager::initialize(WidgetManager *widgetManager,QThread *workerThread)
{
createNewServerSettings();
this->workerThread = workerThread;
this->widgetManager = widgetManager;
@@ -44,19 +47,18 @@ void CoreManager::initialize(WidgetManager *widgetManager,QThread *workerThread)
void CoreManager::start()
{
saveServerSettingsWithConnect();
checkAppAvailable();
}
void CoreManager::loadStaticData()
{
ServerSettings *currentSettings = dataParser->getClientSettings();
setLanguage(currentSettings->Language);
settings = dataParser->getSettings();
setLanguage(settings->Language);
setLocalVersion();
externalExecuter->setIsAutoStart(currentSettings->isAutoStart);
externalExecuter->setIsAutoStart(settings->isAutoStart);
bool appAvailable = externalExecuter->findApp();
widgetManager->setAppAvailable(appAvailable);
emit sigSetLoadSettings(currentSettings);
emit sigSetLoadSettings(settings);
}
void CoreManager::binding()
@@ -68,7 +70,8 @@ void CoreManager::binding()
connect(this,&CoreManager::sigSendPacketType,sendSystem,&SendSystem::sendPacketType,Qt::AutoConnection);
connect(this,&CoreManager::sigSendCheckUpdate,sendSystem,&SendSystem::sendCheckHash,Qt::AutoConnection);
connect(this,&CoreManager::sigSendXMLAnswer,sendSystem,&SendSystem::xmlAnswer,Qt::AutoConnection);
connect(this,&CoreManager::sigSendAutorization,sendSystem,&SendSystem::sendClientAutorization);
connect(this,&CoreManager::sigSendAutorization,sendSystem,&SendSystem::sendClientAutorization,Qt::AutoConnection);
connect(this,&CoreManager::sigGetClientSettings,dataParser,&DataParser::getSettings,Qt::DirectConnection);
connect(this,&CoreManager::sigSendUpdateToServer,updateController,&UpdateController::checkCanUpdate,Qt::AutoConnection);
connect(this,&CoreManager::sigGetConnected,tcpClient,&TCPClient::getIsConnected);
@@ -106,6 +109,7 @@ void CoreManager::binding()
connect(sendSystem,&SendSystem::sigSend,this,&CoreManager::calcUpdateProgress,Qt::AutoConnection);
connect(sendSystem,&SendSystem::sigGetXmlAnswer,dataParserOutput,&DataParserOutput::xmlAnswer_notify,Qt::DirectConnection);
}
void CoreManager::initializeSystems()
@@ -123,7 +127,7 @@ void CoreManager::initializeSystems()
screenChecker->check();
emit sigSetConnect(dataParser->getClientSettings());
emit sigSetConnect(dataParser->getSettings());
}
void CoreManager::initializeWidgets()
@@ -178,14 +182,20 @@ void CoreManager::serverBlocked()
void CoreManager::setServerVersion(StreamingVersionData *version)
{
widgetManager->getMainWindow()->setServerVersion(version);
if (version->getViewName() == settings->versionData.getViewName())
{
settings->versionData.setIsChangeable(version->getIsChangeable());
versionContainer->getLocalVersionData()->setIsChangeable(version->getIsChangeable());
dataParserOutput->updateServerSettings(settings);
}
}
void CoreManager::setLocalVersion()
{
ServerSettings *currentSettings = dataParser->getClientSettings();
StreamingVersionData *version = new StreamingVersionData;
version->setName(currentSettings->LocalVersionName);
version->setIsChangeable(currentSettings->versionData.getIsChangeable());
version->setName(settings->LocalVersionName);
version->setIsChangeable(settings->versionData.getIsChangeable());
versionContainer->setLocalVersionData(version);
widgetManager->getMainWindow()->setClientVersionName(versionContainer->getLocalVersion());
@@ -198,7 +208,7 @@ void CoreManager::checkLoginResult(ServerAuthorization *auth)
widgetManager->activateLoadingAnimation(true);
checkAccessType(auth->AccessType);
dataParserOutput->createAuthData(auth);
setLocalVersion();
//setLocalVersion();
widgetManager->setLoginSuccess();
widgetManager->getMainWindow()->setClientVersionName(versionContainer->getLocalVersion());
client->setLogin(auth->ClientName);
@@ -361,9 +371,8 @@ void CoreManager::saveServerSettingsWithConnect()
EntryWidget *entryWidget = widgetManager->getEntryWidget();
entryWidget->isActive(false);
ServerSettings *settings = entryWidget->getServerSettings();
settings->LocalVersionName = dataParser->getClientSettings()->LocalVersionName;
dataParserOutput->createServerSettings(settings);
settings->LocalVersionName = dataParser->getSettings()->LocalVersionName;
dataParserOutput->updateServerSettings(settings);
if(tcpClient->getIsConnected())
{
@@ -377,6 +386,11 @@ void CoreManager::saveServerSettingsWithConnect()
emit sigSetConnect(settings);
}
void CoreManager::createNewServerSettings()
{
dataParserOutput->createServerSettings();
}
void CoreManager::checkAppAvailable()
{
bool isAvailable = externalExecuter->findApp();

View File

@@ -54,15 +54,16 @@ signals:
void sigInitializeClient(RecognizeSystem *recognize,SendSystem *sendSystem);
void sigSendPacketType(PacketType packetType);
void sigSendXMLAnswer(QString answer);
void sigSetConnect(ServerSettings* serverSettings);
void sigSetConnect(Settings* serverSettings);
void sigCalculateHash();
void sigSendAutorization();
void sigSendCheckUpdate();
bool sigGetConnected();
void sigSendUpdateToServer();
Settings *sigGetClientSettings();
void sigSetLoadSettings(ServerSettings *serverSettings);
void sigSetLoadSettings(Settings *serverSettings);
private:
QTranslator translator;
@@ -79,6 +80,7 @@ private:
ResourceManager *resourceManager;
PostProcessorSystem *postProcessorSystem;
Client *client;
Settings *settings;
WidgetManager *widgetManager;
@@ -106,6 +108,7 @@ private:
void checkUpdate();
void setInlineDebug(QString text);
void createNewServerSettings();
};
#endif // COREMANAGER_H

View File

@@ -327,7 +327,7 @@ void MainWindow::addWidgetToInteractiveGroup(EntryWidget *entryWidget)
this->entryWidget = entryWidget;
}
void MainWindow::setLoadSettings(ServerSettings *serverSettings)
void MainWindow::setLoadSettings(Settings *serverSettings)
{
ui->retranslateUi(this);

View File

@@ -29,7 +29,7 @@ public:
void initialize(ResourceManager *resourceManager);
void addWidgetToChangeGroup(CommonButtonGroupWidget *commonWidgetGroup);
void addWidgetToInteractiveGroup(EntryWidget *entryWidget);
void setLoadSettings(ServerSettings *serverSettings);
void setLoadSettings(Settings *serverSettings);
void setLoginSuccessState();
void setLoginFailedState();
void setClientVersionName(const QString &versionName);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -35,7 +35,7 @@ void WidgetManager::binding()
connect(commonButtonGroupWidget,&CommonButtonGroupWidget::sigUpdateCommonWidget,mainWindow,&MainWindow::slotCommonWidgetState);
connect(mainWindow,&MainWindow::sigShowSettings,this,&WidgetManager::showSettings,Qt::AutoConnection);
}
void WidgetManager::slotSetLoadSettings(ServerSettings *settings)
void WidgetManager::slotSetLoadSettings(Settings *settings)
{
mainWindow->setLoadSettings(settings);
entryWidget->fillSettings(settings);

View File

@@ -49,7 +49,7 @@ public:
void slotInlineDebug(const QString &text);
public slots:
void showSettings(bool isActive);
void slotSetLoadSettings(ServerSettings *settings);
void slotSetLoadSettings(Settings *settings);
void slotActivateLoadAnimation(bool flag);
signals: