This commit is contained in:
2025-11-28 11:28:39 +03:00
parent c61066cfd1
commit 612fcc8aa7
23 changed files with 351 additions and 193 deletions

View File

@@ -17,7 +17,8 @@ public:
this->name = name;
this->address = address;
this->port = port;
this->fullName = "Name: " + name + " IP: " + address + " port : " + port + " login: " + login;
//this->fullName = "Name: " + name + " IP: " + address + " port : " + port + " login: " + login;
this->fullName = "IP: " + address + " port : " + port + " login: " + login;
};
~Client(){};
@@ -31,7 +32,8 @@ public:
{
this->login = login;
isLoggedIn = true;
fullName = "Name: " + name + " IP: " + address + " port : " + port + " login: " + login;
//fullName = "Name: " + name + " IP: " + address + " port : " + port + " login: " + login;
fullName = "IP: " + address + " port : " + port + " login: " + login;
}
QString getLogin()
{

View File

@@ -53,7 +53,22 @@ void Logger::setLogToFile(bool flag)
void Logger::handleLog(QString msg, LogLevel logLevel)
{
/*
color: red; * Красный *
color: green; * Зелёный *
color: blue; * Синий *
color: yellow; * Жёлтый *
color: black; * Чёрный *
color: white; * Белый *
color: purple; * Фиолетовый *
color: orange; * Оранжевый *
color: pink; * Розовый *
color: brown; * Коричневый *
color: gray; * Серый *
*/
QString level;
QString colorLevel = "pink";
#ifndef PROJECT_TYPE_DEBUG
if(logLevel == DEBUG)
@@ -62,24 +77,44 @@ void Logger::handleLog(QString msg, LogLevel logLevel)
switch (logLevel)
{
case INFO: level = "INFO"; break;
case WARNING: level = "WARNING"; break;
case ERROR: level = "ERROR"; break;
case CRITICAL: level = "CRITICAL"; break;
case DEBUG: level = "DEBUG"; break;
case INFO:
level = "INFO";
colorLevel = "green";
break;
case WARNING:
level = "WARNING";
colorLevel = "yellow";
break;
case ERROR:
level = "ERROR";
colorLevel = "red";
break;
case CRITICAL:
level = "CRITICAL";
colorLevel = "purple";
break;
case DEBUG:
level = "DEBUG";
colorLevel = "brown";
break;
}
QString timeStamp = QDateTime::currentDateTime().toString("hh:mm:ss");
QString message = timeStamp + " " + level + " " + msg;
QString messageHTML = QString("<p><span style=\"color: blue;\">%1</span> <span style=\"color: %2;\">%3</span> <span style=\"color: black;\">%4</span></p>").
arg(timeStamp, colorLevel, level, msg);
if (loggingType == LoggingType::WIDGET)
{
emit sigLogToWidget(message);
emit sigLogToWidget(messageHTML);
}
else if(loggingType == LoggingType::CONSOLE)
{
qDebug() << message;
qDebug() << messageHTML;
}
if(isLogToFile)

View File

@@ -32,6 +32,7 @@ ServerLMSWidget::ServerLMSWidget(QWidget *parent) :
first (true),
language(languageENG),
errorCode(0),
versionStr("..."),
flStartInitialization(false)
{
ui->setupUi(this);
@@ -39,6 +40,9 @@ ServerLMSWidget::ServerLMSWidget(QWidget *parent) :
qDebug() << "ServerLMSWidget init thread ID " << QThread::currentThreadId();
ui->widget_Control->setObjectName("widgetControl");
ui->btnStopServer->setObjectName("btnStopServer");
ui->btnStartServer->setObjectName("btnStartServer");
ui->btnSettings->setObjectName("btnSettings");
registerMetaType();
@@ -125,7 +129,8 @@ void ServerLMSWidget::slot_UpdateListClients()
void ServerLMSWidget::slot_AddMessageToLog(QString message)
{
ui->loggerTextField->appendPlainText(message);
//ui->loggerTextField->appendPlainText(message);
ui->loggerTextField->appendHtml(message);
}
void ServerLMSWidget::slot_ErrorPostgreSQL(QString text)
@@ -170,6 +175,7 @@ void ServerLMSWidget::slot_startInitialization_step1()
void ServerLMSWidget::slot_setVersion(QString versionStr)
{
this->versionStr = versionStr;
ui->lblVersionText->setText(versionStr);
}
@@ -479,4 +485,6 @@ void ServerLMSWidget::updateStateServer()
ui->btnStartServer->setEnabled(false);
}
}
ui->lblVersionText->setText(versionStr);
}

