mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-28 19:55:48 +03:00
Вынес подготовку дерева FIM в отдельный поток
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
#include "ammtaskswidget.h"
|
||||
#include "ui_ammtaskswidget.h"
|
||||
|
||||
AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, TypeList type, QWidget *parent) :
|
||||
AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, TypeListTreeAMMFIM type, QWidget *parent) :
|
||||
QWidget(parent),
|
||||
ui(new Ui::AMMtasksWidget),
|
||||
connectorToServer(connectorToServer),
|
||||
@@ -32,13 +32,13 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, TypeList ty
|
||||
preparationTreeWidget();
|
||||
|
||||
threadPreparation = new QThread();
|
||||
taskTreePreparation = new TaskTreePreparation();
|
||||
taskTreePreparation = new TaskAMMFIMTreePreparation(type);
|
||||
taskTreePreparation->moveToThread(threadPreparation);
|
||||
threadPreparation->start();
|
||||
threadPreparation->setPriority(QThread::HighestPriority);
|
||||
connect(this, &AMMtasksWidget::signal_prepareAMMListItems, taskTreePreparation, &TaskTreePreparation::slot_prepareAMMListItems);
|
||||
connect(this, &AMMtasksWidget::signal_prepareAMMListItemsForTrainee, taskTreePreparation, &TaskTreePreparation::slot_prepareAMMListItemsForTrainee);
|
||||
connect(taskTreePreparation, &TaskTreePreparation::signal_listAMMItemsReady, this, &AMMtasksWidget::slot_AMMlistItemsReady);
|
||||
connect(this, &AMMtasksWidget::signal_prepareAMMListItems, taskTreePreparation, &TaskAMMFIMTreePreparation::slot_prepareAMMListItems);
|
||||
connect(this, &AMMtasksWidget::signal_prepareAMMListItemsForTrainee, taskTreePreparation, &TaskAMMFIMTreePreparation::slot_prepareAMMListItemsForTrainee);
|
||||
connect(taskTreePreparation, &TaskAMMFIMTreePreparation::signal_listAMMItemsReady, this, &AMMtasksWidget::slot_AMMlistItemsReady);
|
||||
|
||||
waitAnimationWidget = new WaitAnimationWidget;
|
||||
QMovie *movie = new QMovie(":/resources/icons/762.gif");
|
||||
@@ -54,7 +54,7 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, TypeList ty
|
||||
ui->btnAssignTask->setObjectName("btnAssignTask");
|
||||
ui->btnAssignTask->setEnabled(false);
|
||||
|
||||
if(type == TypeList::listCommon)
|
||||
if(type == TypeListTreeAMMFIM::listCommon)
|
||||
{
|
||||
ui->horizontalLayout_3->addWidget(ui->btnAssignTask);
|
||||
ui->horizontalLayout_3->addWidget(ui->btnOnlyActive);
|
||||
@@ -85,9 +85,9 @@ AMMtasksWidget::~AMMtasksWidget()
|
||||
|
||||
delete threadPreparation;
|
||||
|
||||
delete taskTreePreparation;
|
||||
delete taskTreePreparation;
|
||||
delete waitAnimationWidget;
|
||||
delete treeWidget;
|
||||
delete treeWidget;
|
||||
|
||||
delete ui;
|
||||
}
|
||||
@@ -113,7 +113,7 @@ void AMMtasksWidget::resizeEvent(QResizeEvent *event)
|
||||
treeWidget->setColumnWidth(ColumnsTreeAMM::clmnAMM_status, 110);
|
||||
|
||||
int widthPMorDM;
|
||||
if(type == TypeList::listCommon)
|
||||
if(type == TypeListTreeAMMFIM::listCommon)
|
||||
widthPMorDM = width - (250 + 10);
|
||||
else
|
||||
widthPMorDM = width - (410 + 10);
|
||||
@@ -130,11 +130,11 @@ void AMMtasksWidget::changeEvent(QEvent *event)
|
||||
|
||||
reSetHeadTreeWidget();
|
||||
|
||||
if(type == TypeList::listCommon)
|
||||
if(type == TypeListTreeAMMFIM::listCommon)
|
||||
{
|
||||
//slot_NeedUpdateUI();
|
||||
}
|
||||
else if(type == TypeList::listForTrainee)
|
||||
else if(type == TypeListTreeAMMFIM::listForTrainee)
|
||||
if(idTraineeSelected)
|
||||
slot_UpdateTasksAMMforTrainee(idTraineeSelected);
|
||||
}
|
||||
@@ -154,7 +154,7 @@ void AMMtasksWidget::on_treeWidget_currentItemChanged(QTreeWidgetItem *current,
|
||||
|
||||
int id = current->text(ColumnsTreeAMM::clmnAMM_ID).toInt();
|
||||
|
||||
Module* module = searchModuleByID(id);
|
||||
Module* module = taskTreePreparation->getModuleAMMbyID(id);
|
||||
|
||||
if(module)
|
||||
{
|
||||
@@ -196,7 +196,7 @@ void AMMtasksWidget::slot_traineeSelected(QString login)
|
||||
loginTraineeSelected = login;
|
||||
idTraineeSelected = connectorToServer->getIdTraineeByLogin(loginTraineeSelected);
|
||||
|
||||
if(type == TypeList::listForTrainee)
|
||||
if(type == TypeListTreeAMMFIM::listForTrainee)
|
||||
{
|
||||
waitAnimationWidget->showWithPlay();
|
||||
connectorToServer->sendQueryToDB(TypeQueryToDB::TYPE_QUERY_GET_TASKS_AMM_FOR_TRAINEE, idTraineeSelected);
|
||||
@@ -206,12 +206,12 @@ void AMMtasksWidget::slot_traineeSelected(QString login)
|
||||
void AMMtasksWidget::slot_UpdateTasksAMMforTrainee(int trainee_id)
|
||||
{
|
||||
qDebug() << "slot_UpdateTasksAMMforTrainee" << QThread::currentThreadId();
|
||||
if(type == TypeList::listForTrainee)
|
||||
if(type == TypeListTreeAMMFIM::listForTrainee)
|
||||
{
|
||||
if(idTraineeSelected == trainee_id)
|
||||
{
|
||||
QList<TaskAmmFim> listTask = connectorToServer->getListTasksAMMforTrainee(trainee_id);
|
||||
signal_prepareAMMListItemsForTrainee(listTask, &listAllModules);
|
||||
signal_prepareAMMListItemsForTrainee(listTask);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -223,10 +223,12 @@ void AMMtasksWidget::loadTasksAMM(bool flRequestFromDB)
|
||||
|
||||
waitAnimationWidget->showWithPlay();
|
||||
|
||||
if(flRequestFromDB)
|
||||
/*QByteArray array*/arrayAMM = connectorToServer->getListTaskAmmArray();
|
||||
QByteArray arrayAMM;
|
||||
|
||||
emit signal_prepareAMMListItems(/*array*/arrayAMM, &listAllModules, flOnlyActive);
|
||||
if(flRequestFromDB)
|
||||
arrayAMM = connectorToServer->getListTaskAmmArray();
|
||||
|
||||
emit signal_prepareAMMListItems(arrayAMM, flOnlyActive);
|
||||
}
|
||||
|
||||
void AMMtasksWidget::slot_AMMlistItemsReady(QList<QTreeWidgetItem *> listItems)
|
||||
@@ -246,27 +248,13 @@ void AMMtasksWidget::slot_AMMlistItemsReady(QList<QTreeWidgetItem *> listItems)
|
||||
ui->btnOnlyActive->setEnabled(true);
|
||||
}
|
||||
|
||||
Module *AMMtasksWidget::searchModuleByID(int id)
|
||||
{
|
||||
Module* ptrModule = nullptr;
|
||||
|
||||
for(Module* module: listAllModules)
|
||||
{
|
||||
ptrModule = module->getModuleByID(id);
|
||||
if(ptrModule)
|
||||
return ptrModule;
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void AMMtasksWidget::preparationTreeWidget()
|
||||
{
|
||||
treeWidget->setColumnCount(clmnAMM_count);
|
||||
|
||||
reSetHeadTreeWidget();
|
||||
|
||||
if(type == TypeList::listCommon)
|
||||
if(type == TypeListTreeAMMFIM::listCommon)
|
||||
{
|
||||
treeWidget->setColumnHidden(ColumnsTreeAMM::clmnAMM_ID, true);
|
||||
treeWidget->setColumnHidden(ColumnsTreeAMM::clmnAMM_status, true);
|
||||
@@ -277,7 +265,7 @@ void AMMtasksWidget::reSetHeadTreeWidget()
|
||||
{
|
||||
QStringList listHeaders;
|
||||
|
||||
if(type == TypeList::listForTrainee)
|
||||
if(type == TypeListTreeAMMFIM::listForTrainee)
|
||||
listHeaders = QStringList{tr("Task AMM"), tr("DM code"), tr("ID"), tr("Status")};
|
||||
else
|
||||
listHeaders = QStringList{tr("PM/DM"), tr("Code"), tr("ID"), tr("Status")};
|
||||
@@ -286,11 +274,6 @@ void AMMtasksWidget::reSetHeadTreeWidget()
|
||||
treeWidget->setHeaderLabels(listHeaders);
|
||||
}
|
||||
|
||||
void AMMtasksWidget::on_btnUpdateTasks_clicked()
|
||||
{
|
||||
connectorToServer->sendQueryTasksXML("amm");
|
||||
}
|
||||
|
||||
void AMMtasksWidget::assignTaskAMMtoTrainee()
|
||||
{
|
||||
QTreeWidgetItem *current = treeWidget->currentItem();
|
||||
@@ -300,7 +283,7 @@ void AMMtasksWidget::assignTaskAMMtoTrainee()
|
||||
|
||||
int id = current->text(ColumnsTreeAMM::clmnAMM_ID).toInt();
|
||||
|
||||
Module* module = searchModuleByID(id);
|
||||
Module* module = taskTreePreparation->getModuleAMMbyID(id);
|
||||
|
||||
if(module)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user