Сделал общую кнопку AssignTask

This commit is contained in:
krivoshein
2025-01-29 14:43:17 +03:00
parent ed75de6e04
commit c7021968d9
9 changed files with 162 additions and 27 deletions

View File

@@ -52,6 +52,13 @@ InstructorsAndTraineesWidget::InstructorsAndTraineesWidget(QWidget *parent) :
ammTasksWidget = new AMMtasksWidget(connectorToServer, AMMtasksWidget::TypeList::listCommon, this); ammTasksWidget = new AMMtasksWidget(connectorToServer, AMMtasksWidget::TypeList::listCommon, this);
fimTasksWidget = new FIMtasksWidget(connectorToServer, FIMtasksWidget::TypeList::listCommon, this); fimTasksWidget = new FIMtasksWidget(connectorToServer, FIMtasksWidget::TypeList::listCommon, this);
connect(this, &InstructorsAndTraineesWidget::signal_AssignTaskFIMtoTrainee, fimTasksWidget, &FIMtasksWidget::slot_AssignTaskFIMtoTrainee);
connect(this, &InstructorsAndTraineesWidget::signal_AssignTaskAMMtoTrainee, ammTasksWidget, &AMMtasksWidget::slot_AssignTaskAMMtoTrainee);
connect(fimTasksWidget, &FIMtasksWidget::signal_currentItemChanged, this, &InstructorsAndTraineesWidget::slot_currentItemChanged);
connect(ammTasksWidget, &AMMtasksWidget::signal_currentItemChanged, this, &InstructorsAndTraineesWidget::slot_currentItemChanged);
connect(connectorToServer, &ConnectorToServer::signal_UpdateTasksFIM, fimTasksWidget, &FIMtasksWidget::slot_NeedUpdateUI); connect(connectorToServer, &ConnectorToServer::signal_UpdateTasksFIM, fimTasksWidget, &FIMtasksWidget::slot_NeedUpdateUI);
connect(connectorToServer, &ConnectorToServer::signal_UpdateTasksAMM, ammTasksWidget, &AMMtasksWidget::slot_NeedUpdateUI); connect(connectorToServer, &ConnectorToServer::signal_UpdateTasksAMM, ammTasksWidget, &AMMtasksWidget::slot_NeedUpdateUI);
connect(viewerTrainees, &ViewerTrainees::signal_traineeSelected, fimTasksWidget, &FIMtasksWidget::slot_traineeSelected); connect(viewerTrainees, &ViewerTrainees::signal_traineeSelected, fimTasksWidget, &FIMtasksWidget::slot_traineeSelected);
@@ -97,6 +104,8 @@ InstructorsAndTraineesWidget::InstructorsAndTraineesWidget(QWidget *parent) :
//ui->btnAuthorizationInstructor->setEnabled(false); //ui->btnAuthorizationInstructor->setEnabled(false);
ui->btnAssignTask->setEnabled(false);
updateMyStyleSheet(); updateMyStyleSheet();
} }
@@ -264,6 +273,26 @@ void InstructorsAndTraineesWidget::slot_ConnectedToServer(bool state)
} }
} }
void InstructorsAndTraineesWidget::slot_currentItemChanged()
{
int index = ui->tabWidget->currentIndex();
if(index == 0)
{
if(ammTasksWidget->getAccessAssignTask())
ui->btnAssignTask->setEnabled(true);
else
ui->btnAssignTask->setEnabled(false);
}
else if(index == 1)
{
if(fimTasksWidget->getAccessAssignTask())
ui->btnAssignTask->setEnabled(true);
else
ui->btnAssignTask->setEnabled(false);
}
}
bool InstructorsAndTraineesWidget::authorizationInstructorDialog(QWidget* parent) bool InstructorsAndTraineesWidget::authorizationInstructorDialog(QWidget* parent)
{ {
DialogAuthorizationInstructor dlg(parent); DialogAuthorizationInstructor dlg(parent);
@@ -378,3 +407,31 @@ void InstructorsAndTraineesWidget::on_btnSetVersion_clicked()
{ {
connectorToServer->showVersionSelect(); connectorToServer->showVersionSelect();
} }
void InstructorsAndTraineesWidget::on_btnAssignTask_clicked()
{
int index = ui->tabWidget->currentIndex();
if(index == 0)
Q_EMIT signal_AssignTaskAMMtoTrainee();
else if(index == 1)
Q_EMIT signal_AssignTaskFIMtoTrainee();
}
void InstructorsAndTraineesWidget::on_tabWidget_currentChanged(int index)
{
if(index == 0)
{
if(ammTasksWidget->getAccessAssignTask())
ui->btnAssignTask->setEnabled(true);
else
ui->btnAssignTask->setEnabled(false);
}
else if(index == 1)
{
if(fimTasksWidget->getAccessAssignTask())
ui->btnAssignTask->setEnabled(true);
else
ui->btnAssignTask->setEnabled(false);
}
}

View File

@@ -51,6 +51,7 @@ public Q_SLOTS:
void checkDeLoginResult(ServerDeAuthorization * serverDeAuth); void checkDeLoginResult(ServerDeAuthorization * serverDeAuth);
void slot_ConnectedToServer(bool state); void slot_ConnectedToServer(bool state);
void slot_currentItemChanged();
Q_SIGNALS: Q_SIGNALS:
//сигнал об изменении языка интерфейса //сигнал об изменении языка интерфейса
@@ -60,6 +61,9 @@ Q_SIGNALS:
//сигнал о блокировке авторизации //сигнал о блокировке авторизации
void signal_BlockAutorization(bool block); void signal_BlockAutorization(bool block);
void signal_AssignTaskAMMtoTrainee();
void signal_AssignTaskFIMtoTrainee();
private Q_SLOTS: private Q_SLOTS:
void on_btnConnectionToServer_clicked(); void on_btnConnectionToServer_clicked();
void on_btnAuthorizationInstructor_clicked(); void on_btnAuthorizationInstructor_clicked();
@@ -67,6 +71,10 @@ private Q_SLOTS:
void on_btnSetVersion_clicked(); void on_btnSetVersion_clicked();
void on_btnAssignTask_clicked();
void on_tabWidget_currentChanged(int index);
private: private:
//Авторизация инструктора локальная //Авторизация инструктора локальная
bool authorizationInstructorDialog(QWidget* parent = nullptr); bool authorizationInstructorDialog(QWidget* parent = nullptr);

View File

@@ -242,7 +242,9 @@
<string>Tasks</string> <string>Tasks</string>
</property> </property>
<layout class="QGridLayout" name="gridLayout_3"> <layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0"> <item row="2" column="0">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QTabWidget" name="tabWidget"> <widget class="QTabWidget" name="tabWidget">
<property name="currentIndex"> <property name="currentIndex">
<number>1</number> <number>1</number>
@@ -269,6 +271,32 @@
</widget> </widget>
</widget> </widget>
</item> </item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QToolButton" name="btnAssignTask">
<property name="text">
<string>Assign task</string>
</property>
<property name="icon">
<iconset resource="resources.qrc">
<normaloff>:/resources/icons/assignTask.png</normaloff>:/resources/icons/assignTask.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> </layout>
</widget> </widget>
</item> </item>

View File

@@ -41,5 +41,6 @@
<file>resources/icons/procedure.png</file> <file>resources/icons/procedure.png</file>
<file>resources/icons/malfunction.png</file> <file>resources/icons/malfunction.png</file>
<file>resources/icons/762.gif</file> <file>resources/icons/762.gif</file>
<file>resources/icons/assignTask.png</file>
</qresource> </qresource>
</RCC> </RCC>

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

View File

@@ -18,7 +18,8 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, TypeList ty
threadPreparation(nullptr), threadPreparation(nullptr),
threadAnimation(nullptr), threadAnimation(nullptr),
taskTreePreparation(nullptr), taskTreePreparation(nullptr),
waitAnimationWidget(nullptr) waitAnimationWidget(nullptr),
accessAssignTask(false)
{ {
ui->setupUi(this); ui->setupUi(this);
@@ -32,6 +33,7 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, TypeList ty
preparationTreeWidget(); preparationTreeWidget();
ui->btnAssignTaskToTrainee->setEnabled(false); ui->btnAssignTaskToTrainee->setEnabled(false);
Q_EMIT signal_currentItemChanged();
ui->btnUpdateTasks->setVisible(false); ui->btnUpdateTasks->setVisible(false);
if(type == TypeList::listForTrainee) if(type == TypeList::listForTrainee)
@@ -118,6 +120,7 @@ void AMMtasksWidget::on_treeWidget_currentItemChanged(QTreeWidgetItem *current,
type = "PM"; type = "PM";
code = PMmodul->pmCode(); code = PMmodul->pmCode();
ui->btnAssignTaskToTrainee->setEnabled(false); ui->btnAssignTaskToTrainee->setEnabled(false);
accessAssignTask = false;
} }
else else
{ {
@@ -125,13 +128,18 @@ void AMMtasksWidget::on_treeWidget_currentItemChanged(QTreeWidgetItem *current,
type = "DM"; type = "DM";
code = DMmodul->dmCode(); code = DMmodul->dmCode();
ui->btnAssignTaskToTrainee->setEnabled(true); ui->btnAssignTaskToTrainee->setEnabled(true);
accessAssignTask = true;
} }
ui->label->setText(type + " Code"); ui->label->setText(type + " Code");
ui->editCode->setText(code); ui->editCode->setText(code);
} }
else else
{
ui->btnAssignTaskToTrainee->setEnabled(false); ui->btnAssignTaskToTrainee->setEnabled(false);
accessAssignTask = false;
}
Q_EMIT signal_currentItemChanged();
} }
void AMMtasksWidget::slot_NeedUpdateUI() void AMMtasksWidget::slot_NeedUpdateUI()
@@ -232,6 +240,11 @@ void AMMtasksWidget::on_btnUpdateTasks_clicked()
} }
void AMMtasksWidget::on_btnAssignTaskToTrainee_clicked() void AMMtasksWidget::on_btnAssignTaskToTrainee_clicked()
{
slot_AssignTaskAMMtoTrainee();
}
void AMMtasksWidget::slot_AssignTaskAMMtoTrainee()
{ {
QTreeWidgetItem *current = treeWidget->currentItem(); QTreeWidgetItem *current = treeWidget->currentItem();

View File

@@ -35,6 +35,7 @@ public:
loginTraineeSelected = ""; loginTraineeSelected = "";
idTraineeSelected = 0; idTraineeSelected = 0;
} }
bool getAccessAssignTask(){return accessAssignTask;}
public: public:
void resizeEvent(QResizeEvent *event) override; void resizeEvent(QResizeEvent *event) override;
@@ -43,6 +44,8 @@ private Q_SLOTS:
void on_treeWidget_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous); void on_treeWidget_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous);
void on_btnUpdateTasks_clicked(); void on_btnUpdateTasks_clicked();
void on_btnAssignTaskToTrainee_clicked(); void on_btnAssignTaskToTrainee_clicked();
public Q_SLOTS:
void slot_AssignTaskAMMtoTrainee();
public Q_SLOTS: public Q_SLOTS:
//Слот обработки сигнала необходимости обновления интерфейса //Слот обработки сигнала необходимости обновления интерфейса
@@ -52,6 +55,9 @@ public Q_SLOTS:
void slot_UpdateTasksAMMforTrainee(int trainee_id); void slot_UpdateTasksAMMforTrainee(int trainee_id);
Q_SIGNALS:
void signal_currentItemChanged();
private: private:
Module* searchModuleByID(int id); Module* searchModuleByID(int id);
void preparationTreeWidget(); void preparationTreeWidget();
@@ -79,6 +85,7 @@ private:
QThread* threadAnimation; QThread* threadAnimation;
TaskTreePreparation* taskTreePreparation; TaskTreePreparation* taskTreePreparation;
WaitAnimationWidget *waitAnimationWidget; WaitAnimationWidget *waitAnimationWidget;
bool accessAssignTask;
}; };
#endif // AMMTASKSWIDGET_H #endif // AMMTASKSWIDGET_H