View File

@@ -173,6 +173,8 @@ private:
QString language;
int errorCode;
QString versionStr;
bool flStartInitialization;
};

View File

@@ -6,10 +6,16 @@
<rect>
<x>0</x>
<y>0</y>
<width>1000</width>
<width>1200</width>
<height>600</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>1200</width>
<height>600</height>
</size>
</property>
<property name="font">
<font>
<family>Tahoma</family>
@@ -45,14 +51,14 @@
</property>
<property name="maximumSize">
<size>
<width>80</width>
<height>55</height>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="baseSize">
<size>
<width>80</width>
<height>40</height>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="layoutDirection">
@@ -86,14 +92,14 @@
</property>
<property name="maximumSize">
<size>
<width>80</width>
<height>55</height>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="baseSize">
<size>
<width>80</width>
<height>40</height>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="layoutDirection">
@@ -262,13 +268,13 @@
<widget class="QLabel" name="lblOnOffText">
<property name="minimumSize">
<size>
<width>150</width>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>150</width>
<width>100</width>
<height>16777215</height>
</size>
</property>

View File

@@ -18,6 +18,7 @@ DialogSettingsTray::DialogSettingsTray(ProviderDBLMS* providerDBLMS, QWidget *pa
ui->btnSave->setObjectName("btnSave");
ui->btnCheckDB->setObjectName("btnCheckDB");
ui->btnUpdateDocs->setObjectName("btnUpdateDocs");
ui->checkLocalhost->setObjectName("checkLocalhost");
/* Создаем строку для регулярного выражения */
QString ipRange = "(?:[0-1]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])";

View File

@@ -70,11 +70,11 @@
<item row="0" column="0">
<layout class="QVBoxLayout" name="verticalLayout_DB">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_HostName">
<layout class="QHBoxLayout" name="horizontalLayout_Local">
<item>
<widget class="QLabel" name="label_HostName">
<widget class="QLabel" name="label_Local">
<property name="text">
<string>Host name</string>
<string>Local</string>
</property>
</widget>
</item>
@@ -94,7 +94,18 @@
<item>
<widget class="QCheckBox" name="checkLocalhost">
<property name="text">
<string>Localhost</string>
<string/>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_HostName">
<item>
<widget class="QLabel" name="label_IP">
<property name="text">
<string>IP address</string>
</property>
</widget>
</item>
@@ -218,67 +229,11 @@
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_Check">
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QToolButton" name="btnCheckDB">
<property name="minimumSize">
<size>
<width>58</width>
<height>58</height>
</size>
</property>
<property name="text">
<string>Check</string>
</property>
<property name="icon">
<iconset resource="../ServerLMS.qrc">
<normaloff>:/resources/icons/checkDB.png</normaloff>:/resources/icons/checkDB.png</iconset>
</property>
<property name="iconSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextUnderIcon</enum>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_Save">
<item>
@@ -329,19 +284,19 @@
<item row="0" column="0">
<layout class="QVBoxLayout" name="verticalLayout_Additional">
<item>
<widget class="QToolButton" name="btnUpdateDocs">
<widget class="QToolButton" name="btnCheckDB">
<property name="minimumSize">
<size>
<width>80</width>
<width>58</width>
<height>58</height>
</size>
</property>
<property name="text">
<string>Update Docs</string>
<string>Check DB</string>
</property>
<property name="icon">
<iconset resource="../../InstructorsAndTrainees/InstructorsAndTrainees.qrc">
<normaloff>:/resources/icons/exchange.png</normaloff>:/resources/icons/exchange.png</iconset>
<iconset resource="../ServerLMS.qrc">
<normaloff>:/resources/icons/checkDB.png</normaloff>:/resources/icons/checkDB.png</iconset>
</property>
<property name="iconSize">
<size>
@@ -367,6 +322,32 @@
</property>
</spacer>
</item>
<item>
<widget class="QToolButton" name="btnUpdateDocs">
<property name="minimumSize">
<size>
<width>80</width>
<height>58</height>
</size>
</property>
<property name="text">
<string>Update Docs</string>
</property>
<property name="icon">
<iconset resource="../../InstructorsAndTrainees/InstructorsAndTrainees.qrc">
<normaloff>:/resources/icons/exchange.png</normaloff>:/resources/icons/exchange.png</iconset>
</property>
<property name="iconSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextUnderIcon</enum>
</property>
</widget>
</item>
</layout>
</item>
</layout>

View File

@@ -4,7 +4,7 @@
<context>
<name>AssetsManager</name>
<message>
<location filename="../Systems/assetsmanager.cpp" line="290"/>
<location filename="../Systems/assetsmanager.cpp" line="292"/>
<source>LLC Constanta-Design</source>
<translation>ООО Константа-Дизайн</translation>
</message>
@@ -168,8 +168,8 @@
</message>
<message>
<location filename="../settings/dialogsettingstray.cpp" line="288"/>
<location filename="../settings/dialogsettingstray.cpp" line="340"/>
<location filename="../settings/dialogsettingstray.cpp" line="345"/>
<location filename="../settings/dialogsettingstray.cpp" line="338"/>
<location filename="../settings/dialogsettingstray.cpp" line="343"/>
<source>Error!</source>
<translation>Ошибка!</translation>
</message>
@@ -184,35 +184,35 @@
<translation>Авторизация суперпользователя PostgreSQL</translation>
</message>
<message>
<location filename="../settings/dialogsettingstray.cpp" line="340"/>
<location filename="../settings/dialogsettingstray.cpp" line="345"/>
<location filename="../settings/dialogsettingstray.cpp" line="338"/>
<location filename="../settings/dialogsettingstray.cpp" line="343"/>
<source>Error connecting to PostgreSQL!</source>
<translation>Ошибка соединения с PostgreSQL!</translation>
</message>
<message>
<location filename="../settings/dialogsettingstray.cpp" line="341"/>
<location filename="../settings/dialogsettingstray.cpp" line="346"/>
<location filename="../settings/dialogsettingstray.cpp" line="339"/>
<location filename="../settings/dialogsettingstray.cpp" line="344"/>
<source>Possible reasons:</source>
<translation>Возможные причины:</translation>
</message>
<message>
<location filename="../settings/dialogsettingstray.cpp" line="342"/>
<location filename="../settings/dialogsettingstray.cpp" line="347"/>
<location filename="../settings/dialogsettingstray.cpp" line="340"/>
<location filename="../settings/dialogsettingstray.cpp" line="345"/>
<source>*superuser PostgreSQL login or password is incorrect;</source>
<translation>*логин или пароль суперпользователя PostgreSQL некорректен;</translation>
</message>
<message>
<location filename="../settings/dialogsettingstray.cpp" line="343"/>
<location filename="../settings/dialogsettingstray.cpp" line="341"/>
<source>*Port is incorrect.</source>
<translation>*Порт некорректен.</translation>
</message>
<message>
<location filename="../settings/dialogsettingstray.cpp" line="348"/>
<location filename="../settings/dialogsettingstray.cpp" line="346"/>
<source>*Port is incorrect;</source>
<translation>*Порт некорректен;</translation>
</message>
<message>
<location filename="../settings/dialogsettingstray.cpp" line="349"/>
<location filename="../settings/dialogsettingstray.cpp" line="347"/>
<source>*file &apos;pg_hba.conf&apos; does not contain an entry for the IP address:</source>
<translation>*файл &apos;pg_hba.conf не содержит записи доступа для IP адреса:</translation>
</message>
@@ -225,123 +225,129 @@
<translation>Форма</translation>
</message>
<message>
<location filename="../serverlmswidget.ui" line="188"/>
<location filename="../serverlmswidget.ui" line="204"/>
<source>Logger</source>
<translation>Логгер</translation>
</message>
<message>
<location filename="../serverlmswidget.ui" line="153"/>
<location filename="../serverlmswidget.ui" line="169"/>
<source>Clients</source>
<translation>Клиенты</translation>
</message>
<message>
<location filename="../serverlmswidget.ui" line="131"/>
<location filename="../serverlmswidget.ui" line="142"/>
<source>Settings</source>
<translation>Настройки</translation>
</message>
<message>
<location filename="../serverlmswidget.ui" line="237"/>
<location filename="../serverlmswidget.ui" line="257"/>
<source>Server: </source>
<translation>Сервер: </translation>
</message>
<message>
<location filename="../serverlmswidget.ui" line="295"/>
<location filename="../serverlmswidget.ui" line="315"/>
<source>Data base: </source>
<translation>База данных: </translation>
</message>
<message>
<location filename="../serverlmswidget.ui" line="256"/>
<location filename="../serverlmswidget.ui" line="302"/>
<location filename="../serverlmswidget.ui" line="276"/>
<location filename="../serverlmswidget.ui" line="328"/>
<location filename="../serverlmswidget.ui" line="365"/>
<source>...</source>
<translation></translation>
</message>
<message>
<location filename="../serverlmswidget.ui" line="324"/>
<location filename="../serverlmswidget.ui" line="352"/>
<source>Version of materials: </source>
<translation>Версия материалов: </translation>
</message>
<message>
<location filename="../serverlmswidget.ui" line="389"/>
<source>Authorization</source>
<translation>Авторизация</translation>
</message>
<message>
<location filename="../serverlmswidget.ui" line="51"/>
<location filename="../serverlmswidget.ui" line="62"/>
<source>Start</source>
<translation>Запустить</translation>
</message>
<message>
<location filename="../serverlmswidget.ui" line="92"/>
<location filename="../serverlmswidget.ui" line="103"/>
<source>Stop</source>
<translation>Остановить</translation>
</message>
<message>
<location filename="../serverlmswidget.cpp" line="171"/>
<location filename="../serverlmswidget.cpp" line="217"/>
<source>Server is started!</source>
<translation>Сервер запущен!</translation>
</message>
<message>
<location filename="../serverlmswidget.cpp" line="184"/>
<location filename="../serverlmswidget.cpp" line="230"/>
<source>Server is stoped!</source>
<translation>Сервер остановлен!</translation>
</message>
<message>
<location filename="../serverlmswidget.cpp" line="223"/>
<location filename="../serverlmswidget.cpp" line="272"/>
<location filename="../serverlmswidget.cpp" line="269"/>
<location filename="../serverlmswidget.cpp" line="332"/>
<source>Warning!</source>
<translation>Внимание!</translation>
</message>
<message>
<location filename="../serverlmswidget.cpp" line="223"/>
<location filename="../serverlmswidget.cpp" line="269"/>
<source>Database settings have been changed.
The server will be restarted.</source>
<translation>Настройки Базы Данных были изменены.
Сервер будет перезапущен.</translation>
</message>
<message>
<location filename="../serverlmswidget.cpp" line="272"/>
<location filename="../serverlmswidget.cpp" line="332"/>
<source>The file could not be opened </source>
<translation>Файл не может быть открыт </translation>
</message>
<message>
<location filename="../serverlmswidget.cpp" line="351"/>
<location filename="../serverlmswidget.cpp" line="355"/>
<location filename="../serverlmswidget.cpp" line="406"/>
<location filename="../serverlmswidget.cpp" line="410"/>
<source>Database connection error!</source>
<translation>Ошибка подключения Базы данных!</translation>
</message>
<message>
<location filename="../serverlmswidget.cpp" line="194"/>
<location filename="../serverlmswidget.cpp" line="355"/>
<location filename="../serverlmswidget.cpp" line="240"/>
<location filename="../serverlmswidget.cpp" line="410"/>
<source>Error!</source>
<translation>Ошибка!</translation>
</message>
<message>
<location filename="../serverlmswidget.cpp" line="115"/>
<location filename="../serverlmswidget.cpp" line="134"/>
<source>Error PostgreSQL!</source>
<translation>Ошибка PostgreSQL!</translation>
</message>
<message>
<location filename="../serverlmswidget.cpp" line="194"/>
<location filename="../serverlmswidget.cpp" line="240"/>
<source>Settings file could not be opened:</source>
<translation>Файл настроек не открыт:</translation>
</message>
<message>
<location filename="../serverlmswidget.cpp" line="370"/>
<location filename="../serverlmswidget.cpp" line="427"/>
<source>Database connection OK!</source>
<translation>База данных подключена!</translation>
</message>
<message>
<location filename="../serverlmswidget.cpp" line="384"/>
<location filename="../serverlmswidget.cpp" line="441"/>
<source>started</source>
<translation>запущен</translation>
</message>
<message>
<location filename="../serverlmswidget.cpp" line="389"/>
<location filename="../serverlmswidget.cpp" line="446"/>
<source>stoped</source>
<translation>остановлен</translation>
</message>
<message>
<location filename="../serverlmswidget.cpp" line="409"/>
<location filename="../serverlmswidget.cpp" line="466"/>
<source>connected</source>
<translation>подключена</translation>
</message>
<message>
<location filename="../serverlmswidget.cpp" line="418"/>
<location filename="../serverlmswidget.cpp" line="475"/>
<source>not connected</source>
<translation>не подключена</translation>
</message>