diff --git a/FILES/CSS/styleSheetMain.css b/FILES/CSS/styleSheetMain.css
index d5e4990..45f7ba3 100644
--- a/FILES/CSS/styleSheetMain.css
+++ b/FILES/CSS/styleSheetMain.css
@@ -81,7 +81,7 @@ QToolButton {
height: 55px;
}
-QToolButton#btnSend, QToolButton#btnDelete, QToolButton#btnCheck, QToolButton#btnOnlyActive,
+QToolButton#btnSend, QToolButton#btnDelete, QToolButton#btnCheck, QToolButton#btnOnlyActive, QToolButton#btnStatus,
QToolButton#btnSave, QToolButton#btnUpdateStyle, QToolButton#btnSetVersion,
QToolButton#btnAssignTask, QToolButton#btnCheckDB, QToolButton#btnRepare, QToolButton#btnDocsUpdating,
QToolButton#btnAssign {
diff --git a/LibDataBaseInterface/databaselms_tasks.cpp b/LibDataBaseInterface/databaselms_tasks.cpp
index 080c201..71030b6 100644
--- a/LibDataBaseInterface/databaselms_tasks.cpp
+++ b/LibDataBaseInterface/databaselms_tasks.cpp
@@ -435,6 +435,54 @@ int DataBaseLMS::updateStatusTaskFIM(int task_id, QString status)
return 0;
}
+ if(status == "new")
+ {//Удаляем отчет
+ queryStr = QString("SELECT reports.report_id "
+ "FROM public.reports "
+ "WHERE fk_task_fim_id = %1 "
+ "ORDER BY reports.report_id ASC").arg(
+ QString::number(task_id));
+
+ int report_id = 0;
+
+ QSqlQuery queryReportsSEL = QSqlQuery(*db);
+ if(queryExec(queryStr, &queryReportsSEL))
+ {
+ if (queryReportsSEL.first())
+ {//Отчет
+ report_id = queryReportsSEL.value(0).toInt();
+ }
+ }
+ else
+ {
+ resBool = db->rollback();
+ return 0;
+ }
+
+
+ queryStr = QString("DELETE FROM public.report_items "
+ "WHERE fk_report_id = %1 ").arg(
+ QString::number(report_id));
+
+ QSqlQuery queryItemsDEL = QSqlQuery(*db);
+ if(!queryExec(queryStr, &queryItemsDEL))
+ {
+ resBool = db->rollback();
+ return 0;
+ }
+
+ queryStr = QString("DELETE FROM public.reports "
+ "WHERE report_id = %1 ").arg(
+ QString::number(report_id));
+
+ QSqlQuery queryReportsDEL = QSqlQuery(*db);
+ if(!queryExec(queryStr, &queryReportsDEL))
+ {
+ resBool = db->rollback();
+ return 0;
+ }
+ }
+
resBool = db->commit();
return id_trainee;
}
diff --git a/LibInstructorsAndTrainees/InstructorsAndTrainees.qrc b/LibInstructorsAndTrainees/InstructorsAndTrainees.qrc
index a81d934..54493e6 100644
--- a/LibInstructorsAndTrainees/InstructorsAndTrainees.qrc
+++ b/LibInstructorsAndTrainees/InstructorsAndTrainees.qrc
@@ -56,5 +56,6 @@
resources/icons/eye.png
resources/icons/exchange.png
resources/icons/link.png
+ resources/icons/new.png
diff --git a/LibInstructorsAndTrainees/messanger/messangerwidget.cpp b/LibInstructorsAndTrainees/messanger/messangerwidget.cpp
index c5504f9..1a52713 100644
--- a/LibInstructorsAndTrainees/messanger/messangerwidget.cpp
+++ b/LibInstructorsAndTrainees/messanger/messangerwidget.cpp
@@ -3,6 +3,7 @@
#include
#include
#include
+#include
#include "instructor.h"
#include "messangerwidget.h"
#include "ui_messangerwidget.h"
@@ -85,6 +86,8 @@ void MessangerWidget::addTabDialogMessenger(User user)
oneDialogMessenger = new OneDialogMessenger(userLocalGUI, userRemote, this);
+ oneDialogMessenger->setVerticalScrollMode(QAbstractItemView::ScrollMode::ScrollPerPixel);
+
ui->verticalLayout_ListMsg->addWidget(oneDialogMessenger);
//Обновляем заголовок
diff --git a/LibInstructorsAndTrainees/messanger/messangerwidget.ui b/LibInstructorsAndTrainees/messanger/messangerwidget.ui
index 4c8a2a0..c0a8ffd 100644
--- a/LibInstructorsAndTrainees/messanger/messangerwidget.ui
+++ b/LibInstructorsAndTrainees/messanger/messangerwidget.ui
@@ -85,7 +85,7 @@
- :/resources/icons/circleGray.png
+ :/resources/icons/circleGray.png
@@ -128,7 +128,7 @@
Send
-
+
:/resources/icons/sendMsg.png:/resources/icons/sendMsg.png
@@ -149,7 +149,7 @@
-
+
diff --git a/LibInstructorsAndTrainees/messanger/tabdialogmessenger.cpp b/LibInstructorsAndTrainees/messanger/tabdialogmessenger.cpp
index 2c1db93..e6ea6ca 100644
--- a/LibInstructorsAndTrainees/messanger/tabdialogmessenger.cpp
+++ b/LibInstructorsAndTrainees/messanger/tabdialogmessenger.cpp
@@ -15,6 +15,10 @@ OneDialogMessenger::OneDialogMessenger(User userLocalGUI, User userRemote, QWidg
setWordWrap(true);
setVerticalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAlwaysOn);
+
+ setVerticalScrollMode(ScrollMode::ScrollPerPixel);
+
+ verticalScrollBar()->setSingleStep(10);
}
OneDialogMessenger::~OneDialogMessenger()
diff --git a/LibInstructorsAndTrainees/resources/icons/new — копия (2).png b/LibInstructorsAndTrainees/resources/icons/new — копия (2).png
new file mode 100644
index 0000000..3504131
Binary files /dev/null and b/LibInstructorsAndTrainees/resources/icons/new — копия (2).png differ
diff --git a/LibInstructorsAndTrainees/resources/icons/new — копия.png b/LibInstructorsAndTrainees/resources/icons/new — копия.png
new file mode 100644
index 0000000..2eb82d6
Binary files /dev/null and b/LibInstructorsAndTrainees/resources/icons/new — копия.png differ
diff --git a/LibInstructorsAndTrainees/resources/icons/new.png b/LibInstructorsAndTrainees/resources/icons/new.png
new file mode 100644
index 0000000..8b621e3
Binary files /dev/null and b/LibInstructorsAndTrainees/resources/icons/new.png differ
diff --git a/LibInstructorsAndTrainees/resources/icons/personalCard.png b/LibInstructorsAndTrainees/resources/icons/personalCard.png
index 555709c..8c2819c 100644
Binary files a/LibInstructorsAndTrainees/resources/icons/personalCard.png and b/LibInstructorsAndTrainees/resources/icons/personalCard.png differ
diff --git a/LibInstructorsAndTrainees/resources/icons/sign — копия.png b/LibInstructorsAndTrainees/resources/icons/sign — копия.png
new file mode 100644
index 0000000..62aafba
Binary files /dev/null and b/LibInstructorsAndTrainees/resources/icons/sign — копия.png differ
diff --git a/LibInstructorsAndTrainees/resources/icons/sign.png b/LibInstructorsAndTrainees/resources/icons/sign.png
index 62aafba..2b1f8c4 100644
Binary files a/LibInstructorsAndTrainees/resources/icons/sign.png and b/LibInstructorsAndTrainees/resources/icons/sign.png differ
diff --git a/LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp b/LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp
index 7a820fd..9d98b34 100644
--- a/LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp
+++ b/LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp
@@ -21,7 +21,7 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, TypeListTre
threadPreparation(nullptr),
taskTreePreparation(nullptr),
waitAnimationWidget(nullptr),
- dlgCheckerTask(nullptr),
+ dlgStatusTask(nullptr),
dlgListSubProc(nullptr),
flOnlyActive(false),
lastCurrentID(0)
@@ -35,6 +35,8 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, TypeListTre
treeWidget->setObjectName("treeWidget_AMMforTrainee");
ui->horizontalLayout_Tree->addWidget(treeWidget);
+ treeWidget->setFocusPolicy(Qt::FocusPolicy::NoFocus);
+
connect(treeWidget, &QTreeWidget::itemClicked, this, &AMMtasksWidget::on_treeWidgetItemClicked);
connect(treeWidget, &QTreeWidget::itemDoubleClicked, this, &AMMtasksWidget::on_treeWidgetDoubleClicked);
@@ -63,8 +65,8 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, TypeListTre
ui->btnDelete->setObjectName("btnDelete");
ui->btnDelete->setEnabled(false);
- ui->btnCheck->setObjectName("btnCheck");
- ui->btnCheck->setEnabled(false);
+ ui->btnStatus->setObjectName("btnStatus");
+ ui->btnStatus->setEnabled(false);
ui->btnOnlyActive->setObjectName("btnOnlyActive");
ui->btnOnlyActive->setEnabled(false);
ui->btnAssignTask->setObjectName("btnAssignTask");
@@ -75,7 +77,19 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, TypeListTre
if(type == TypeListTreeAMMFIM::listCommon)
{
ui->btnDelete->setVisible(false);
- ui->btnCheck->setVisible(false);
+ ui->btnStatus->setVisible(false);
+ }
+ else if(type == TypeListTreeAMMFIM::listOneTask)
+ {
+ ui->btnDelete->setVisible(false);
+ ui->btnStatus->setVisible(false);
+ ui->btnAssignTask->setVisible(false);
+ ui->btnOnlyActive->setVisible(false);
+ ui->btnDocsUpdating->setVisible(false);
+ ui->label_DocsActualed->setVisible(false);
+ ui->label_Actual->setVisible(false);
+ this->treeWidget->headerItem()->setHidden(true);
+ this->treeWidget->setSelectionMode(QAbstractItemView::SelectionMode::NoSelection);
}
else
{
@@ -117,6 +131,13 @@ void AMMtasksWidget::deactivate()
idTraineeSelected = 0;
}
+void AMMtasksWidget::setOneTaskAmm(TaskAmmFim *task)
+{
+ QList listTask;
+ listTask.append(*task);
+ emit signal_prepareAMMListItemsForTrainee(listTask);
+}
+
void AMMtasksWidget::waitAnimationWidgetShowWithPlay()
{
waitAnimationWidget->showWithPlay();
@@ -153,8 +174,8 @@ void AMMtasksWidget::closeEvent(QCloseEvent *event)
void AMMtasksWidget::closeChildDlg()
{
- if(dlgCheckerTask)
- dlgCheckerTask->close();
+ if(dlgStatusTask)
+ dlgStatusTask->close();
if(dlgListSubProc)
dlgListSubProc->close();
}
@@ -183,7 +204,7 @@ void AMMtasksWidget::on_treeWidgetItemClicked(QTreeWidgetItem *item, int column)
if(item == nullptr)
{
ui->btnDelete->setEnabled(false);
- ui->btnCheck->setEnabled(false);
+ ui->btnStatus->setEnabled(false);
ui->btnAssignTask->setEnabled(false);
return;
}
@@ -204,14 +225,14 @@ void AMMtasksWidget::on_treeWidgetItemClicked(QTreeWidgetItem *item, int column)
lastCurrentID = id;
ui->btnDelete->setEnabled(false);
- ui->btnCheck->setEnabled(false);
+ ui->btnStatus->setEnabled(false);
}
else if(this->type == TypeListTreeAMMFIM::listForTrainee)
{
QTreeWidgetItem *treeItemParent = item->parent();
if(treeItemParent == nullptr)
{//Выбрана задача
- ui->btnCheck->setEnabled(true);
+ ui->btnStatus->setEnabled(true);
ui->btnDelete->setEnabled(true);
int id = item->text(ColumnsTreeAMM::clmnAMM_ID).toInt();
@@ -222,7 +243,7 @@ void AMMtasksWidget::on_treeWidgetItemClicked(QTreeWidgetItem *item, int column)
}
else
{
- ui->btnCheck->setEnabled(false);
+ ui->btnStatus->setEnabled(false);
ui->btnDelete->setEnabled(false);
}
ui->btnAssignTask->setEnabled(false);
@@ -282,7 +303,7 @@ void AMMtasksWidget::loadTasksAMM(bool flRequestFirst)
void AMMtasksWidget::slot_AMMlistItemsReady(QList listItems)
{
- if(type != TypeListTreeAMMFIM::listForTrainee)
+ if(type != TypeListTreeAMMFIM::listForTrainee && type != TypeListTreeAMMFIM::listOneTask)
{
//Обновление дерева
treeWidget->clear();
@@ -296,6 +317,13 @@ void AMMtasksWidget::slot_AMMlistItemsReady(QList listItems)
if(item != nullptr)
treeWidget->setCurrentItem(item);
*/
+ QTreeWidgetItem * item = treeWidget->topLevelItem(0);
+ if(item != nullptr)
+ {
+ //treeWidget->setCurrentItem(item);
+ if(type == TypeListTreeAMMFIM::listOneTask)
+ treeWidget->expandAll();
+ }
if(type == TypeListTreeAMMFIM::listForTrainee)
setCurrentTask(lastCurrentID);
@@ -363,7 +391,7 @@ void AMMtasksWidget::preparationTreeWidget()
reSetHeadTreeWidget();
- if(type == TypeListTreeAMMFIM::listCommon)
+ if(type == TypeListTreeAMMFIM::listCommon || type == TypeListTreeAMMFIM::listOneTask)
{
treeWidget->setColumnHidden(ColumnsTreeAMM::clmnAMM_ID, true);
treeWidget->setColumnHidden(ColumnsTreeAMM::clmnAMM_status, true);
@@ -515,7 +543,7 @@ void AMMtasksWidget::on_btnDelete_clicked()
}
}
-void AMMtasksWidget::on_btnCheck_clicked()
+void AMMtasksWidget::on_btnStatus_clicked()
{
QTreeWidgetItem *treeItemCurrent = treeWidget->currentItem();
@@ -529,17 +557,17 @@ void AMMtasksWidget::on_btnCheck_clicked()
if(!task.getID())
return;
- dlgCheckerTask = new DialogChekerTask(connectorToServer, "amm", this);
- dlgCheckerTask->setTask(&task);
- dlgCheckerTask->exec();
+ dlgStatusTask = new DialogChekerTask(connectorToServer, CheckerTask::TypeChecker::amm_check, this);
+ dlgStatusTask->setTask(&task);
+ dlgStatusTask->exec();
- if(dlgCheckerTask->getFlChanged())
+ if(dlgStatusTask->getFlChanged())
waitAnimationWidget->showWithPlay();
- if(dlgCheckerTask)
+ if(dlgStatusTask)
{
- delete dlgCheckerTask;
- dlgCheckerTask = nullptr;
+ delete dlgStatusTask;
+ dlgStatusTask = nullptr;
}
}
}
diff --git a/LibInstructorsAndTrainees/tasks/ammtaskswidget.h b/LibInstructorsAndTrainees/tasks/ammtaskswidget.h
index 32bba57..4cfb014 100644
--- a/LibInstructorsAndTrainees/tasks/ammtaskswidget.h
+++ b/LibInstructorsAndTrainees/tasks/ammtaskswidget.h
@@ -26,6 +26,7 @@ public:
public:
void deactivate();
+ void setOneTaskAmm(TaskAmmFim* task);
void waitAnimationWidgetShowWithPlay();
void setDocsActualed(bool flActualed);
@@ -42,7 +43,7 @@ protected:
private Q_SLOTS:
void on_treeWidgetItemClicked(QTreeWidgetItem *item, int column);
void on_btnDelete_clicked();
- void on_btnCheck_clicked();
+ void on_btnStatus_clicked();
void on_btnAssignTask_clicked();
void on_btnOnlyActive_clicked(); //AMM
@@ -99,7 +100,7 @@ private:
TaskAMMFIMTreePreparation* taskTreePreparation;
WaitAnimationWidget *waitAnimationWidget;
- DialogChekerTask* dlgCheckerTask;
+ DialogChekerTask* dlgStatusTask;
DialogListSubProc* dlgListSubProc;
diff --git a/LibInstructorsAndTrainees/tasks/ammtaskswidget.ui b/LibInstructorsAndTrainees/tasks/ammtaskswidget.ui
index a15ab3c..0f14cdc 100644
--- a/LibInstructorsAndTrainees/tasks/ammtaskswidget.ui
+++ b/LibInstructorsAndTrainees/tasks/ammtaskswidget.ui
@@ -133,7 +133,7 @@
-
-
+
50
diff --git a/LibInstructorsAndTrainees/tasks/checkertask.cpp b/LibInstructorsAndTrainees/tasks/checkertask.cpp
index a4af13e..8570cc0 100644
--- a/LibInstructorsAndTrainees/tasks/checkertask.cpp
+++ b/LibInstructorsAndTrainees/tasks/checkertask.cpp
@@ -2,42 +2,53 @@
#include "specialmessagebox.h"
#include "ui_checkertask.h"
#include "fimtaskswidget.h"
+#include "ammtaskswidget.h"
-CheckerTask::CheckerTask(ConnectorToServer* connectorToServer, QString type, QWidget *parent) :
+CheckerTask::CheckerTask(ConnectorToServer* connectorToServer, TypeChecker type, QWidget *parent) :
QWidget(parent),
ui(new Ui::CheckerTask),
connectorToServer(connectorToServer),
fimTasksWidget(nullptr),
+ ammTasksWidget(nullptr),
flChanged(false),
id_task(0),
- type("fim")
+ type(TypeChecker::fim_check)
{
ui->setupUi(this);
+ ui->btnNew->setObjectName("btnNew");
+ ui->btnCheckup->setObjectName("btnCheckup");
+ ui->btnWrong->setObjectName("btnWrong");
+ ui->btnCompleted->setObjectName("btnCompleted");
+
this->type = type;
- if(type == "fim")
+ if(type == TypeChecker::fim_check)
{
fimTasksWidget = new FIMtasksWidget(nullptr, TypeListTreeAMMFIM::listOneTask, this);
-
ui->verticalLayout_3->addWidget(fimTasksWidget);
+
ui->lblName->setVisible(false);
ui->lblDMcode->setVisible(false);
ui->plainText->setReadOnly(true);
ui->plainText->setObjectName("plainText");
}
- else
+ else if(type == TypeChecker::amm_check)
{
+ ammTasksWidget = new AMMtasksWidget(nullptr, TypeListTreeAMMFIM::listOneTask, this);
+ ui->verticalLayout_3->addWidget(ammTasksWidget);
+
+ ui->lblName->setVisible(false);
+ ui->lblDMcode->setVisible(false);
+
ui->plainText->setVisible(false);
ui->label->setVisible(false);
- //ui->label_Task->setVisible(false);
- ui->btnRight->setText(tr("Completed"));
- ui->btnWrong->setText(tr("New"));
- ui->btnWrong->setIcon(QIcon(QStringLiteral(":/resources/icons/circleGray.png")));
- ui->btnRight->setEnabled(false);
ui->btnWrong->setEnabled(false);
+ ui->btnCheckup->setEnabled(false);
+ ui->btnWrong->setVisible(false);
+ ui->btnCheckup->setVisible(false);
}
}
@@ -49,6 +60,12 @@ CheckerTask::~CheckerTask()
fimTasksWidget = nullptr;
}
+ if(ammTasksWidget)
+ {
+ delete ammTasksWidget;
+ ammTasksWidget = nullptr;
+ }
+
delete ui;
}
@@ -62,20 +79,68 @@ void CheckerTask::setTask(TaskAmmFim* task)
this->task = *task;
id_task = task->getID();
- if(type == "fim")
+ if(type == TypeChecker::fim_check)
{
//Задача
fimTasksWidget->setOneTaskFim(&this->task);
//Репорт
outReport(this->task.report);
- }
- else if(type == "amm")
- {
+
if(this->task.status == "new")
- ui->btnRight->setEnabled(true);
- else
+ {
+ ui->btnNew->setEnabled(false);
+ ui->btnCheckup->setEnabled(false);
+ ui->btnWrong->setEnabled(false);
+ ui->btnCompleted->setEnabled(false);
+
+ ui->plainText->setVisible(false);
+ ui->label->setVisible(false);
+ }
+ else if(this->task.status == "checkup")
+ {
+ ui->btnNew->setEnabled(true);
+ ui->btnCheckup->setEnabled(false);
ui->btnWrong->setEnabled(true);
+ ui->btnCompleted->setEnabled(true);
+ }
+ else if(this->task.status == "failed")
+ {
+ ui->btnNew->setEnabled(true);
+ ui->btnCheckup->setEnabled(true);
+ ui->btnWrong->setEnabled(false);
+ ui->btnCompleted->setEnabled(true);
+ }
+ else if(this->task.status == "completed")
+ {
+ ui->btnNew->setEnabled(true);
+ ui->btnCheckup->setEnabled(true);
+ ui->btnWrong->setEnabled(true);
+ ui->btnCompleted->setEnabled(false);
+ }
+ else
+ {
+ ui->btnNew->setEnabled(false);
+ ui->btnCheckup->setEnabled(false);
+ ui->btnWrong->setEnabled(false);
+ ui->btnCompleted->setEnabled(false);
+ }
+ }
+ else if(type == TypeChecker::amm_check)
+ {
+ //Задача
+ ammTasksWidget->setOneTaskAmm(&this->task);
+
+ if(this->task.status == "new")
+ {
+ ui->btnNew->setEnabled(false);
+ ui->btnCompleted->setEnabled(true);
+ }
+ else
+ {
+ ui->btnNew->setEnabled(true);
+ ui->btnCompleted->setEnabled(false);
+ }
ui->lblName->setText(task->ammProcedure.title);
ui->lblDMcode->setText(task->ammProcedure.dmCode);
@@ -100,7 +165,7 @@ void CheckerTask::setTask(TaskAmmFim* task)
else
{
ui->lblStatusCurrText->setText(tr("new"));
- ui->lblStatusCurrIco->setPixmap(QPixmap(QStringLiteral(":/resources/icons/circleGray.png")));
+ ui->lblStatusCurrIco->setPixmap(QPixmap(QStringLiteral(":/resources/icons/new.png")));
}
}
@@ -157,19 +222,70 @@ void CheckerTask::outReport(FIMReport report)
}
}
+//НЕВЕРНО
void CheckerTask::on_btnWrong_clicked()
{
TypeQueryToDB typeQuery;
QString status;
QString msgString;
- if(type == "fim")
+ if(type == TypeChecker::fim_check)
{
typeQuery = TypeQueryToDB::TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_FIM_TO_TRAINEE;
status = "failed";
msgString = tr("Change task status?\nThe status will be set:\n'failed'");
}
- else
+
+ if(SpecMsgBox::WarningYesNo(this, msgString) == QDialog::Accepted)
+ {
+ connectorToServer->sendQueryToDB(typeQuery, id_task, (void*)&status);
+ this->parentWidget()->close();
+ flChanged = true;
+ }
+}
+
+//ВЫПОЛНЕНО
+void CheckerTask::on_btnCompleted_clicked()
+{
+ TypeQueryToDB typeQuery;
+ QString status;
+ QString msgString;
+
+ if(type == TypeChecker::fim_check)
+ {
+ typeQuery = TypeQueryToDB::TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_FIM_TO_TRAINEE;
+ status = "completed";
+ msgString = tr("Change task status?\nThe status will be set:\n'completed'");
+ }
+ else if(type == TypeChecker::amm_check)
+ {
+ typeQuery = TypeQueryToDB::TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_AMM_TO_TRAINEE;
+ status = "completed";
+ msgString = tr("Change task status?\nThe status will be set:\n'completed'");
+ }
+
+ if(SpecMsgBox::WarningYesNo(this, msgString) == QDialog::Accepted)
+ {
+ connectorToServer->sendQueryToDB(typeQuery, id_task, (void*)&status);
+ this->parentWidget()->close();
+ flChanged = true;
+ }
+}
+
+//НОВАЯ
+void CheckerTask::on_btnNew_clicked()
+{
+ TypeQueryToDB typeQuery;
+ QString status;
+ QString msgString;
+
+ if(type == TypeChecker::fim_check)
+ {
+ typeQuery = TypeQueryToDB::TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_FIM_TO_TRAINEE;
+ status = "new";
+ msgString = tr("Change task status?\nThe status will be set:\n'new'");
+ }
+ else if(type == TypeChecker::amm_check)
{
typeQuery = TypeQueryToDB::TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_AMM_TO_TRAINEE;
status = "new";
@@ -184,23 +300,18 @@ void CheckerTask::on_btnWrong_clicked()
}
}
-void CheckerTask::on_btnRight_clicked()
+//НА ПРОВЕРКЕ
+void CheckerTask::on_btnCheckup_clicked()
{
TypeQueryToDB typeQuery;
QString status;
QString msgString;
- if(type == "fim")
+ if(type == TypeChecker::fim_check)
{
typeQuery = TypeQueryToDB::TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_FIM_TO_TRAINEE;
- status = "completed";
- msgString = tr("Change task status?\nThe status will be set:\n'completed'");
- }
- else
- {
- typeQuery = TypeQueryToDB::TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_AMM_TO_TRAINEE;
- status = "completed";
- msgString = tr("Change task status?\nThe status will be set:\n'completed'");
+ status = "checkup";
+ msgString = tr("Change task status?\nThe status will be set:\n'checkup'");
}
if(SpecMsgBox::WarningYesNo(this, msgString) == QDialog::Accepted)
diff --git a/LibInstructorsAndTrainees/tasks/checkertask.h b/LibInstructorsAndTrainees/tasks/checkertask.h
index 639e55c..995c468 100644
--- a/LibInstructorsAndTrainees/tasks/checkertask.h
+++ b/LibInstructorsAndTrainees/tasks/checkertask.h
@@ -13,13 +13,21 @@ class CheckerTask;
}
class FIMtasksWidget;
+class AMMtasksWidget;
class CheckerTask : public QWidget
{
Q_OBJECT
public:
- explicit CheckerTask(ConnectorToServer* connectorToServer, QString type, QWidget *parent = nullptr);
+ enum TypeChecker
+ {
+ amm_check,
+ fim_check
+ };
+
+public:
+ explicit CheckerTask(ConnectorToServer* connectorToServer, TypeChecker type, QWidget *parent = nullptr);
~CheckerTask();
void closeEvent(QCloseEvent *event) override;
@@ -33,7 +41,9 @@ public:
private slots:
void on_btnWrong_clicked();
- void on_btnRight_clicked();
+ void on_btnCompleted_clicked();
+ void on_btnNew_clicked();
+ void on_btnCheckup_clicked();
private:
void outReport(FIMReport report);
@@ -47,10 +57,11 @@ private:
private:
ConnectorToServer* connectorToServer;
FIMtasksWidget* fimTasksWidget;
+ AMMtasksWidget* ammTasksWidget;
bool flChanged;
int id_task;
- QString type;
+ TypeChecker type;
};
#endif // DIALOGCHECKTASK_H
diff --git a/LibInstructorsAndTrainees/tasks/checkertask.ui b/LibInstructorsAndTrainees/tasks/checkertask.ui
index 5d3ce90..c54b38d 100644
--- a/LibInstructorsAndTrainees/tasks/checkertask.ui
+++ b/LibInstructorsAndTrainees/tasks/checkertask.ui
@@ -53,6 +53,9 @@
:/resources/icons/rectGray.png
+
+ true
+
-
@@ -159,6 +162,58 @@
+ -
+
+
+
+ 50
+ 50
+
+
+
+ New
+
+
+
+ :/resources/icons/new.png:/resources/icons/new.png
+
+
+
+ 32
+ 32
+
+
+
+ Qt::ToolButtonTextUnderIcon
+
+
+
+ -
+
+
+
+ 50
+ 50
+
+
+
+ Checkup
+
+
+
+ :/resources/icons/circleYellow.png:/resources/icons/circleYellow.png
+
+
+
+ 32
+ 32
+
+
+
+ Qt::ToolButtonTextUnderIcon
+
+
+
-
@@ -186,7 +241,7 @@
-
-
+
50
@@ -194,7 +249,7 @@
- Right
+ Completed
diff --git a/LibInstructorsAndTrainees/tasks/dialogchekertask.cpp b/LibInstructorsAndTrainees/tasks/dialogchekertask.cpp
index 7c0ad0b..8bd62f8 100644
--- a/LibInstructorsAndTrainees/tasks/dialogchekertask.cpp
+++ b/LibInstructorsAndTrainees/tasks/dialogchekertask.cpp
@@ -1,7 +1,7 @@
#include
#include "dialogchekertask.h"
-DialogChekerTask::DialogChekerTask(ConnectorToServer* connectorToServer, QString type, QWidget *parent) :
+DialogChekerTask::DialogChekerTask(ConnectorToServer* connectorToServer, CheckerTask::TypeChecker type, QWidget *parent) :
QDialog(parent,
Qt::WindowSystemMenuHint
| Qt::WindowMaximizeButtonHint
@@ -13,17 +13,22 @@ DialogChekerTask::DialogChekerTask(ConnectorToServer* connectorToServer, QString
QHBoxLayout *layout = new QHBoxLayout(this);
layout->addWidget(checkerTask);
- this->setWindowTitle(tr("Check Task"));
- if(type == "fim")
+ switch (type)
{
+ case CheckerTask::TypeChecker::fim_check:
+ this->setWindowTitle(tr("Check Task"));
this->setMinimumSize(1400, 700);
- this->setWindowState(Qt::WindowMaximized);
- }
- else
- {
- this->setMinimumSize(400, 200);
+ //this->setWindowState(Qt::WindowMaximized);
+ break;
+ case CheckerTask::TypeChecker::amm_check:
+ this->setWindowTitle(tr("Status Task"));
+ this->setMinimumSize(1400, 500);
+ break;
+ default:
+ break;
}
+
this->setModal(true);
}
diff --git a/LibInstructorsAndTrainees/tasks/dialogchekertask.h b/LibInstructorsAndTrainees/tasks/dialogchekertask.h
index 282ffed..f5a9351 100644
--- a/LibInstructorsAndTrainees/tasks/dialogchekertask.h
+++ b/LibInstructorsAndTrainees/tasks/dialogchekertask.h
@@ -9,7 +9,7 @@ class DialogChekerTask : public QDialog
{
Q_OBJECT
public:
- DialogChekerTask(ConnectorToServer* connectorToServer, QString type, QWidget *parent = nullptr);
+ DialogChekerTask(ConnectorToServer* connectorToServer, CheckerTask::TypeChecker type, QWidget *parent = nullptr);
~DialogChekerTask();
void closeEvent(QCloseEvent *event) override;
diff --git a/LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp b/LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp
index 70e58b5..08bd9b6 100644
--- a/LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp
+++ b/LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp
@@ -32,6 +32,8 @@ FIMtasksWidget::FIMtasksWidget(ConnectorToServer* connectorToServer, TypeListTre
treeWidget = new QTreeWidget();
ui->horizontalLayout_Tree->addWidget(treeWidget);
+ treeWidget->setFocusPolicy(Qt::FocusPolicy::NoFocus);
+
//connect(treeWidget, &QTreeWidget::currentItemChanged, this, &FIMtasksWidget::on_treeWidgetCurrentItemChanged);
connect(treeWidget, &QTreeWidget::itemClicked, this, &FIMtasksWidget::on_treeWidgetItemClicked);
@@ -191,10 +193,11 @@ void FIMtasksWidget::on_treeWidgetItemClicked(QTreeWidgetItem *item, int column)
ui->btnDelete->setEnabled(true);
- if(task.status != "new")
+ ui->btnCheck->setEnabled(true);
+ /*if(task.status != "new")
ui->btnCheck->setEnabled(true);
else
- ui->btnCheck->setEnabled(false);
+ ui->btnCheck->setEnabled(false);*/
}
else
{
@@ -422,7 +425,7 @@ void FIMtasksWidget::on_btnCheck_clicked()
if(!task.getID())
return;
- dlgCheckerTask = new DialogChekerTask(connectorToServer, "fim", this);
+ dlgCheckerTask = new DialogChekerTask(connectorToServer, CheckerTask::TypeChecker::fim_check, this);
dlgCheckerTask->setTask(&task);
dlgCheckerTask->exec();
@@ -464,6 +467,7 @@ void FIMtasksWidget::setCurrentTask(int id)
if(item->text(ColumnsTreeFIM::clmnFIM_ID).toInt() == id)
{
treeWidget->setCurrentItem(item);
+ treeWidget->itemClicked(item, 0);
return;
}
}
diff --git a/LibInstructorsAndTrainees/tasks/fimtaskswidget.h b/LibInstructorsAndTrainees/tasks/fimtaskswidget.h
index 0e60bd0..7260dce 100644
--- a/LibInstructorsAndTrainees/tasks/fimtaskswidget.h
+++ b/LibInstructorsAndTrainees/tasks/fimtaskswidget.h
@@ -27,7 +27,7 @@ public:
public:
void deactivate();
- void setOneTaskFim(TaskAmmFim* task); //FIM
+ void setOneTaskFim(TaskAmmFim* task);
void waitAnimationWidgetShowWithPlay();
public:
diff --git a/LibInstructorsAndTrainees/tasks/fimtaskswidget.ui b/LibInstructorsAndTrainees/tasks/fimtaskswidget.ui
index 8a3fbed..2ccac45 100644
--- a/LibInstructorsAndTrainees/tasks/fimtaskswidget.ui
+++ b/LibInstructorsAndTrainees/tasks/fimtaskswidget.ui
@@ -54,7 +54,7 @@
Assign
-
+
:/resources/icons/assignTask.png:/resources/icons/assignTask.png
@@ -80,7 +80,7 @@
Check
-
+
:/resources/icons/check.png:/resources/icons/check.png
@@ -106,7 +106,7 @@
Delete
-
+
:/resources/icons/delete.png:/resources/icons/delete.png
@@ -129,7 +129,7 @@
-
+
diff --git a/LibInstructorsAndTrainees/tasks/listsubproc.cpp b/LibInstructorsAndTrainees/tasks/listsubproc.cpp
index e627391..4258eaf 100644
--- a/LibInstructorsAndTrainees/tasks/listsubproc.cpp
+++ b/LibInstructorsAndTrainees/tasks/listsubproc.cpp
@@ -14,6 +14,8 @@ ListSubProc::ListSubProc(QWidget *parent) :
treeWidget = new QTreeWidget();
ui->horizontalLayout_Tree->addWidget(treeWidget);
+ treeWidget->setFocusPolicy(Qt::FocusPolicy::NoFocus);
+
preparationTreeWidget();
}
diff --git a/LibInstructorsAndTrainees/tasks/listsubproc.ui b/LibInstructorsAndTrainees/tasks/listsubproc.ui
index c8a2479..7fe6668 100644
--- a/LibInstructorsAndTrainees/tasks/listsubproc.ui
+++ b/LibInstructorsAndTrainees/tasks/listsubproc.ui
@@ -72,7 +72,7 @@
Assign
-
+
:/resources/icons/circleGreen.png:/resources/icons/circleGreen.png
@@ -93,7 +93,7 @@
-
+
diff --git a/LibInstructorsAndTrainees/tasks/subprocitemwidget.ui b/LibInstructorsAndTrainees/tasks/subprocitemwidget.ui
index 827d0fb..6a045cb 100644
--- a/LibInstructorsAndTrainees/tasks/subprocitemwidget.ui
+++ b/LibInstructorsAndTrainees/tasks/subprocitemwidget.ui
@@ -43,6 +43,15 @@
QFrame::Sunken
+
+ Qt::ScrollBarAlwaysOff
+
+
+ Qt::ScrollBarAlwaysOff
+
+
+ true
+
diff --git a/LibInstructorsAndTrainees/tasks/tasktreepreparation.cpp b/LibInstructorsAndTrainees/tasks/tasktreepreparation.cpp
index 94edffe..3b425b3 100644
--- a/LibInstructorsAndTrainees/tasks/tasktreepreparation.cpp
+++ b/LibInstructorsAndTrainees/tasks/tasktreepreparation.cpp
@@ -525,13 +525,13 @@ void TaskAMMFIMTreePreparation::slot_prepareAMMListItemsForTrainee(QListsetText(ColumnsTreeAMM::clmnAMM_status, tr("new"));
- item->setIcon(ColumnsTreeAMM::clmnAMM_status, QIcon(QStringLiteral(":/resources/icons/circleGray.png")));
+ item->setIcon(ColumnsTreeAMM::clmnAMM_status, QIcon(QStringLiteral(":/resources/icons/new.png")));
}
item->setToolTip(0, text);
- if(type == TypeListTreeAMMFIM::listForTrainee)
+ if(type == TypeListTreeAMMFIM::listForTrainee || type == TypeListTreeAMMFIM::listOneTask)
{
//Подпроцедуры
if(task.listSubProc.count())
@@ -598,7 +598,7 @@ void TaskAMMFIMTreePreparation::slot_prepareFIMListItems(QByteArray array)
else
{
itemTask->setText(ColumnsTreeFIM::clmnFIM_status, tr("new"));
- itemTask->setIcon(ColumnsTreeFIM::clmnFIM_status, QIcon(QStringLiteral(":/resources/icons/circleGray.png")));
+ itemTask->setIcon(ColumnsTreeFIM::clmnFIM_status, QIcon(QStringLiteral(":/resources/icons/new.png")));
}
@@ -635,7 +635,7 @@ void TaskAMMFIMTreePreparation::slot_prepareFIMListItems(QByteArray array)
itemSign->setText(ColumnsTreeFIM::clmnFIM_Title, sign.description);
//itemSign->setFlags(itemSign->flags() | Qt::ItemIsUserCheckable);
//itemSign->setCheckState(ColumnsTreeFIM::clmnFIM_Title, Qt::Checked);
- itemSign->setIcon(ColumnsTreeFIM::clmnFIM_Title, QIcon(":/resources/icons/sign.png"));
+ itemSign->setIcon(ColumnsTreeFIM::clmnFIM_Title, QIcon(":/resources/icons/sign.png").pixmap(24, 24));
itemSign->setToolTip(ColumnsTreeFIM::clmnFIM_Title, sign.description);
itemMalfunction->addChild(itemSign);
@@ -691,7 +691,7 @@ void TaskAMMFIMTreePreparation::slot_prepareFIMListItemsForTrainee(QListsetText(ColumnsTreeFIM::clmnFIM_status, tr("new"));
- itemTask->setIcon(ColumnsTreeFIM::clmnFIM_status, QIcon(QStringLiteral(":/resources/icons/circleGray.png")));
+ itemTask->setIcon(ColumnsTreeFIM::clmnFIM_status, QIcon(QStringLiteral(":/resources/icons/new.png")));
}
diff --git a/LibServer/resources/icons/lock.png b/LibServer/resources/icons/lock.png
index e970b1e..0cd09ca 100644
Binary files a/LibServer/resources/icons/lock.png and b/LibServer/resources/icons/lock.png differ
diff --git a/LibServer/resources/icons/old/lock.png b/LibServer/resources/icons/old/lock.png
new file mode 100644
index 0000000..e970b1e
Binary files /dev/null and b/LibServer/resources/icons/old/lock.png differ
diff --git a/LibServer/resources/icons/old/stop.png b/LibServer/resources/icons/old/stop.png
new file mode 100644
index 0000000..d9122fd
Binary files /dev/null and b/LibServer/resources/icons/old/stop.png differ
diff --git a/LibServer/resources/icons/stop.png b/LibServer/resources/icons/stop.png
index d9122fd..286e53f 100644
Binary files a/LibServer/resources/icons/stop.png and b/LibServer/resources/icons/stop.png differ
diff --git a/LibServer/serverlmswidget.cpp b/LibServer/serverlmswidget.cpp
index ffcedd3..51c9c17 100644
--- a/LibServer/serverlmswidget.cpp
+++ b/LibServer/serverlmswidget.cpp
@@ -2,7 +2,6 @@
#include
#include
#include
-#include
#include
#include
#include "serverlmswidget.h"
@@ -57,6 +56,8 @@ ServerLMSWidget::ServerLMSWidget(QWidget *parent) :
waitAnimationWidget->initialize(movie,this);
waitAnimationWidget->showWithPlay();
+
+ updateStateOnlyVersion();
}
ServerLMSWidget::~ServerLMSWidget()
@@ -100,7 +101,9 @@ void ServerLMSWidget::changeEvent(QEvent *event)
{
ui->retranslateUi(this); // переведём окно заново
- updateStateServer();
+ updateStateOnlyServer();
+ updateStateOnlyDB();
+ updateStateOnlyVersion();
}
}
@@ -137,7 +140,7 @@ void ServerLMSWidget::slot_AddMessageToLog(QString message)
void ServerLMSWidget::slot_ErrorPostgreSQL(QString text)
{
emit signal_Menu_ShowWindow();
- SpecMsgBox::CriticalClose(this, tr("Error PostgreSQL!"));
+ SpecMsgBox::CriticalClose(this, tr("Error PostgreSQL!") + "\n" + text);
}
void ServerLMSWidget::slot_UpdateDocs()
@@ -161,7 +164,9 @@ void ServerLMSWidget::slot_startInitialization_step1()
flStartInitialization = true;
- updateStateServer();
+ updateStateOnlyServer();
+ updateStateOnlyDB();
+ updateStateOnlyVersion();
QApplication::restoreOverrideCursor();
@@ -177,13 +182,13 @@ void ServerLMSWidget::slot_startInitialization_step1()
void ServerLMSWidget::slot_setVersion(QString versionStr)
{
this->versionStr = versionStr;
- ui->lblVersionText->setText(versionStr);
+ Logger::instance().log("Set Version: " + versionStr);
+ updateStateOnlyVersion();
}
void ServerLMSWidget::start()
{
startInitialization_step0();
-
}
void ServerLMSWidget::slot_BlockAutorization(bool block)
@@ -191,15 +196,14 @@ void ServerLMSWidget::slot_BlockAutorization(bool block)
if(block)
{
server->blockAutorization();
- ui->lblBlockAuth->setPixmap(QPixmap(QStringLiteral(":/resources/icons/lock.png")));
- //emit signal_Tray_ShowMessage(tr("Authorization blocked!"));
+ Logger::instance().log("Autorization is blocked");
}
else
{
server->unBlockAutorization();
- ui->lblBlockAuth->setPixmap(QPixmap(QStringLiteral(":/resources/icons/open.png")));
- //emit signal_Tray_ShowMessage(tr("Authorization unblocked!"));
+ Logger::instance().log("Autorization is unblocked");
}
+ updateStateOnlyServer();
}
void ServerLMSWidget::slot_LanguageChanged(QString language)
@@ -215,28 +219,35 @@ void ServerLMSWidget::on_btnStartServer_clicked()
if(server->startServer())
{
QApplication::setOverrideCursor(Qt::WaitCursor);
- QApplication::restoreOverrideCursor();
ui->btnStartServer->setEnabled(false);
ui->btnStopServer->setEnabled(true);
slot_BlockAutorization(false);
+ updateStateOnlyServer();
+
emit signal_Tray_ShowMessage(tr("Server is started!"));
+
+ QApplication::restoreOverrideCursor();
}
- updateStateServer();
}
void ServerLMSWidget::on_btnStopServer_clicked()
{
if(server->stopServer())
{
+ QApplication::setOverrideCursor(Qt::WaitCursor);
+
ui->btnStopServer->setEnabled(false);
ui->btnStartServer->setEnabled(true);
slot_BlockAutorization(true);
+ updateStateOnlyServer();
+
emit signal_Tray_ShowMessage(tr("Server is stoped!"));
+
+ QApplication::restoreOverrideCursor();
}
- updateStateServer();
}
void ServerLMSWidget::on_btnSettings_clicked()
@@ -271,7 +282,7 @@ void ServerLMSWidget::on_btnSettings_clicked()
providerDBLMS->DisConnectionFromDB();
- updateStateServer();
+ updateStateOnlyDB();
SpecMsgBox::WarningClose(this, tr("Database settings have been changed.\nThe server will be restarted."));
@@ -292,12 +303,12 @@ void ServerLMSWidget::slot_trySetServerState(PacketType packetType)
if (packetType == PacketType::BUSY)
{
server->blockAutorization();
- updateStateServer();
+ updateStateOnlyServer();
}
else if (packetType == PacketType::FREE)
{
server->unBlockAutorization();
- updateStateServer();
+ updateStateOnlyServer();
}
}
@@ -375,41 +386,43 @@ void ServerLMSWidget::startInitialization_step0()
processingSystem = new ProcessingSystem(providerDBLMS, updateController, docsUpdater);
- dataParser = new DataParser(assetsManager,processingSystem);
+ dataParser = new DataParser(assetsManager, processingSystem);
commonClientHandler = new CommonClientHandler;
- connect(this,&ServerLMSWidget::signal_DocsChanged,commonClientHandler, &CommonClientHandler::slot_DocsChanged);
- connect(commonClientHandler,&CommonClientHandler::sigSetServerState,this,&ServerLMSWidget::slot_trySetServerState);
+ connect(this, &ServerLMSWidget::signal_DocsChanged, commonClientHandler, &CommonClientHandler::slot_DocsChanged);
+ connect(commonClientHandler, &CommonClientHandler::sigSetServerState, this, &ServerLMSWidget::slot_trySetServerState);
- server = new MultiThreadServer(this,updateController,processingSystem,dataParser,6000);
+ server = new MultiThreadServer(this, updateController, processingSystem, dataParser, 6000);
loggerThread->start();
updateThread->start();
- commonClientHandler->initialize(server->getClientsMap(),processingSystem,dataParser);
- processingSystem->initialize(server,dataParser,commonClientHandler,updateController,chatSystem);
- chatSystem->initialize(commonClientHandler,dataParser,server->getClientsMap());
+ commonClientHandler->initialize(server->getClientsMap(), processingSystem, dataParser);
+ processingSystem->initialize(server, dataParser, commonClientHandler, updateController, chatSystem);
+ chatSystem->initialize(commonClientHandler, dataParser, server->getClientsMap());
Logger::instance().moveToThread(loggerThread);
Logger::instance().setLoggingType(LoggingType::WIDGET);
Logger::instance().setLogToFile(true);
- connect(this,&ServerLMSWidget::sigUpdateControllerInitialize,updateController,&UpdateController::initialize/*,Qt::DirectConnection*/);
- connect(updateController,&UpdateController::sigInitializeFinished, this,&ServerLMSWidget::slot_startInitialization_step1/*,Qt::DirectConnection*/);
- connect(this,&ServerLMSWidget::sigCalculateFullHash,updateController,&UpdateController::calculateFullHash,Qt::AutoConnection);
- connect(updateController,&UpdateController::sigErrorRequired,this,&ServerLMSWidget::setError);
- connect(updateController,&UpdateController::sigUpdateDocs,this,&ServerLMSWidget::slot_UpdateDocs,Qt::AutoConnection);
- connect(&Logger::instance(),&Logger::sigLogToWidget,this, &ServerLMSWidget::slot_AddMessageToLog,Qt::QueuedConnection);
+ connect(this, &ServerLMSWidget::sigUpdateControllerInitialize, updateController, &UpdateController::initialize);
+ connect(updateController, &UpdateController::sigInitializeFinished, this, &ServerLMSWidget::slot_startInitialization_step1);
+ connect(this, &ServerLMSWidget::sigCalculateFullHash, updateController, &UpdateController::calculateFullHash, Qt::AutoConnection);
+ connect(updateController, &UpdateController::sigErrorRequired, this, &ServerLMSWidget::setError);
+ connect(updateController, &UpdateController::sigUpdateDocs, this, &ServerLMSWidget::slot_UpdateDocs, Qt::AutoConnection);
+ connect(&Logger::instance(), &Logger::sigLogToWidget, this, &ServerLMSWidget::slot_AddMessageToLog, Qt::QueuedConnection);
- connect(assetsManager,&AssetsManager::signal_setVersion, this, &ServerLMSWidget::slot_setVersion);
+ connect(assetsManager, &AssetsManager::signal_setVersion, this, &ServerLMSWidget::slot_setVersion);
- emit sigUpdateControllerInitialize(commonClientHandler,dataParser,assetsManager);
+ emit sigUpdateControllerInitialize(commonClientHandler, dataParser, assetsManager);
}
void ServerLMSWidget::tryConnectionToDB()
{
if(! providerDBLMS->ConnectionToDB())
{
+ Logger::instance().log("Database connection error!");
+
emit signal_Tray_ShowMessage(tr("Database connection error!"), QSystemTrayIcon::Critical);
emit signal_Menu_ShowWindow();
@@ -436,34 +449,38 @@ void ServerLMSWidget::tryConnectionToDB()
on_btnStartServer_clicked();
}
- updateStateServer();
+ updateStateOnlyDB();
}
-void ServerLMSWidget::updateStateServer()
+void ServerLMSWidget::updateStateOnlyServer()
{
if(server)
{
if(server->getStateServer() == EStateServer::started)
{
- ui->lblOnOffText->setText(tr("started"));
- ui->lblOnOff->setPixmap(QPixmap(QStringLiteral(":/resources/icons/circleGreen.png")));
+ if(server->getStateBlockAutorization() == EStateBlockAutorization::unblocked)
+ {
+ ui->lblOnOffText->setText(tr("started"));
+ ui->lblOnOff->setPixmap(QPixmap(QStringLiteral(":/resources/icons/circleGreen.png")));
+ }
+ else
+ {
+ ui->lblOnOffText->setText(tr("started") + ", " + tr("locked"));
+ ui->lblOnOff->setPixmap(QPixmap(QStringLiteral(":/resources/icons/lock.png")));
+ }
}
else
{
ui->lblOnOffText->setText(tr("stoped"));
- ui->lblOnOff->setPixmap(QPixmap(QStringLiteral(":/resources/icons/circleGray.png")));
+ ui->lblOnOff->setPixmap(QPixmap(QStringLiteral(":/resources/icons/stop.png")));
}
- if(server->getStateBlockAutorization() == EStateBlockAutorization::unblocked)
- {
- ui->lblBlockAuth->setPixmap(QPixmap(QStringLiteral(":/resources/icons/open.png")));
- }
- else
- {
- ui->lblBlockAuth->setPixmap(QPixmap(QStringLiteral(":/resources/icons/lock.png")));
- }
+ emit signal_updateStateServer(server->getStateServer(), server->getStateBlockAutorization());
}
+}
+void ServerLMSWidget::updateStateOnlyDB()
+{
if(providerDBLMS)
{
if(providerDBLMS->DBisConnected())
@@ -486,6 +503,9 @@ void ServerLMSWidget::updateStateServer()
ui->btnStartServer->setEnabled(false);
}
}
+}
+void ServerLMSWidget::updateStateOnlyVersion()
+{
ui->lblVersionText->setText(versionStr);
}
diff --git a/LibServer/serverlmswidget.h b/LibServer/serverlmswidget.h
index f6a5573..aa5a93f 100644
--- a/LibServer/serverlmswidget.h
+++ b/LibServer/serverlmswidget.h
@@ -82,11 +82,12 @@ signals:
void sigRecognize();
void sigCalculateFullHash();
void sigUpdateControllerInitialize(CommonClientHandler* commonClientHandler,DataParser *dataParser,AssetsManager *assetManager);
- QTcpSocket* sigGetSocket();
void signal_DocsChanged();
void signal_hasError(int code);
+ void signal_updateStateServer(EStateServer stateServer, EStateBlockAutorization stateBlockAutorization);
+
public slots:
void slot_LanguageChanged(QString language);
void slot_UpdateListClients();
@@ -101,6 +102,8 @@ public slots:
void slot_setVersion(QString versionStr);
+ void slot_trySetServerState(PacketType packetType);
+
public:
QString getLanguage()
{
@@ -141,8 +144,7 @@ public:
private slots:
void on_btnStartServer_clicked();
void on_btnStopServer_clicked();
- void on_btnSettings_clicked();
- void slot_trySetServerState(PacketType packetType);
+ void on_btnSettings_clicked();
private:
void setLanguageInterfase();
@@ -153,7 +155,9 @@ private:
void tryConnectionToDB();
- void updateStateServer();
+ void updateStateOnlyServer();
+ void updateStateOnlyDB();
+ void updateStateOnlyVersion();
private:
Ui::ServerLMSWidget *ui;
diff --git a/LibServer/serverlmswidget.ui b/LibServer/serverlmswidget.ui
index 24272ee..cf72489 100644
--- a/LibServer/serverlmswidget.ui
+++ b/LibServer/serverlmswidget.ui
@@ -68,7 +68,7 @@
Start
-
+
:/resources/icons/rocket.png:/resources/icons/rocket.png
@@ -109,7 +109,7 @@
Stop
-
+
:/resources/icons/stop.png:/resources/icons/stop.png
@@ -148,7 +148,7 @@
Settings
-
+
:/resources/icons/settings.png:/resources/icons/settings.png
@@ -250,7 +250,7 @@
- :/resources/icons/circleGray.png
+ :/resources/icons/circleGray.png
true
@@ -268,7 +268,7 @@
- 100
+ 200
0
@@ -305,7 +305,7 @@
- :/resources/icons/circleGray.png
+ :/resources/icons/circleGray.png
@@ -374,61 +374,6 @@
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
- -
-
-
-
-
-
- Authorization
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 32
- 32
-
-
-
-
- 32
- 32
-
-
-
-
-
-
- :/resources/icons/lock.png
-
-
- true
-
-
-
-
-
@@ -436,8 +381,8 @@
-
-
+
+
diff --git a/ProgramAWSinstructorMPS/ProgramAWSinstructorMPS.qrc b/ProgramAWSinstructorMPS/ProgramAWSinstructorMPS.qrc
index 491b03b..0b99e1b 100644
--- a/ProgramAWSinstructorMPS/ProgramAWSinstructorMPS.qrc
+++ b/ProgramAWSinstructorMPS/ProgramAWSinstructorMPS.qrc
@@ -1,6 +1,6 @@
- resources/IcoGUIRRJ.ico
resources/PngGUIRRJ.png
+ resources/IcoGUIRRJ.ico
diff --git a/ProgramServerMPS/ProgramServerMPS.qrc b/ProgramServerMPS/ProgramServerMPS.qrc
index a5f38ce..67e27b2 100644
--- a/ProgramServerMPS/ProgramServerMPS.qrc
+++ b/ProgramServerMPS/ProgramServerMPS.qrc
@@ -2,5 +2,8 @@
resources/PngServerRRJ.png
resources/IcoServerRRJ.ico
+ resources/PngServerRRJ_lock.png
+ resources/PngServerRRJ_start.png
+ resources/PngServerRRJ_stop.png
diff --git a/ProgramServerMPS/mainwindow.cpp b/ProgramServerMPS/mainwindow.cpp
index 2a661f0..9f2c547 100644
--- a/ProgramServerMPS/mainwindow.cpp
+++ b/ProgramServerMPS/mainwindow.cpp
@@ -1,4 +1,3 @@
-#include
#include
#include
#include
@@ -30,6 +29,8 @@ MainWindow::MainWindow(QWidget *parent) :
connect(serverLMSWidget, &ServerLMSWidget::signal_Menu_ShowWindow, this, &MainWindow::slot_TrayMenu_ShowWindow);
connect(serverLMSWidget, &ServerLMSWidget::signal_Menu_HideWindow, this, &MainWindow::slot_TrayMenu_HideWindow);
+ connect(serverLMSWidget, &ServerLMSWidget::signal_updateStateServer, this, &MainWindow::slot_updateStateServer);
+
qtLanguageTranslator.load(QString("translations/RRJServer_") + serverLMSWidget->getLanguage(), ".");
qApp->installTranslator(&qtLanguageTranslator);
@@ -38,7 +39,7 @@ MainWindow::MainWindow(QWidget *parent) :
* */
trayIcon = new QSystemTrayIcon(this);
//trayIcon->setIcon(this->style()->standardIcon(QStyle::SP_ComputerIcon));
- trayIcon->setIcon(QPixmap(":/resources/PngServerRRJ.png"));
+ trayIcon->setIcon(QPixmap(":/resources/PngServerRRJ_stop.png"));
/* После чего создаем контекстное меню для иконки трея*/
trayMenu = new QMenu(this);
@@ -66,7 +67,7 @@ MainWindow::MainWindow(QWidget *parent) :
slot_Tray_ShowMessage(tr("Starting the server..."));
- QTimer::singleShot(1000,this,&MainWindow::slot_LazyInitialization);
+ QTimer::singleShot(1000, this, &MainWindow::slot_LazyInitialization);
}
MainWindow::~MainWindow()
@@ -151,11 +152,6 @@ void MainWindow::slot_TrayMenu_HideWindow()
this->hide();
action_ShowWindow->setEnabled(true);
action_HideWindow->setEnabled(false);
-
- /*
- slot_Tray_ShowMessage(tr("The application is minimized to the tray.\n"
- "To maximize the application window, click the application icon in the tray."));
- */
}
void MainWindow::slot_TrayMenu_Exit()
@@ -167,9 +163,26 @@ void MainWindow::slot_TrayMenu_Exit()
void MainWindow::slot_Tray_ShowMessage(QString textMsg, QSystemTrayIcon::MessageIcon iconMsg)
{
QSystemTrayIcon::MessageIcon icon = QSystemTrayIcon::MessageIcon(iconMsg);
- trayIcon->showMessage(tr("Server MPS"),
- textMsg,
- icon, 100);
+ trayIcon->showMessage(tr("Server MPS"), textMsg, icon, 100);
+}
+
+void MainWindow::slot_updateStateServer(EStateServer stateServer, EStateBlockAutorization stateBlockAutorization)
+{
+ if(stateServer == EStateServer::started)
+ {
+ if(stateBlockAutorization == EStateBlockAutorization::unblocked)
+ {
+ trayIcon->setIcon(QPixmap(":/resources/PngServerRRJ_start.png"));
+ }
+ else
+ {
+ trayIcon->setIcon(QPixmap(":/resources/PngServerRRJ_lock.png"));
+ }
+ }
+ else
+ {
+ trayIcon->setIcon(QPixmap(":/resources/PngServerRRJ_stop.png"));
+ }
}
void MainWindow::slot_LazyInitialization()
@@ -209,7 +222,7 @@ void MainWindow::errorCheck()
slot_TrayMenu_ShowWindow();
//выключение с задержкой, так как eventLoop инициализируется позже
- QTimer::singleShot(1000,this,&MainWindow::slot_TrayMenu_Exit);
+ QTimer::singleShot(1000, this, &MainWindow::slot_TrayMenu_Exit);
}
}
diff --git a/ProgramServerMPS/mainwindow.h b/ProgramServerMPS/mainwindow.h
index 775f8a3..191d9ff 100644
--- a/ProgramServerMPS/mainwindow.h
+++ b/ProgramServerMPS/mainwindow.h
@@ -52,11 +52,14 @@ public slots:
//Слот вывода сообщения из трея
void slot_Tray_ShowMessage(QString textMsg, QSystemTrayIcon::MessageIcon iconMsg = QSystemTrayIcon::Information);
+ //Слот изменения иконки трея о статусе Сервера
+ void slot_updateStateServer(EStateServer stateServer, EStateBlockAutorization stateBlockAutorization);
//Слот отложенной инициализации
void slot_LazyInitialization();
void slot_hasError(int code);
+
private:
void exit();
void errorCheck();
diff --git a/ProgramServerMPS/resources/PngServerRRJ_lock.png b/ProgramServerMPS/resources/PngServerRRJ_lock.png
new file mode 100644
index 0000000..65dae95
Binary files /dev/null and b/ProgramServerMPS/resources/PngServerRRJ_lock.png differ
diff --git a/ProgramServerMPS/resources/PngServerRRJ_start.png b/ProgramServerMPS/resources/PngServerRRJ_start.png
new file mode 100644
index 0000000..1aa735e
Binary files /dev/null and b/ProgramServerMPS/resources/PngServerRRJ_start.png differ
diff --git a/ProgramServerMPS/resources/PngServerRRJ_stop.png b/ProgramServerMPS/resources/PngServerRRJ_stop.png
new file mode 100644
index 0000000..5521a3e
Binary files /dev/null and b/ProgramServerMPS/resources/PngServerRRJ_stop.png differ