View File

@@ -18,7 +18,8 @@ FIMtasksWidget::FIMtasksWidget(ConnectorToServer* connectorToServer, TypeList ty
loginTraineeSelected(""), loginTraineeSelected(""),
idTraineeSelected(0), idTraineeSelected(0),
threadAnimation(nullptr), threadAnimation(nullptr),
waitAnimationWidget(nullptr) waitAnimationWidget(nullptr),
accessAssignTask(false)
{ {
ui->setupUi(this); ui->setupUi(this);
@@ -32,6 +33,7 @@ FIMtasksWidget::FIMtasksWidget(ConnectorToServer* connectorToServer, TypeList ty
preparationTreeWidget(); preparationTreeWidget();
ui->btnAssignTaskToTrainee->setEnabled(false); ui->btnAssignTaskToTrainee->setEnabled(false);
Q_EMIT signal_currentItemChanged();
ui->btnUpdateTasks->setVisible(false); ui->btnUpdateTasks->setVisible(false);
if(type == TypeList::listForTrainee) if(type == TypeList::listForTrainee)
@@ -102,11 +104,17 @@ void FIMtasksWidget::on_treeWidget_currentItemChanged(QTreeWidgetItem *current,
code = task->title; code = task->title;
ui->btnAssignTaskToTrainee->setEnabled(true); ui->btnAssignTaskToTrainee->setEnabled(true);
accessAssignTask = true;
} }
else else
{
ui->btnAssignTaskToTrainee->setEnabled(false); ui->btnAssignTaskToTrainee->setEnabled(false);
accessAssignTask = false;
}
ui->editCode->setText(code); ui->editCode->setText(code);
Q_EMIT signal_currentItemChanged();
} }
void FIMtasksWidget::loadFIMtasksFromXML(QByteArray array) void FIMtasksWidget::loadFIMtasksFromXML(QByteArray array)
@@ -362,6 +370,11 @@ void FIMtasksWidget::on_btnUpdateTasks_clicked()
} }
void FIMtasksWidget::on_btnAssignTaskToTrainee_clicked() void FIMtasksWidget::on_btnAssignTaskToTrainee_clicked()
{
slot_AssignTaskFIMtoTrainee();
}
void FIMtasksWidget::slot_AssignTaskFIMtoTrainee()
{ {
QTreeWidgetItem *current = treeWidget->currentItem(); QTreeWidgetItem *current = treeWidget->currentItem();

View File

@@ -39,6 +39,7 @@ public:
loginTraineeSelected = ""; loginTraineeSelected = "";
idTraineeSelected = 0; idTraineeSelected = 0;
} }
bool getAccessAssignTask(){return accessAssignTask;}
public: public:
void resizeEvent(QResizeEvent *event) override; void resizeEvent(QResizeEvent *event) override;
@@ -46,8 +47,9 @@ public:
private Q_SLOTS: private Q_SLOTS:
void on_treeWidget_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous); void on_treeWidget_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous);
void on_btnUpdateTasks_clicked(); void on_btnUpdateTasks_clicked();
void on_btnAssignTaskToTrainee_clicked(); void on_btnAssignTaskToTrainee_clicked();
public Q_SLOTS:
void slot_AssignTaskFIMtoTrainee();
public Q_SLOTS: public Q_SLOTS:
//Слот обработки сигнала необходимости обновления интерфейса //Слот обработки сигнала необходимости обновления интерфейса
@@ -57,6 +59,10 @@ public Q_SLOTS:
void slot_UpdateTasksFIMforTrainee(int trainee_id); void slot_UpdateTasksFIMforTrainee(int trainee_id);
Q_SIGNALS:
void signal_currentItemChanged();
private: private:
TaskAmmFim* getTaskByID(int id); TaskAmmFim* getTaskByID(int id);
void loadFIMtasksFromXML(QByteArray array); void loadFIMtasksFromXML(QByteArray array);
@@ -86,6 +92,8 @@ private:
QThread* threadAnimation; QThread* threadAnimation;
WaitAnimationWidget *waitAnimationWidget; WaitAnimationWidget *waitAnimationWidget;
bool accessAssignTask;
}; };
#endif // FIMTASKSWIDGET_H #endif // FIMTASKSWIDGET_H