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); QFile file(settingsName);
file.open(QIODevice::ReadOnly); file.open(QIODevice::ReadOnly);
QXmlStreamReader xmlReader(&file); QXmlStreamReader xmlReader(&file);

View File

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

View File

@@ -125,7 +125,42 @@ void DataParserOutput::createAuthMessage(ClientAutorization *auth)
file.close(); 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); QFile file(settingsName);
file.open(QIODevice::WriteOnly); file.open(QIODevice::WriteOnly);
@@ -142,9 +177,6 @@ void DataParserOutput::createServerSettings(ServerSettings* serverSettings)
xmlWriter.writeAttribute("Port",serverSettings->Port); xmlWriter.writeAttribute("Port",serverSettings->Port);
xmlWriter.writeAttribute("Language","RUS"); xmlWriter.writeAttribute("Language","RUS");
xmlWriter.writeAttribute("AutoStart",QString::number(false)); xmlWriter.writeAttribute("AutoStart",QString::number(false));
//xmlWriter.writeAttribute("DestPortMath","18003");
//xmlWriter.writeAttribute("LocalPortMath","18004");
//xmlWriter.writeAttribute("UseMathModel",QString::number(serverSettings->mathModelUse));
xmlWriter.writeEndElement(); xmlWriter.writeEndElement();

View File

@@ -17,7 +17,8 @@ public:
explicit DataParserOutput(QObject *parent = 0); explicit DataParserOutput(QObject *parent = 0);
void createFileDataList(const QList<FileData>& fileDataList,const QString& filename); void createFileDataList(const QList<FileData>& fileDataList,const QString& filename);
void createAuthMessage(ClientAutorization *auth); void createAuthMessage(ClientAutorization *auth);
void createServerSettings(ServerSettings *serverSettings); void createServerSettings();
void updateServerSettings(Settings *serverSettings);
void changeVersion(StreamingVersionData *versionData); void changeVersion(StreamingVersionData *versionData);
void createAuthData(ServerAuthorization *serverAuth); void createAuthData(ServerAuthorization *serverAuth);
void createAuthDataOffline(const QString& username,const QString& pass); 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"); emit sigSendDebugLog(Tools::getTime() + " Client started");
} }
void TCPClient::setConnect(ServerSettings *serverSettings) void TCPClient::setConnect(Settings *serverSettings)
{ {
socket = new QTcpSocket(); socket = new QTcpSocket();
qDebug() << "TCPCLient thread: " << thread(); qDebug() << "TCPCLient thread: " << thread();

View File

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

View File

@@ -5,7 +5,7 @@
#include <QString> #include <QString>
class ServerSettings{ class Settings{
public: public:
QString Address; QString Address;
QString Port; 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"?> <?xml version="1.0" encoding="UTF-8"?>
<ServerSettingsContainer> <ServerSettingsContainer>
<ServerSettings Address="192.168.100.83" Port="6000" Language="RUS" AutoStart="0"/> <ServerSettings Address="192.168.100.134" Port="6000" Language="RUS" AutoStart="0"/>
<VersionData Version="base" isChangable="96"/> <VersionData Version="ver1" isChangable="1"/>
</ServerSettingsContainer> </ServerSettingsContainer>

File diff suppressed because it is too large Load Diff

View File

@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?> <?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(); emit sigSaveServerSettings();
} }
ServerSettings *EntryWidget::getServerSettings() void EntryWidget::fillSettings(Settings *settings)
{
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)
{ {
ui->serverInputField->setText(settings->Address); ui->serverInputField->setText(settings->Address);
ui->portInputField->setText(settings->Port); ui->portInputField->setText(settings->Port);

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -29,7 +29,7 @@ public:
void initialize(ResourceManager *resourceManager); void initialize(ResourceManager *resourceManager);
void addWidgetToChangeGroup(CommonButtonGroupWidget *commonWidgetGroup); void addWidgetToChangeGroup(CommonButtonGroupWidget *commonWidgetGroup);
void addWidgetToInteractiveGroup(EntryWidget *entryWidget); void addWidgetToInteractiveGroup(EntryWidget *entryWidget);
void setLoadSettings(ServerSettings *serverSettings); void setLoadSettings(Settings *serverSettings);
void setLoginSuccessState(); void setLoginSuccessState();
void setLoginFailedState(); void setLoginFailedState();
void setClientVersionName(const QString &versionName); 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(commonButtonGroupWidget,&CommonButtonGroupWidget::sigUpdateCommonWidget,mainWindow,&MainWindow::slotCommonWidgetState);
connect(mainWindow,&MainWindow::sigShowSettings,this,&WidgetManager::showSettings,Qt::AutoConnection); connect(mainWindow,&MainWindow::sigShowSettings,this,&WidgetManager::showSettings,Qt::AutoConnection);
} }
void WidgetManager::slotSetLoadSettings(ServerSettings *settings) void WidgetManager::slotSetLoadSettings(Settings *settings)
{ {
mainWindow->setLoadSettings(settings); mainWindow->setLoadSettings(settings);
entryWidget->fillSettings(settings); entryWidget->fillSettings(settings);

View File

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