mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJClient.git
synced 2026-03-28 05:25:39 +03:00
feat: add translate field and autoStartBox
This commit is contained in:
@@ -13,9 +13,11 @@ DataParser::DataParser(QObject *parent) :
|
||||
}
|
||||
}
|
||||
|
||||
DataParser::~DataParser()
|
||||
QByteArray DataParser::slotGetXmlAnswer(QString answerCode)
|
||||
{
|
||||
|
||||
if(answerCode == "END"){
|
||||
return xmlAnswer_notify(answerCode);
|
||||
}
|
||||
}
|
||||
|
||||
void DataParser::CreateXML(QList<FileData> fileDataList)
|
||||
@@ -85,6 +87,8 @@ void DataParser::CreateServerSettings(QString address, QString port)
|
||||
|
||||
xmlWriter.writeAttribute("Address",address);
|
||||
xmlWriter.writeAttribute("Port",port);
|
||||
xmlWriter.writeAttribute("Language","RUS");
|
||||
xmlWriter.writeAttribute("AutoStart",QString::number(false));
|
||||
|
||||
xmlWriter.writeEndElement();
|
||||
xmlWriter.writeEndElement();
|
||||
@@ -116,6 +120,20 @@ void DataParser::CreateAuthData(ServerAuthorization *serverAuth)
|
||||
|
||||
}
|
||||
|
||||
QByteArray DataParser::xmlAnswer_notify(QString code)
|
||||
{
|
||||
|
||||
QList<SXmlAnswerTag> listTag;
|
||||
|
||||
SAttribute attribute1 = {"Code", code};
|
||||
QList<SAttribute> listAttr = {attribute1};
|
||||
SXmlAnswerTag tag = {"ServerNotify", listAttr};
|
||||
|
||||
listTag.append(tag);
|
||||
|
||||
return xmlAnswer(listTag);
|
||||
}
|
||||
|
||||
void DataParser::AddRunData(QList<int> displays)
|
||||
{
|
||||
QFile file(displayTemp);
|
||||
@@ -155,6 +173,14 @@ ServerSettings *DataParser::GetServerSettings()
|
||||
settings->Port = value;
|
||||
}
|
||||
|
||||
if(name == "Language"){
|
||||
settings->Language = value;
|
||||
}
|
||||
|
||||
if(name == "AutoStart"){
|
||||
settings->isAutoStart = value.toInt();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -165,3 +191,91 @@ ServerSettings *DataParser::GetServerSettings()
|
||||
return settings;
|
||||
}
|
||||
|
||||
void DataParser::saveClientSettrings(QString language, bool isAutoStart)
|
||||
{
|
||||
QFile file(settingsName);
|
||||
file.open(QIODevice::ReadOnly | QIODevice::Text);
|
||||
|
||||
QString settings = file.readAll();
|
||||
|
||||
file.close();
|
||||
file.remove();
|
||||
|
||||
file.open(QIODevice::WriteOnly | QIODevice::Text);
|
||||
|
||||
auto languagePos = settings.indexOf(XMLLanguageProperty) + XMLLanguageProperty.length();
|
||||
settings = settings.replace(languagePos,language.size(),language);
|
||||
|
||||
auto autoStartPos = settings.indexOf(XMLAutoStartProperty) + XMLAutoStartProperty.length();
|
||||
settings = settings.replace(autoStartPos,1,QString::number(isAutoStart));
|
||||
|
||||
file.write(settings.toUtf8());
|
||||
file.close();
|
||||
}
|
||||
|
||||
|
||||
QByteArray DataParser::xmlAnswer(QList<SXmlAnswerTag> listTag, QString elemUp1, QString elemUp2)
|
||||
{
|
||||
/* Открываем файл для Записи*/
|
||||
QFile file("save.xml");
|
||||
file.open(QIODevice::WriteOnly);
|
||||
|
||||
/* Создаем объект, с помощью которого осуществляется запись в файл */
|
||||
QXmlStreamWriter xmlWriter(&file);
|
||||
|
||||
xmlWriter.setAutoFormatting(true); // Устанавливаем автоформатирование текста
|
||||
|
||||
xmlWriter.writeStartDocument(); // Запускаем запись в документ
|
||||
|
||||
if(elemUp1 != "")
|
||||
xmlWriter.writeStartElement(elemUp1); // Записываем тег
|
||||
|
||||
if(elemUp2 != "")
|
||||
xmlWriter.writeStartElement(elemUp2); // Записываем тег
|
||||
|
||||
//Записываем все элементы
|
||||
foreach(SXmlAnswerTag tag, listTag)
|
||||
{
|
||||
xmlWriter.writeStartElement(tag.elementName); // Записываем тег
|
||||
|
||||
// Записываем атрибуты
|
||||
foreach(SAttribute attr, tag.attr)
|
||||
xmlWriter.writeAttribute(attr.name, attr.value);
|
||||
|
||||
xmlWriter.writeEndElement(); // Закрываем тег
|
||||
}
|
||||
|
||||
if(elemUp1 != "")
|
||||
xmlWriter.writeEndElement(); // Закрываем тег
|
||||
|
||||
if(elemUp1 != "")
|
||||
xmlWriter.writeEndElement(); // Закрываем тег
|
||||
|
||||
/* Завершаем запись в документ*/
|
||||
xmlWriter.writeEndDocument();
|
||||
|
||||
file.close(); // Закрываем файл
|
||||
|
||||
QByteArray array;
|
||||
|
||||
/* Открываем файл для Чтения*/
|
||||
QFile fileR("save.xml");
|
||||
if (!fileR.open(QFile::ReadOnly | QFile::Text))
|
||||
{
|
||||
QString str = "Не удалось открыть файл";
|
||||
qDebug() << "xmlAnswer: " << str;
|
||||
}
|
||||
else
|
||||
{
|
||||
array = fileR.readAll();
|
||||
fileR.close(); // Закрываем файл
|
||||
}
|
||||
|
||||
return array;
|
||||
}
|
||||
|
||||
|
||||
DataParser::~DataParser()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
#include <QFile>
|
||||
#include <QXmlStreamWriter>
|
||||
|
||||
|
||||
class DataParser : public QObject
|
||||
{
|
||||
|
||||
@@ -19,12 +18,21 @@ public:
|
||||
~DataParser();
|
||||
ServerSettings* GetServerSettings();
|
||||
void CreateServerSettings(QString server,QString port);
|
||||
void saveClientSettrings(QString language,bool isAutoStart);
|
||||
void CreateXML(QList<FileData> fileDataList);
|
||||
void CreateAuthMessage(ClientAutorization *auth);
|
||||
void CreateAuthData(ServerAuthorization *serverAuth);
|
||||
void AddRunData(QList<int> displays);
|
||||
QByteArray xmlAnswer_notify(QString code);
|
||||
QByteArray xmlAnswer(QList<SXmlAnswerTag> listTag, QString elemUp1 = "", QString elemUp2 = "");
|
||||
|
||||
public slots:
|
||||
QByteArray slotGetXmlAnswer(QString);
|
||||
|
||||
|
||||
private:
|
||||
const QString XMLLanguageProperty = "Language=\"";
|
||||
const QString XMLAutoStartProperty = "AutoStart=\"";
|
||||
ClientAutorization *authPassCache;
|
||||
|
||||
};
|
||||
|
||||
@@ -111,7 +111,20 @@ void TCPClient::SetDisconnect()
|
||||
emit onSendDebugLog("Server disabled");
|
||||
}
|
||||
|
||||
void TCPClient::WaitWrites()
|
||||
void TCPClient::sendDisable()
|
||||
{
|
||||
QDataStream stream(socket);
|
||||
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
|
||||
|
||||
QByteArray data;
|
||||
data = emit signalGetXmlAnswer("END");
|
||||
|
||||
stream << PacketType::TYPE_XMLANSWER;
|
||||
stream << data;
|
||||
waitWrites();
|
||||
}
|
||||
|
||||
void TCPClient::waitWrites()
|
||||
{
|
||||
socket->waitForBytesWritten();
|
||||
}
|
||||
|
||||
@@ -29,7 +29,8 @@ public:
|
||||
void SendFile();
|
||||
void SendUnityConnect();
|
||||
void SetDisconnect();
|
||||
void WaitWrites();
|
||||
void sendDisable();
|
||||
void waitWrites();
|
||||
void WaitRead(int time);
|
||||
QTcpSocket* GetSocket();
|
||||
~TCPClient();
|
||||
@@ -38,6 +39,7 @@ signals:
|
||||
void onSendDebugLog(QString message);
|
||||
void Recognize(QTcpSocket *socket);
|
||||
void ConnectionState(bool flag);
|
||||
QByteArray signalGetXmlAnswer(QString);
|
||||
|
||||
public slots:
|
||||
void MessageEntered(QString message);
|
||||
|
||||
Reference in New Issue
Block a user