diff --git a/DOCS/Андрей/Board.md b/DOCS/Андрей/Board.md
index 395ffaf..88b37e3 100644
--- a/DOCS/Андрей/Board.md
+++ b/DOCS/Андрей/Board.md
@@ -11,6 +11,7 @@ kanban-plugin: board
## Completed
+- [ ] Сервер при сворачивании превращается в трей
- [ ] Пароли хранить и пересылать в виде Хеша
- [ ] Смена пароля админом (или инструктором только для обучаемых). Старый никому не виден (парольная политика)
- [ ] Сделать отправку сообщения на Enter
@@ -48,7 +49,6 @@ kanban-plugin: board
## Server
-- [ ] Сервер при сворачивании превращается в трей
- [ ] Отходить от идентификации по Логину в пользу ID юзера везде, где это возможно.
(Так как сейчас может вызвать проблемы при смене логина юзера!!!)
diff --git a/InstructorsAndTrainees/dialogsettings.cpp b/InstructorsAndTrainees/dialogsettings.cpp
index 006668b..20aa0e5 100644
--- a/InstructorsAndTrainees/dialogsettings.cpp
+++ b/InstructorsAndTrainees/dialogsettings.cpp
@@ -13,6 +13,7 @@ DialogSettings::DialogSettings(ConnectorToServer* connectorToServer, bool instru
flSettingsServerChanged(false)
{
ui->setupUi(this);
+
ui->btnUpdateStyle->setObjectName("btnUpdateStyle");
ui->btnSetVersion->setObjectName("btnSetVersion");
ui->btnSave->setObjectName("btnSave");
@@ -40,7 +41,6 @@ DialogSettings::DialogSettings(ConnectorToServer* connectorToServer, bool instru
/* Устанавливаем Валидатор на QLineEdit */
ui->editAddress->setValidator(ipValidator);
-
settings = new ServerSettings;
//Задаём два пункта с текстом локалей в комбобоксе
@@ -70,7 +70,6 @@ DialogSettings::DialogSettings(ConnectorToServer* connectorToServer, bool instru
ui->checkAutoStart->setVisible(false);
ui->btnSave->setEnabled(false);
- flSettingsServerChanged = false;
}
DialogSettings::~DialogSettings()
diff --git a/InstructorsAndTrainees/instructorsandtraineeswidget.cpp b/InstructorsAndTrainees/instructorsandtraineeswidget.cpp
index f696571..7f2742d 100644
--- a/InstructorsAndTrainees/instructorsandtraineeswidget.cpp
+++ b/InstructorsAndTrainees/instructorsandtraineeswidget.cpp
@@ -29,11 +29,11 @@ InstructorsAndTraineesWidget::InstructorsAndTraineesWidget(QWidget *parent) :
{
ui->setupUi(this);
+ qDebug() << "InstructorsAndTraineesWidget init thread ID " << QThread::currentThreadId();
+
ui->widget_Control->setObjectName("widgetControl");
- registerMetaType();
-
- qDebug() << "InstructorsAndTraineesWidget init thread ID " << QThread::currentThreadId();
+ registerMetaType();
updateMyStyleSheet();
diff --git a/ServerLMS/CMakeLists.txt b/ServerLMS/CMakeLists.txt
index 8fa2b59..606a643 100644
--- a/ServerLMS/CMakeLists.txt
+++ b/ServerLMS/CMakeLists.txt
@@ -7,6 +7,8 @@ add_library(ServerLMS SHARED
serverlmswidget.cpp
serverlmswidget.h
serverlmswidget.ui
+ metatypes.cpp
+ metatypes.h
dialogsettingstray.cpp
dialogsettingstray.h
dialogsettingstray.ui
diff --git a/ServerLMS/dialogsettingstray.cpp b/ServerLMS/dialogsettingstray.cpp
index f6d5f82..fe40b77 100644
--- a/ServerLMS/dialogsettingstray.cpp
+++ b/ServerLMS/dialogsettingstray.cpp
@@ -11,6 +11,24 @@ DialogSettingsTray::DialogSettingsTray(QWidget *parent) :
{
ui->setupUi(this);
+ ui->btnSave->setObjectName("btnSave");
+
+ /* Создаем строку для регулярного выражения */
+ QString ipRange = "(?:[0-1]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])";
+ /* Создаем регулярное выражение с применением строки, как
+ * повторяющегося элемента
+ */
+ QRegExp ipRegex ("^" + ipRange
+ + "\\." + ipRange
+ + "\\." + ipRange
+ + "\\." + ipRange + "$");
+ /* Создаем Валидатор регулярного выражения с применением
+ * созданного регулярного выражения
+ */
+ QRegExpValidator *ipValidator = new QRegExpValidator(ipRegex, this);
+ /* Устанавливаем Валидатор на QLineEdit */
+ ui->editHostName->setValidator(ipValidator);
+
settings = new ServerDBSettings;
//Задаём два пункта с текстом локалей в комбобоксе
@@ -23,12 +41,14 @@ DialogSettingsTray::DialogSettingsTray(QWidget *parent) :
else
ui->cmbLanguage->setCurrentText("Русский");
- //ui->editAddress->setText(settings->Address);
- //ui->editPort->setText(settings->Port);
+ ui->editNameDB->setText(settings->NameDB);
+ ui->editHostName->setText(settings->HostName);
+ ui->editPort->setText(settings->Port);
+ ui->editUserName->setText(settings->UserName);
+ ui->editPassword->setText(settings->Password);
}
ui->btnSave->setEnabled(false);
- flSettingsServerChanged = false;
}
DialogSettingsTray::~DialogSettingsTray()
@@ -66,7 +86,7 @@ bool DialogSettingsTray::loadSettings(ServerDBSettings *settings)
}
if(name == "Name"){
- settings->Name = value;
+ settings->NameDB = value;
}
if(name == "UserName"){
@@ -101,32 +121,6 @@ bool DialogSettingsTray::loadSettings(ServerDBSettings *settings)
return true;
}
-void DialogSettingsTray::on_cmbLanguage_currentTextChanged(const QString &arg1)
-{
-
-}
-
-void DialogSettingsTray::on_btnSave_clicked()
-{
- if(ui->cmbLanguage->currentText() == QStringLiteral("English"))
- {
- settings->Language = "ENG";
- }
- else
- {
- settings->Language = "RUS";
- }
-
- //settings->Address = ui->editUserName->text();
- //settings->Address = ui->editPassword->text();
- //settings->Address = ui->editHostName->text();
- //settings->Port = ui->editPort->text();
-
- saveSettings();
-
- this->accept();
-}
-
bool DialogSettingsTray::saveSettings()
{
QFile file(settingsName);
@@ -143,7 +137,7 @@ bool DialogSettingsTray::saveSettings()
xmlWriter.writeStartElement("DataBaseSettings");
xmlWriter.writeAttribute("Type", settings->Type);
- xmlWriter.writeAttribute("Name", settings->Name);
+ xmlWriter.writeAttribute("Name", settings->NameDB);
xmlWriter.writeAttribute("UserName", settings->UserName);
xmlWriter.writeAttribute("Password", settings->Password);
xmlWriter.writeAttribute("HostName", settings->HostName);
@@ -160,6 +154,28 @@ bool DialogSettingsTray::saveSettings()
return true;
}
+void DialogSettingsTray::on_btnSave_clicked()
+{
+ if(ui->cmbLanguage->currentText() == QStringLiteral("English"))
+ {
+ settings->Language = "ENG";
+ }
+ else
+ {
+ settings->Language = "RUS";
+ }
+
+ settings->NameDB = ui->editNameDB->text();
+ settings->HostName = ui->editHostName->text();
+ settings->Port = ui->editPort->text();
+ settings->UserName = ui->editUserName->text();
+ settings->Password = ui->editPassword->text();
+
+ saveSettings();
+
+ this->accept();
+}
+
void DialogSettingsTray::on_cmbLanguage_currentIndexChanged(int index)
{
ui->btnSave->setEnabled(true);
@@ -176,3 +192,33 @@ void DialogSettingsTray::on_DialogSettingsTray_accepted()
emit signal_LanguageChanged(language);
}
+
+void DialogSettingsTray::on_editNameDB_textChanged(const QString &arg1)
+{
+ ui->btnSave->setEnabled(true);
+ flSettingsServerChanged = true;
+}
+
+void DialogSettingsTray::on_editHostName_textChanged(const QString &arg1)
+{
+ ui->btnSave->setEnabled(true);
+ flSettingsServerChanged = true;
+}
+
+void DialogSettingsTray::on_editPort_textChanged(const QString &arg1)
+{
+ ui->btnSave->setEnabled(true);
+ flSettingsServerChanged = true;
+}
+
+void DialogSettingsTray::on_editUserName_textChanged(const QString &arg1)
+{
+ ui->btnSave->setEnabled(true);
+ flSettingsServerChanged = true;
+}
+
+void DialogSettingsTray::on_editPassword_textChanged(const QString &arg1)
+{
+ ui->btnSave->setEnabled(true);
+ flSettingsServerChanged = true;
+}
diff --git a/ServerLMS/dialogsettingstray.h b/ServerLMS/dialogsettingstray.h
index 7f5ddf1..b5c4371 100644
--- a/ServerLMS/dialogsettingstray.h
+++ b/ServerLMS/dialogsettingstray.h
@@ -8,7 +8,7 @@
class ServerDBSettings{
public:
QString Type;
- QString Name;
+ QString NameDB;
QString UserName;
QString Password;
QString HostName;
@@ -39,13 +39,22 @@ signals:
void signal_LanguageChanged(QString language);
private slots:
- void on_cmbLanguage_currentTextChanged(const QString &arg1);
void on_btnSave_clicked();
void on_cmbLanguage_currentIndexChanged(int index);
void on_DialogSettingsTray_accepted();
+ void on_editNameDB_textChanged(const QString &arg1);
+
+ void on_editHostName_textChanged(const QString &arg1);
+
+ void on_editPort_textChanged(const QString &arg1);
+
+ void on_editUserName_textChanged(const QString &arg1);
+
+ void on_editPassword_textChanged(const QString &arg1);
+
private:
bool saveSettings();
diff --git a/ServerLMS/dialogsettingstray.ui b/ServerLMS/dialogsettingstray.ui
index 58f2fdf..eb88158 100644
--- a/ServerLMS/dialogsettingstray.ui
+++ b/ServerLMS/dialogsettingstray.ui
@@ -7,11 +7,11 @@
0
0
400
- 300
+ 324
- Dialog
+ Settings
-
@@ -51,6 +51,139 @@
+ -
+
+
+ Data Base
+
+
+
-
+
+
-
+
+
-
+
+
+ DB name
+
+
+
+ -
+
+
+
+ 170
+ 16777215
+
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+
+
+ -
+
+
-
+
+
+ Host name
+
+
+
+ -
+
+
+
+ 170
+ 16777215
+
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+
+
+ -
+
+
-
+
+
+ Port
+
+
+
+ -
+
+
+
+ 70
+ 16777215
+
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+
+
+ -
+
+
-
+
+
+ User name
+
+
+
+ -
+
+
+
+ 170
+ 16777215
+
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+
+
+ -
+
+
-
+
+
+ Password
+
+
+
+ -
+
+
+
+ 170
+ 16777215
+
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+
+
+
+
+
+
+
-
diff --git a/ServerLMS/metatypes.cpp b/ServerLMS/metatypes.cpp
new file mode 100644
index 0000000..74a7b98
--- /dev/null
+++ b/ServerLMS/metatypes.cpp
@@ -0,0 +1,9 @@
+#include
+#include "metatypes.h"
+
+void registerMetaType()
+{
+ qRegisterMetaType("PacketType");
+ qRegisterMetaType("UserType");
+ qRegisterMetaType("LogLevel");
+}
diff --git a/ServerLMS/metatypes.h b/ServerLMS/metatypes.h
new file mode 100644
index 0000000..ef63681
--- /dev/null
+++ b/ServerLMS/metatypes.h
@@ -0,0 +1,14 @@
+#ifndef METATYPES_H
+#define METATYPES_H
+
+#include "Data/PacketType.h"
+#include "Data/typesDataServerClient.h"
+#include "Systems/logger.h"
+
+void registerMetaType();
+
+Q_DECLARE_METATYPE(PacketType)
+Q_DECLARE_METATYPE(UserType)
+Q_DECLARE_METATYPE(LogLevel)
+
+#endif // METATYPES_H
diff --git a/ServerLMS/serverlmswidget.cpp b/ServerLMS/serverlmswidget.cpp
index 8c034e0..c6d85d1 100644
--- a/ServerLMS/serverlmswidget.cpp
+++ b/ServerLMS/serverlmswidget.cpp
@@ -8,6 +8,7 @@
#include "serverlmswidget.h"
#include "dialogsettingstray.h"
#include "ui_serverlmswidget.h"
+#include "metatypes.h"
const QString ServerLMSWidget::languageENG = "en_EN";
const QString ServerLMSWidget::languageRUS = "ru_RU";
@@ -26,19 +27,21 @@ ServerLMSWidget::ServerLMSWidget(QWidget *parent) :
commonClientHandler(nullptr),
chatSystem(nullptr),
providerDBLMS(nullptr),
+ first (true),
language(languageENG),
errorCode(0)
{
ui->setupUi(this);
- mutex = new QMutex;
- qRegisterMetaType("PacketType");
- qRegisterMetaType("UserType");
- qRegisterMetaType("LogLevel");
+ qDebug() << "ServerLMSWidget init thread ID " << QThread::currentThreadId();
+
+ registerMetaType();
+
+ updateMyStyleSheet();
setLanguageInterfase();
- errorCode = 0;
+ mutex = new QMutex;
ui->btnStopServer->setEnabled(false);
ui->btnStartServer->setEnabled(true);
@@ -93,15 +96,7 @@ ServerLMSWidget::ServerLMSWidget(QWidget *parent) :
connect(&Logger::instance(),&Logger::sigLogToWidget,this, &ServerLMSWidget::addToLog,Qt::QueuedConnection);
emit sigUpdateController(commonClientHandler,dataParser,assetsManager);
- on_btnStartServer_clicked();
-
- first = true;
- qDebug() << "MAIN THREAD: " << QThread::currentThreadId();
-}
-
-void ServerLMSWidget::setError(int code)
-{
- errorCode = code;
+ on_btnStartServer_clicked();
}
ServerLMSWidget::~ServerLMSWidget()
@@ -110,7 +105,6 @@ ServerLMSWidget::~ServerLMSWidget()
updateThread->exit();
loggerThread->exit();
-
delete server;
delete commonClientHandler;
delete dataParser;
@@ -126,12 +120,16 @@ ServerLMSWidget::~ServerLMSWidget()
delete ui;
}
+void ServerLMSWidget::setError(int code)
+{
+ errorCode = code;
+}
+
QString ServerLMSWidget::getLanguage()
{
return language;
}
-
void ServerLMSWidget::slotUpdateListClients()
{
//Очищаем список
@@ -239,15 +237,19 @@ void ServerLMSWidget::on_btnSettings_clicked()
language = dlg.getSettings().Language;
if(dlg.settingsServerIsChanged())
- {
+ {//TODO Здесь нужно переподключать БД
+
//SpecialMessageBox(this, SpecialMessageBox::TypeSpecMsgBox::warningClose, tr("Server settings have been changed. Please reconnect to the server.")).exec();
- //flSettingsServerIsChanged = true;
+ providerDBLMS->deAuthorizationAll();
- //if(authorizationIsCompleted())
- //deAuthorizationInstructor(loginInstructorLoggedInLocal);
+ on_btnStopServer_clicked();
- //connectorToServer->StopConnectToServer();
+ providerDBLMS->DisConnectionFromDB();
+
+ providerDBLMS->ConnectionToDB();
+
+ //on_btnStartServer_clicked();
}
break;
@@ -279,3 +281,30 @@ void ServerLMSWidget::setLanguageInterfase()
emit signal_LanguageChanged(language);
}
+
+void ServerLMSWidget::updateMyStyleSheet()
+{
+ QString styleSheet = loadStyleSheet();
+ styleSheet = styleSheet.replace("\n", "");
+
+ this->setStyleSheet(styleSheet);
+}
+
+QString ServerLMSWidget::loadStyleSheet()
+{
+ QString fileName = "./resources/css/styleSheetMain.css";
+ QFile styleSheetFile(fileName);
+ if (!styleSheetFile.open(QFile::ReadOnly | QFile::Text))
+ {
+ QMessageBox::warning(this, tr("Warning!"), tr("The file could not be opened ") + fileName);
+ return QStringLiteral("");
+ }
+ else
+ {
+ QByteArray byteArray = styleSheetFile.readAll();
+ styleSheetFile.close();
+
+ QString style = byteArray;
+ return style;
+ }
+}
diff --git a/ServerLMS/serverlmswidget.h b/ServerLMS/serverlmswidget.h
index dbb762c..0f63ab5 100644
--- a/ServerLMS/serverlmswidget.h
+++ b/ServerLMS/serverlmswidget.h
@@ -102,6 +102,10 @@ private slots:
private:
void setLanguageInterfase();
+private:
+ void updateMyStyleSheet();
+ QString loadStyleSheet();
+
private:
Ui::ServerLMSWidget *ui;
diff --git a/ServerLMS/serverlmswidget.ui b/ServerLMS/serverlmswidget.ui
index 4a22b69..08819e2 100644
--- a/ServerLMS/serverlmswidget.ui
+++ b/ServerLMS/serverlmswidget.ui
@@ -138,48 +138,6 @@
- -
-
-
-
-
-
- Block Authorization
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 32
- 32
-
-
-
-
- 32
- 32
-
-
-
-
-
-
- :/resources/icons/open.png
-
-
- true
-
-
-
-
-
-
@@ -298,6 +256,48 @@
+ -
+
+
-
+
+
+ Authorization
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 32
+ 32
+
+
+
+
+ 32
+ 32
+
+
+
+
+
+
+ :/resources/icons/open.png
+
+
+ true
+
+
+
+
+