Кнопка назначения задачи в своем виджете

This commit is contained in:
2025-05-29 13:17:04 +03:00
parent 9432568ac5
commit 1b8974b0d6
9 changed files with 108 additions and 139 deletions

View File

@@ -60,13 +60,6 @@ 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);
@@ -111,8 +104,6 @@ InstructorsAndTraineesWidget::InstructorsAndTraineesWidget(QWidget *parent) :
messangerWidget->setMaximumWidth(500);
ui->btnAuthorizationInstructor->setEnabled(false);
ui->btnAssignTask->setEnabled(false);
}
InstructorsAndTraineesWidget::~InstructorsAndTraineesWidget()
@@ -287,7 +278,6 @@ void InstructorsAndTraineesWidget::slot_ConnectedToServer(bool state)
ammTasksWidget->deactivate();
fimTasksWidget->deactivate();
ui->btnAssignTask->setEnabled(false);
messangerWidget->clear();
@@ -295,26 +285,6 @@ 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);
@@ -393,7 +363,6 @@ void InstructorsAndTraineesWidget::on_btnAuthorizationInstructor_clicked()
ammTasksWidget->deactivate();
fimTasksWidget->deactivate();
ui->btnAssignTask->setEnabled(false);
messangerWidget->clear();
}
@@ -440,34 +409,6 @@ 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);
}
}
void InstructorsAndTraineesWidget::on_btnSettings_clicked()
{
DialogSettings dlg(connectorToServer, (loginInstructorLoggedInLocal != ""), this);

View File

@@ -55,7 +55,6 @@ public Q_SLOTS:
void checkDeLoginResult(ServerDeAuthorization * serverDeAuth);
void slot_ConnectedToServer(bool state);
void slot_currentItemChanged();
Q_SIGNALS:
//Слот смены языка
@@ -65,19 +64,12 @@ Q_SIGNALS:
//сигнал о блокировке авторизации
void signal_BlockAutorization(bool block);
void signal_AssignTaskAMMtoTrainee();
void signal_AssignTaskFIMtoTrainee();
private Q_SLOTS:
void on_btnConnectionToServer_clicked();
void on_btnAuthorizationInstructor_clicked();
void on_btnSetVersion_clicked();
void on_btnAssignTask_clicked();
void on_tabWidget_currentChanged(int index);
void on_btnSettings_clicked();
private:

View File

@@ -302,30 +302,6 @@
</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>
</item>
</layout>
</item>
</layout>

View File

@@ -19,7 +19,6 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, TypeList ty
threadAnimation(nullptr),
taskTreePreparation(nullptr),
waitAnimationWidget(nullptr),
accessAssignTask(false),
flOnlyActive(false)
{
ui->setupUi(this);
@@ -33,8 +32,6 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, TypeList ty
preparationTreeWidget();
Q_EMIT signal_currentItemChanged();
threadPreparation = new QThread();
taskTreePreparation = new TaskTreePreparation();
taskTreePreparation->moveToThread(threadPreparation);
@@ -57,10 +54,15 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, TypeList ty
ui->btnCheck->setObjectName("btnCheck");
ui->btnCheck->setEnabled(false);
ui->btnOnlyActive->setObjectName("btnOnlyActive");
ui->btnAssignTask->setObjectName("btnAssignTask");
ui->btnAssignTask->setEnabled(false);
if(type == TypeList::listCommon)
ui->btnDelete->setVisible(false);
else
{
ui->btnOnlyActive->setVisible(false);
ui->btnAssignTask->setVisible(false);
}
ui->btnCheck->setVisible(false);
}
@@ -85,6 +87,15 @@ AMMtasksWidget::~AMMtasksWidget()
delete ui;
}
void AMMtasksWidget::deactivate()
{
ui->btnAssignTask->setEnabled(false);
//taskTreePreparation->stopParser();
treeWidget->clear();
loginTraineeSelected = "";
idTraineeSelected = 0;
}
void AMMtasksWidget::resizeEvent(QResizeEvent *event)
{
QSize size = event->size();
@@ -151,7 +162,7 @@ void AMMtasksWidget::on_treeWidget_currentItemChanged(QTreeWidgetItem *current,
type = "PM";
code = PMmodul->pmCode();
accessAssignTask = false;
ui->btnAssignTask->setEnabled(false);
}
else
{
@@ -159,14 +170,13 @@ void AMMtasksWidget::on_treeWidget_currentItemChanged(QTreeWidgetItem *current,
type = "DM";
code = DMmodul->dmCode();
accessAssignTask = true;
ui->btnAssignTask->setEnabled(true);
}
}
else
{
accessAssignTask = false;
ui->btnAssignTask->setEnabled(false);
}
Q_EMIT signal_currentItemChanged();
}
void AMMtasksWidget::slot_NeedUpdateUI()
@@ -274,7 +284,7 @@ void AMMtasksWidget::on_btnUpdateTasks_clicked()
connectorToServer->sendQueryTasksXML("amm");
}
void AMMtasksWidget::slot_AssignTaskAMMtoTrainee()
void AMMtasksWidget::assignTaskAMMtoTrainee()
{
QTreeWidgetItem *current = treeWidget->currentItem();
@@ -346,3 +356,8 @@ void AMMtasksWidget::on_btnCheck_clicked()
{
}
void AMMtasksWidget::on_btnAssignTask_clicked()
{
assignTaskAMMtoTrainee();
}

View File

@@ -29,15 +29,7 @@ public:
~AMMtasksWidget();
public:
void deactivate()
{
accessAssignTask = false;
//taskTreePreparation->stopParser();
treeWidget->clear();
loginTraineeSelected = "";
idTraineeSelected = 0;
}
bool getAccessAssignTask(){return accessAssignTask;}
void deactivate();
public:
void resizeEvent(QResizeEvent *event) override;
@@ -54,8 +46,8 @@ private Q_SLOTS:
void on_btnCheck_clicked();
public Q_SLOTS:
void slot_AssignTaskAMMtoTrainee();
void on_btnAssignTask_clicked();
public Q_SLOTS:
//Слот обработки сигнала необходимости обновления интерфейса
@@ -65,14 +57,12 @@ public Q_SLOTS:
void slot_UpdateTasksAMMforTrainee(int trainee_id);
Q_SIGNALS:
void signal_currentItemChanged();
private:
Module* searchModuleByID(int id);
void preparationTreeWidget();
void reSetHeadTreeWidget();
void loadTasksAMM(bool flRequestFromDB = true);
void assignTaskAMMtoTrainee();
Q_SIGNALS:
void signal_prepareListItems(QByteArray array, QList<Module*>* listAllModules, bool flOnlyActive);
@@ -95,7 +85,6 @@ private:
QThread* threadAnimation;
TaskTreePreparation* taskTreePreparation;
WaitAnimationWidget *waitAnimationWidget;
bool accessAssignTask;
bool flOnlyActive;

View File

@@ -69,6 +69,32 @@
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="btnAssignTask">
<property name="minimumSize">
<size>
<width>50</width>
<height>50</height>
</size>
</property>
<property name="text">
<string>Assign</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>
<item>
<widget class="QToolButton" name="btnCheck">
<property name="minimumSize">

View File

@@ -19,8 +19,7 @@ FIMtasksWidget::FIMtasksWidget(ConnectorToServer* connectorToServer, TypeList ty
loginTraineeSelected(""),
idTraineeSelected(0),
threadAnimation(nullptr),
waitAnimationWidget(nullptr),
accessAssignTask(false)
waitAnimationWidget(nullptr)
{
ui->setupUi(this);
@@ -34,8 +33,6 @@ FIMtasksWidget::FIMtasksWidget(ConnectorToServer* connectorToServer, TypeList ty
preparationTreeWidget();
Q_EMIT signal_currentItemChanged();
threadAnimation = new QThread();
waitAnimationWidget = new WaitAnimationWidget;
QMovie *movie = new QMovie(":/resources/icons/762.gif");
@@ -48,6 +45,9 @@ FIMtasksWidget::FIMtasksWidget(ConnectorToServer* connectorToServer, TypeList ty
ui->btnDelete->setEnabled(false);
ui->btnCheck->setObjectName("btnCheck");
ui->btnCheck->setEnabled(false);
ui->btnAssignTask->setObjectName("btnAssignTask");
ui->btnAssignTask->setEnabled(false);
if(type == TypeList::listCommon)
{
ui->btnDelete->setVisible(false);
@@ -59,6 +59,11 @@ FIMtasksWidget::FIMtasksWidget(ConnectorToServer* connectorToServer, TypeList ty
ui->btnCheck->setVisible(false);
this->treeWidget->headerItem()->setHidden(true);
this->treeWidget->setSelectionMode(QAbstractItemView::SelectionMode::NoSelection);
ui->btnAssignTask->setVisible(false);
}
else
{
ui->btnAssignTask->setVisible(false);
}
}
@@ -79,6 +84,14 @@ FIMtasksWidget::~FIMtasksWidget()
delete ui;
}
void FIMtasksWidget::deactivate()
{
ui->btnAssignTask->setEnabled(false);
treeWidget->clear();
loginTraineeSelected = "";
idTraineeSelected = 0;
}
void FIMtasksWidget::setOneTaskFim(TaskAmmFim* task)
{
listTaskAmmFim.append(task);
@@ -143,7 +156,7 @@ void FIMtasksWidget::on_treeWidget_currentItemChanged(QTreeWidgetItem *current,
code = task->title;
accessAssignTask = true;
ui->btnAssignTask->setEnabled(true);
ui->btnDelete->setEnabled(true);
@@ -154,13 +167,11 @@ void FIMtasksWidget::on_treeWidget_currentItemChanged(QTreeWidgetItem *current,
}
else
{
accessAssignTask = false;
ui->btnAssignTask->setEnabled(false);
ui->btnDelete->setEnabled(false);
ui->btnCheck->setEnabled(false);
}
Q_EMIT signal_currentItemChanged();
}
void FIMtasksWidget::loadFIMtasksFromXML(QByteArray array)
@@ -459,7 +470,7 @@ void FIMtasksWidget::on_btnUpdateTasks_clicked()
connectorToServer->sendQueryTasksXML("fim");
}
void FIMtasksWidget::slot_AssignTaskFIMtoTrainee()
void FIMtasksWidget::assignTaskFIMtoTrainee()
{
QTreeWidgetItem *current = treeWidget->currentItem();
@@ -543,3 +554,8 @@ void FIMtasksWidget::on_btnCheck_clicked()
}
}
}
void FIMtasksWidget::on_btnAssignTask_clicked()
{
assignTaskFIMtoTrainee();
}

View File

@@ -35,14 +35,7 @@ public:
~FIMtasksWidget();
public:
void deactivate()
{
accessAssignTask = false;
treeWidget->clear();
loginTraineeSelected = "";
idTraineeSelected = 0;
}
bool getAccessAssignTask(){return accessAssignTask;}
void deactivate();
void setOneTaskFim(TaskAmmFim* task);
@@ -59,8 +52,7 @@ private Q_SLOTS:
void on_btnCheck_clicked();
public Q_SLOTS:
void slot_AssignTaskFIMtoTrainee();
void on_btnAssignTask_clicked();
public Q_SLOTS:
//Слот обработки сигнала необходимости обновления интерфейса
@@ -70,10 +62,6 @@ public Q_SLOTS:
void slot_UpdateTasksFIMforTrainee(int trainee_id);
Q_SIGNALS:
void signal_currentItemChanged();
private:
TaskAmmFim* getTaskByID(int id);
void loadFIMtasksFromXML(QByteArray array);
@@ -89,6 +77,8 @@ private:
void updateTaskItem(QTreeWidgetItem *itemTask);
void assignTaskFIMtoTrainee();
private:
Ui::FIMtasksWidget *ui;
ConnectorToServer* connectorToServer;
@@ -103,8 +93,6 @@ private:
QThread* threadAnimation;
WaitAnimationWidget *waitAnimationWidget;
bool accessAssignTask;
};
#endif // FIMTASKSWIDGET_H

View File

@@ -34,6 +34,32 @@
</property>
</spacer>
</item>
<item>
<widget class="QToolButton" name="btnAssignTask">
<property name="minimumSize">
<size>
<width>50</width>
<height>50</height>
</size>
</property>
<property name="text">
<string>Assign</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>
<item>
<widget class="QToolButton" name="btnCheck">
<property name="minimumSize">