Сделал общую кнопку 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);
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_UpdateTasksAMM, ammTasksWidget, &AMMtasksWidget::slot_NeedUpdateUI);
connect(viewerTrainees, &ViewerTrainees::signal_traineeSelected, fimTasksWidget, &FIMtasksWidget::slot_traineeSelected);
@@ -97,6 +104,8 @@ InstructorsAndTraineesWidget::InstructorsAndTraineesWidget(QWidget *parent) :
//ui->btnAuthorizationInstructor->setEnabled(false);
ui->btnAssignTask->setEnabled(false);
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)
{
DialogAuthorizationInstructor dlg(parent);
@@ -378,3 +407,31 @@ void InstructorsAndTraineesWidget::on_btnSetVersion_clicked()
{
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 slot_ConnectedToServer(bool state);
void slot_currentItemChanged();
Q_SIGNALS:
//сигнал об изменении языка интерфейса
@@ -60,6 +61,9 @@ Q_SIGNALS:
//сигнал о блокировке авторизации
void signal_BlockAutorization(bool block);
void signal_AssignTaskAMMtoTrainee();
void signal_AssignTaskFIMtoTrainee();
private Q_SLOTS:
void on_btnConnectionToServer_clicked();
void on_btnAuthorizationInstructor_clicked();
@@ -67,6 +71,10 @@ private Q_SLOTS:
void on_btnSetVersion_clicked();
void on_btnAssignTask_clicked();
void on_tabWidget_currentChanged(int index);
private:
//Авторизация инструктора локальная
bool authorizationInstructorDialog(QWidget* parent = nullptr);

View File

@@ -242,32 +242,60 @@
<string>Tasks</string>
</property>
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>1</number>
</property>
<widget class="QWidget" name="tab_1">
<attribute name="title">
<string>AMM</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="0">
<layout class="QVBoxLayout" name="verticalLayout_41"/>
<item row="2" column="0">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>1</number>
</property>
<widget class="QWidget" name="tab_1">
<attribute name="title">
<string>AMM</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="0">
<layout class="QVBoxLayout" name="verticalLayout_41"/>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_2">
<attribute name="title">
<string>FIM</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_5">
<item row="0" column="0">
<layout class="QVBoxLayout" name="verticalLayout_42"/>
</item>
</layout>
</widget>
</widget>
</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>
</widget>
<widget class="QWidget" name="tab_2">
<attribute name="title">
<string>FIM</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_5">
<item row="0" column="0">
<layout class="QVBoxLayout" name="verticalLayout_42"/>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</item>
</layout>
</widget>

View File

@@ -41,5 +41,6 @@
<file>resources/icons/procedure.png</file>
<file>resources/icons/malfunction.png</file>
<file>resources/icons/762.gif</file>
<file>resources/icons/assignTask.png</file>
</qresource>
</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),
threadAnimation(nullptr),
taskTreePreparation(nullptr),
waitAnimationWidget(nullptr)
waitAnimationWidget(nullptr),
accessAssignTask(false)
{
ui->setupUi(this);
@@ -32,6 +33,7 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, TypeList ty
preparationTreeWidget();
ui->btnAssignTaskToTrainee->setEnabled(false);
Q_EMIT signal_currentItemChanged();
ui->btnUpdateTasks->setVisible(false);
if(type == TypeList::listForTrainee)
@@ -118,6 +120,7 @@ void AMMtasksWidget::on_treeWidget_currentItemChanged(QTreeWidgetItem *current,
type = "PM";
code = PMmodul->pmCode();
ui->btnAssignTaskToTrainee->setEnabled(false);
accessAssignTask = false;
}
else
{
@@ -125,13 +128,18 @@ void AMMtasksWidget::on_treeWidget_currentItemChanged(QTreeWidgetItem *current,
type = "DM";
code = DMmodul->dmCode();
ui->btnAssignTaskToTrainee->setEnabled(true);
accessAssignTask = true;
}
ui->label->setText(type + " Code");
ui->editCode->setText(code);
}
else
{
ui->btnAssignTaskToTrainee->setEnabled(false);
accessAssignTask = false;
}
Q_EMIT signal_currentItemChanged();
}
void AMMtasksWidget::slot_NeedUpdateUI()
@@ -232,6 +240,11 @@ void AMMtasksWidget::on_btnUpdateTasks_clicked()
}
void AMMtasksWidget::on_btnAssignTaskToTrainee_clicked()
{
slot_AssignTaskAMMtoTrainee();
}
void AMMtasksWidget::slot_AssignTaskAMMtoTrainee()
{
QTreeWidgetItem *current = treeWidget->currentItem();

View File

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

View File

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

View File

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