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:
@@ -16,7 +16,6 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, TypeList ty
|
|||||||
loginTraineeSelected(""),
|
loginTraineeSelected(""),
|
||||||
idTraineeSelected(0),
|
idTraineeSelected(0),
|
||||||
threadPreparation(nullptr),
|
threadPreparation(nullptr),
|
||||||
threadAnimation(nullptr),
|
|
||||||
taskTreePreparation(nullptr),
|
taskTreePreparation(nullptr),
|
||||||
waitAnimationWidget(nullptr),
|
waitAnimationWidget(nullptr),
|
||||||
flOnlyActive(false)
|
flOnlyActive(false)
|
||||||
@@ -37,17 +36,14 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, TypeList ty
|
|||||||
taskTreePreparation->moveToThread(threadPreparation);
|
taskTreePreparation->moveToThread(threadPreparation);
|
||||||
threadPreparation->start();
|
threadPreparation->start();
|
||||||
threadPreparation->setPriority(QThread::HighestPriority);
|
threadPreparation->setPriority(QThread::HighestPriority);
|
||||||
connect(this, &AMMtasksWidget::signal_prepareListItems, taskTreePreparation, &TaskTreePreparation::slot_prepareListItems);
|
connect(this, &AMMtasksWidget::signal_prepareAMMListItems, taskTreePreparation, &TaskTreePreparation::slot_prepareAMMListItems);
|
||||||
connect(this, &AMMtasksWidget::signal_prepareListItemsForTrainee, taskTreePreparation, &TaskTreePreparation::slot_prepareListItemsForTrainee);
|
connect(this, &AMMtasksWidget::signal_prepareAMMListItemsForTrainee, taskTreePreparation, &TaskTreePreparation::slot_prepareAMMListItemsForTrainee);
|
||||||
connect(taskTreePreparation, &TaskTreePreparation::signal_listItemsReady, this, &AMMtasksWidget::slot_listItemsReady);
|
connect(taskTreePreparation, &TaskTreePreparation::signal_listAMMItemsReady, this, &AMMtasksWidget::slot_AMMlistItemsReady);
|
||||||
|
|
||||||
//threadAnimation = new QThread();
|
|
||||||
waitAnimationWidget = new WaitAnimationWidget;
|
waitAnimationWidget = new WaitAnimationWidget;
|
||||||
QMovie *movie = new QMovie(":/resources/icons/762.gif");
|
QMovie *movie = new QMovie(":/resources/icons/762.gif");
|
||||||
waitAnimationWidget->setParent(this);
|
waitAnimationWidget->setParent(this);
|
||||||
waitAnimationWidget->initialize(movie,this);
|
waitAnimationWidget->initialize(movie,this);
|
||||||
//waitAnimationWidget->moveToThread(threadAnimation);
|
|
||||||
//threadAnimation->start();
|
|
||||||
|
|
||||||
ui->btnDelete->setObjectName("btnDelete");
|
ui->btnDelete->setObjectName("btnDelete");
|
||||||
ui->btnDelete->setEnabled(false);
|
ui->btnDelete->setEnabled(false);
|
||||||
@@ -84,18 +80,15 @@ AMMtasksWidget::~AMMtasksWidget()
|
|||||||
waitAnimationWidget->hideWithStop();
|
waitAnimationWidget->hideWithStop();
|
||||||
taskTreePreparation->stopParser();
|
taskTreePreparation->stopParser();
|
||||||
|
|
||||||
//threadAnimation->quit();
|
|
||||||
//threadAnimation->wait();
|
|
||||||
|
|
||||||
threadPreparation->quit();
|
threadPreparation->quit();
|
||||||
threadPreparation->wait();
|
threadPreparation->wait();
|
||||||
|
|
||||||
//delete threadAnimation;
|
|
||||||
delete threadPreparation;
|
delete threadPreparation;
|
||||||
|
|
||||||
delete taskTreePreparation;
|
delete taskTreePreparation;
|
||||||
delete waitAnimationWidget;
|
delete waitAnimationWidget;
|
||||||
delete treeWidget;
|
delete treeWidget;
|
||||||
|
|
||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -103,7 +96,6 @@ void AMMtasksWidget::deactivate()
|
|||||||
{
|
{
|
||||||
ui->btnAssignTask->setEnabled(false);
|
ui->btnAssignTask->setEnabled(false);
|
||||||
ui->btnOnlyActive->setEnabled(false);
|
ui->btnOnlyActive->setEnabled(false);
|
||||||
//taskTreePreparation->stopParser();
|
|
||||||
treeWidget->clear();
|
treeWidget->clear();
|
||||||
loginTraineeSelected = "";
|
loginTraineeSelected = "";
|
||||||
idTraineeSelected = 0;
|
idTraineeSelected = 0;
|
||||||
@@ -116,9 +108,9 @@ void AMMtasksWidget::resizeEvent(QResizeEvent *event)
|
|||||||
|
|
||||||
int width = treeWidget->width();
|
int width = treeWidget->width();
|
||||||
|
|
||||||
treeWidget->setColumnWidth(ColumnsTree::clmn_ID, 50);
|
treeWidget->setColumnWidth(ColumnsTreeAMM::clmnAMM_ID, 50);
|
||||||
treeWidget->setColumnWidth(ColumnsTree::clmn_code, 250);
|
treeWidget->setColumnWidth(ColumnsTreeAMM::clmnAMM_code, 250);
|
||||||
treeWidget->setColumnWidth(ColumnsTree::clmn_status, 110);
|
treeWidget->setColumnWidth(ColumnsTreeAMM::clmnAMM_status, 110);
|
||||||
|
|
||||||
int widthPMorDM;
|
int widthPMorDM;
|
||||||
if(type == TypeList::listCommon)
|
if(type == TypeList::listCommon)
|
||||||
@@ -126,7 +118,7 @@ void AMMtasksWidget::resizeEvent(QResizeEvent *event)
|
|||||||
else
|
else
|
||||||
widthPMorDM = width - (410 + 10);
|
widthPMorDM = width - (410 + 10);
|
||||||
|
|
||||||
treeWidget->setColumnWidth(ColumnsTree::clmn_PMorDM, widthPMorDM);
|
treeWidget->setColumnWidth(ColumnsTreeAMM::clmnAMM_PMorDM, widthPMorDM);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AMMtasksWidget::changeEvent(QEvent *event)
|
void AMMtasksWidget::changeEvent(QEvent *event)
|
||||||
@@ -160,7 +152,7 @@ void AMMtasksWidget::on_treeWidget_currentItemChanged(QTreeWidgetItem *current,
|
|||||||
ui->btnDelete->setEnabled(true);
|
ui->btnDelete->setEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
int id = current->text(ColumnsTree::clmn_ID).toInt();
|
int id = current->text(ColumnsTreeAMM::clmnAMM_ID).toInt();
|
||||||
|
|
||||||
Module* module = searchModuleByID(id);
|
Module* module = searchModuleByID(id);
|
||||||
|
|
||||||
@@ -213,13 +205,13 @@ void AMMtasksWidget::slot_traineeSelected(QString login)
|
|||||||
|
|
||||||
void AMMtasksWidget::slot_UpdateTasksAMMforTrainee(int trainee_id)
|
void AMMtasksWidget::slot_UpdateTasksAMMforTrainee(int trainee_id)
|
||||||
{
|
{
|
||||||
|
qDebug() << "slot_UpdateTasksAMMforTrainee" << QThread::currentThreadId();
|
||||||
if(type == TypeList::listForTrainee)
|
if(type == TypeList::listForTrainee)
|
||||||
{
|
{
|
||||||
if(idTraineeSelected == trainee_id)
|
if(idTraineeSelected == trainee_id)
|
||||||
{
|
{
|
||||||
//waitAnimationWidget->showWithPlay();
|
|
||||||
QList<TaskAmmFim> listTask = connectorToServer->getListTasksAMMforTrainee(trainee_id);
|
QList<TaskAmmFim> listTask = connectorToServer->getListTasksAMMforTrainee(trainee_id);
|
||||||
signal_prepareListItemsForTrainee(listTask, &listAllModules);
|
signal_prepareAMMListItemsForTrainee(listTask, &listAllModules);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -234,10 +226,10 @@ void AMMtasksWidget::loadTasksAMM(bool flRequestFromDB)
|
|||||||
if(flRequestFromDB)
|
if(flRequestFromDB)
|
||||||
/*QByteArray array*/arrayAMM = connectorToServer->getListTaskAmmArray();
|
/*QByteArray array*/arrayAMM = connectorToServer->getListTaskAmmArray();
|
||||||
|
|
||||||
emit signal_prepareListItems(/*array*/arrayAMM, &listAllModules, flOnlyActive);
|
emit signal_prepareAMMListItems(/*array*/arrayAMM, &listAllModules, flOnlyActive);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AMMtasksWidget::slot_listItemsReady(QList<QTreeWidgetItem *> listItems)
|
void AMMtasksWidget::slot_AMMlistItemsReady(QList<QTreeWidgetItem *> listItems)
|
||||||
{
|
{
|
||||||
//Обновление дерева
|
//Обновление дерева
|
||||||
treeWidget->clear();
|
treeWidget->clear();
|
||||||
@@ -270,14 +262,14 @@ Module *AMMtasksWidget::searchModuleByID(int id)
|
|||||||
|
|
||||||
void AMMtasksWidget::preparationTreeWidget()
|
void AMMtasksWidget::preparationTreeWidget()
|
||||||
{
|
{
|
||||||
treeWidget->setColumnCount(clmn_count);
|
treeWidget->setColumnCount(clmnAMM_count);
|
||||||
|
|
||||||
reSetHeadTreeWidget();
|
reSetHeadTreeWidget();
|
||||||
|
|
||||||
if(type == TypeList::listCommon)
|
if(type == TypeList::listCommon)
|
||||||
{
|
{
|
||||||
treeWidget->setColumnHidden(ColumnsTree::clmn_ID, true);
|
treeWidget->setColumnHidden(ColumnsTreeAMM::clmnAMM_ID, true);
|
||||||
treeWidget->setColumnHidden(ColumnsTree::clmn_status, true);
|
treeWidget->setColumnHidden(ColumnsTreeAMM::clmnAMM_status, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -306,7 +298,7 @@ void AMMtasksWidget::assignTaskAMMtoTrainee()
|
|||||||
if(current == nullptr)
|
if(current == nullptr)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
int id = current->text(ColumnsTree::clmn_ID).toInt();
|
int id = current->text(ColumnsTreeAMM::clmnAMM_ID).toInt();
|
||||||
|
|
||||||
Module* module = searchModuleByID(id);
|
Module* module = searchModuleByID(id);
|
||||||
|
|
||||||
@@ -341,7 +333,7 @@ void AMMtasksWidget::on_btnDelete_clicked()
|
|||||||
if(treeItemParent == nullptr)
|
if(treeItemParent == nullptr)
|
||||||
{//Выбрана задача
|
{//Выбрана задача
|
||||||
|
|
||||||
int id = treeItemCurrent->text(ColumnsTree::clmn_ID).toInt();
|
int id = treeItemCurrent->text(ColumnsTreeAMM::clmnAMM_ID).toInt();
|
||||||
|
|
||||||
if(QMessageBox::warning(this, tr("Attention!"), tr("The deletion will be irrevocable.\nDelete it anyway?"), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok)
|
if(QMessageBox::warning(this, tr("Attention!"), tr("The deletion will be irrevocable.\nDelete it anyway?"), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok)
|
||||||
{
|
{
|
||||||
@@ -351,22 +343,6 @@ void AMMtasksWidget::on_btnDelete_clicked()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AMMtasksWidget::on_btnOnlyActive_clicked()
|
|
||||||
{
|
|
||||||
if(ui->btnOnlyActive->isChecked())
|
|
||||||
{
|
|
||||||
flOnlyActive = true;
|
|
||||||
//slot_listItemsReady(listItemsALL, listItemsACTIVE);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
flOnlyActive = false;
|
|
||||||
//slot_listItemsReady(listItemsALL, listItemsACTIVE);
|
|
||||||
}
|
|
||||||
//connectorToServer->sendQueryTasksXML("amm");
|
|
||||||
loadTasksAMM(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
void AMMtasksWidget::on_btnCheck_clicked()
|
void AMMtasksWidget::on_btnCheck_clicked()
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -377,3 +353,16 @@ void AMMtasksWidget::on_btnAssignTask_clicked()
|
|||||||
if(QMessageBox::question(this, tr("New task"), tr("Assign this task?"), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok)
|
if(QMessageBox::question(this, tr("New task"), tr("Assign this task?"), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok)
|
||||||
assignTaskAMMtoTrainee();
|
assignTaskAMMtoTrainee();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AMMtasksWidget::on_btnOnlyActive_clicked()
|
||||||
|
{
|
||||||
|
if(ui->btnOnlyActive->isChecked())
|
||||||
|
{
|
||||||
|
flOnlyActive = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
flOnlyActive = false;
|
||||||
|
}
|
||||||
|
loadTasksAMM(false);
|
||||||
|
}
|
||||||
|
|||||||
@@ -39,14 +39,10 @@ protected:
|
|||||||
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_btnDelete_clicked();
|
void on_btnDelete_clicked();
|
||||||
|
|
||||||
void on_btnOnlyActive_clicked();
|
|
||||||
|
|
||||||
void on_btnCheck_clicked();
|
void on_btnCheck_clicked();
|
||||||
|
|
||||||
void on_btnAssignTask_clicked();
|
void on_btnAssignTask_clicked();
|
||||||
|
void on_btnOnlyActive_clicked(); //AMM
|
||||||
|
|
||||||
|
|
||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
@@ -65,10 +61,10 @@ private:
|
|||||||
void assignTaskAMMtoTrainee();
|
void assignTaskAMMtoTrainee();
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void signal_prepareListItems(QByteArray array, QList<Module*>* listAllModules, bool flOnlyActive);
|
void signal_prepareAMMListItems(QByteArray array, QList<Module*>* listAllModules, bool flOnlyActive);
|
||||||
void signal_prepareListItemsForTrainee(QList<TaskAmmFim> listTask, QList<Module*>* listAllModules);
|
void signal_prepareAMMListItemsForTrainee(QList<TaskAmmFim> listTask, QList<Module*>* listAllModules);
|
||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
void slot_listItemsReady(QList<QTreeWidgetItem*> listItems);
|
void slot_AMMlistItemsReady(QList<QTreeWidgetItem*> listItems);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::AMMtasksWidget *ui;
|
Ui::AMMtasksWidget *ui;
|
||||||
@@ -82,13 +78,12 @@ private:
|
|||||||
int idTraineeSelected;
|
int idTraineeSelected;
|
||||||
|
|
||||||
QThread* threadPreparation;
|
QThread* threadPreparation;
|
||||||
QThread* threadAnimation;
|
|
||||||
TaskTreePreparation* taskTreePreparation;
|
TaskTreePreparation* taskTreePreparation;
|
||||||
WaitAnimationWidget *waitAnimationWidget;
|
WaitAnimationWidget *waitAnimationWidget;
|
||||||
|
|
||||||
bool flOnlyActive;
|
bool flOnlyActive; //AMM
|
||||||
|
|
||||||
QByteArray arrayAMM;
|
QByteArray arrayAMM; //AMM
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // AMMTASKSWIDGET_H
|
#endif // AMMTASKSWIDGET_H
|
||||||
|
|||||||
@@ -15,11 +15,12 @@ FIMtasksWidget::FIMtasksWidget(ConnectorToServer* connectorToServer, TypeList ty
|
|||||||
connectorToServer(connectorToServer),
|
connectorToServer(connectorToServer),
|
||||||
treeWidget(nullptr),
|
treeWidget(nullptr),
|
||||||
type(type),
|
type(type),
|
||||||
userName(""),
|
|
||||||
loginTraineeSelected(""),
|
loginTraineeSelected(""),
|
||||||
idTraineeSelected(0),
|
idTraineeSelected(0),
|
||||||
threadAnimation(nullptr),
|
threadPreparation(nullptr),
|
||||||
waitAnimationWidget(nullptr)
|
taskTreePreparation(nullptr),
|
||||||
|
waitAnimationWidget(nullptr),
|
||||||
|
userName("")
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
@@ -27,19 +28,24 @@ FIMtasksWidget::FIMtasksWidget(ConnectorToServer* connectorToServer, TypeList ty
|
|||||||
|
|
||||||
treeWidget = new QTreeWidget();
|
treeWidget = new QTreeWidget();
|
||||||
ui->horizontalLayout_1->addWidget(treeWidget);
|
ui->horizontalLayout_1->addWidget(treeWidget);
|
||||||
//treeWidget->setMinimumSize(400, 400);
|
|
||||||
|
|
||||||
connect(treeWidget, &QTreeWidget::currentItemChanged, this, &FIMtasksWidget::on_treeWidget_currentItemChanged);
|
connect(treeWidget, &QTreeWidget::currentItemChanged, this, &FIMtasksWidget::on_treeWidget_currentItemChanged);
|
||||||
|
|
||||||
preparationTreeWidget();
|
preparationTreeWidget();
|
||||||
|
|
||||||
//threadAnimation = new QThread();
|
threadPreparation = new QThread();
|
||||||
|
taskTreePreparation = new TaskTreePreparation();
|
||||||
|
taskTreePreparation->moveToThread(threadPreparation);
|
||||||
|
threadPreparation->start();
|
||||||
|
threadPreparation->setPriority(QThread::HighestPriority);
|
||||||
|
connect(this, &FIMtasksWidget::signal_prepareFIMListItems, taskTreePreparation, &TaskTreePreparation::slot_prepareFIMListItems);
|
||||||
|
connect(this, &FIMtasksWidget::signal_prepareFIMListItemsForTrainee, taskTreePreparation, &TaskTreePreparation::slot_prepareFIMListItemsForTrainee);
|
||||||
|
connect(taskTreePreparation, &TaskTreePreparation::signal_listFIMItemsReady, this, &FIMtasksWidget::slot_FIMlistItemsReady);
|
||||||
|
|
||||||
waitAnimationWidget = new WaitAnimationWidget;
|
waitAnimationWidget = new WaitAnimationWidget;
|
||||||
QMovie *movie = new QMovie(":/resources/icons/762.gif");
|
QMovie *movie = new QMovie(":/resources/icons/762.gif");
|
||||||
waitAnimationWidget->setParent(this);
|
waitAnimationWidget->setParent(this);
|
||||||
waitAnimationWidget->initialize(movie,this);
|
waitAnimationWidget->initialize(movie,this);
|
||||||
//waitAnimationWidget->moveToThread(threadAnimation);
|
|
||||||
//threadAnimation->start();
|
|
||||||
|
|
||||||
ui->btnDelete->setObjectName("btnDelete");
|
ui->btnDelete->setObjectName("btnDelete");
|
||||||
ui->btnDelete->setEnabled(false);
|
ui->btnDelete->setEnabled(false);
|
||||||
@@ -62,9 +68,9 @@ FIMtasksWidget::FIMtasksWidget(ConnectorToServer* connectorToServer, TypeList ty
|
|||||||
{
|
{
|
||||||
ui->btnDelete->setVisible(false);
|
ui->btnDelete->setVisible(false);
|
||||||
ui->btnCheck->setVisible(false);
|
ui->btnCheck->setVisible(false);
|
||||||
|
ui->btnAssignTask->setVisible(false);
|
||||||
this->treeWidget->headerItem()->setHidden(true);
|
this->treeWidget->headerItem()->setHidden(true);
|
||||||
this->treeWidget->setSelectionMode(QAbstractItemView::SelectionMode::NoSelection);
|
this->treeWidget->setSelectionMode(QAbstractItemView::SelectionMode::NoSelection);
|
||||||
ui->btnAssignTask->setVisible(false);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -76,15 +82,17 @@ FIMtasksWidget::FIMtasksWidget(ConnectorToServer* connectorToServer, TypeList ty
|
|||||||
|
|
||||||
FIMtasksWidget::~FIMtasksWidget()
|
FIMtasksWidget::~FIMtasksWidget()
|
||||||
{
|
{
|
||||||
deleteAllTaskAmmFim();
|
//deleteAllTaskAmmFim(); //TODO
|
||||||
|
|
||||||
waitAnimationWidget->hideWithStop();
|
waitAnimationWidget->hideWithStop();
|
||||||
|
taskTreePreparation->stopParser();
|
||||||
|
|
||||||
//threadAnimation->quit();
|
threadPreparation->quit();
|
||||||
//threadAnimation->wait();
|
threadPreparation->wait();
|
||||||
|
|
||||||
//delete threadAnimation;
|
delete threadPreparation;
|
||||||
|
|
||||||
|
delete taskTreePreparation;
|
||||||
delete waitAnimationWidget;
|
delete waitAnimationWidget;
|
||||||
delete treeWidget;
|
delete treeWidget;
|
||||||
|
|
||||||
@@ -102,7 +110,8 @@ void FIMtasksWidget::deactivate()
|
|||||||
void FIMtasksWidget::setOneTaskFim(TaskAmmFim* task)
|
void FIMtasksWidget::setOneTaskFim(TaskAmmFim* task)
|
||||||
{
|
{
|
||||||
listTaskAmmFim.append(task);
|
listTaskAmmFim.append(task);
|
||||||
fillTree();
|
//fillTree();
|
||||||
|
//TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
void FIMtasksWidget::resizeEvent(QResizeEvent *event)
|
void FIMtasksWidget::resizeEvent(QResizeEvent *event)
|
||||||
@@ -112,8 +121,8 @@ void FIMtasksWidget::resizeEvent(QResizeEvent *event)
|
|||||||
|
|
||||||
int width = treeWidget->width();
|
int width = treeWidget->width();
|
||||||
|
|
||||||
treeWidget->setColumnWidth(ColumnsTree::clmn_ID, 50);
|
treeWidget->setColumnWidth(ColumnsTreeFIM::clmnFIM_ID, 50);
|
||||||
treeWidget->setColumnWidth(ColumnsTree::clmn_status, 110);
|
treeWidget->setColumnWidth(ColumnsTreeFIM::clmnFIM_status, 110);
|
||||||
|
|
||||||
int widthTitle;
|
int widthTitle;
|
||||||
if(type == TypeList::listCommon)
|
if(type == TypeList::listCommon)
|
||||||
@@ -121,7 +130,7 @@ void FIMtasksWidget::resizeEvent(QResizeEvent *event)
|
|||||||
else
|
else
|
||||||
widthTitle = width - (160 + 10);
|
widthTitle = width - (160 + 10);
|
||||||
|
|
||||||
treeWidget->setColumnWidth(ColumnsTree::clmn_Title, widthTitle);
|
treeWidget->setColumnWidth(ColumnsTreeFIM::clmnFIM_Title, widthTitle);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FIMtasksWidget::changeEvent(QEvent *event)
|
void FIMtasksWidget::changeEvent(QEvent *event)
|
||||||
@@ -139,7 +148,8 @@ void FIMtasksWidget::changeEvent(QEvent *event)
|
|||||||
}
|
}
|
||||||
else if(type == TypeList::listForTrainee)
|
else if(type == TypeList::listForTrainee)
|
||||||
if(idTraineeSelected)
|
if(idTraineeSelected)
|
||||||
fillTree();
|
slot_UpdateTasksFIMforTrainee(idTraineeSelected);
|
||||||
|
//fillTree();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -157,7 +167,7 @@ void FIMtasksWidget::on_treeWidget_currentItemChanged(QTreeWidgetItem *current,
|
|||||||
QTreeWidgetItem *treeItemParent = current->parent();
|
QTreeWidgetItem *treeItemParent = current->parent();
|
||||||
if(treeItemParent == nullptr)
|
if(treeItemParent == nullptr)
|
||||||
{//Выбрана задача
|
{//Выбрана задача
|
||||||
int id = current->text(ColumnsTree::clmn_ID).toInt();
|
int id = current->text(ColumnsTreeFIM::clmnFIM_ID).toInt();
|
||||||
|
|
||||||
TaskAmmFim* task = getTaskByID(id);
|
TaskAmmFim* task = getTaskByID(id);
|
||||||
|
|
||||||
@@ -181,86 +191,7 @@ void FIMtasksWidget::on_treeWidget_currentItemChanged(QTreeWidgetItem *current,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void FIMtasksWidget::loadFIMtasksFromXML(QByteArray array)
|
#ifdef OLD_FILL
|
||||||
{
|
|
||||||
deleteAllTaskAmmFim();
|
|
||||||
|
|
||||||
QDomDocument docTasksDOM;
|
|
||||||
|
|
||||||
docTasksDOM.setContent(array);
|
|
||||||
|
|
||||||
QDomElement RRJTasksElement = docTasksDOM.firstChildElement("RRJTasks");
|
|
||||||
if(RRJTasksElement.isNull())
|
|
||||||
return;
|
|
||||||
|
|
||||||
QDomElement taskElement = RRJTasksElement.firstChildElement();
|
|
||||||
if(taskElement.isNull())
|
|
||||||
return;
|
|
||||||
|
|
||||||
do
|
|
||||||
{/*task*/
|
|
||||||
QString name = taskElement.nodeName();
|
|
||||||
QDomNamedNodeMap nodeMap = taskElement.attributes();
|
|
||||||
|
|
||||||
if(name == "task")
|
|
||||||
{
|
|
||||||
TaskAmmFim* task = nullptr;
|
|
||||||
task = new TaskAmmFim();
|
|
||||||
|
|
||||||
task->initialize(/*nodeMap.namedItem("id").nodeValue().toInt()*/ TaskAmmFim::lastID++,
|
|
||||||
nodeMap.namedItem("type").nodeValue(),
|
|
||||||
nodeMap.namedItem("title").nodeValue(),
|
|
||||||
nodeMap.namedItem("status").nodeValue(),
|
|
||||||
nodeMap.namedItem("created").nodeValue(),
|
|
||||||
nodeMap.namedItem("changed").nodeValue());
|
|
||||||
|
|
||||||
QDomElement malfunctionElement = taskElement.firstChildElement();
|
|
||||||
if(!malfunctionElement.isNull())
|
|
||||||
{
|
|
||||||
do
|
|
||||||
{/*malfunction*/
|
|
||||||
QString name = malfunctionElement.nodeName();
|
|
||||||
QDomNamedNodeMap nodeMap = malfunctionElement.attributes();
|
|
||||||
|
|
||||||
if(name == "malfunction")
|
|
||||||
{
|
|
||||||
Malfunction malfunction;
|
|
||||||
|
|
||||||
malfunction.initialize(nodeMap.namedItem("dmCode").nodeValue(),
|
|
||||||
nodeMap.namedItem("num").nodeValue(),
|
|
||||||
nodeMap.namedItem("description").nodeValue());
|
|
||||||
|
|
||||||
QDomElement signElement = malfunctionElement.firstChildElement();
|
|
||||||
if(!signElement.isNull())
|
|
||||||
{
|
|
||||||
do
|
|
||||||
{/*malfunctionSign*/
|
|
||||||
QString name = signElement.nodeName();
|
|
||||||
QDomNamedNodeMap nodeMap = signElement.attributes();
|
|
||||||
|
|
||||||
if(name == "malfunctionSign")
|
|
||||||
{
|
|
||||||
MalfunctionSign sign;
|
|
||||||
|
|
||||||
sign.initialize(nodeMap.namedItem("type").nodeValue().toInt(),
|
|
||||||
nodeMap.namedItem("description").nodeValue());
|
|
||||||
|
|
||||||
malfunction.addMalfunctionSign(sign);
|
|
||||||
}
|
|
||||||
|
|
||||||
}while(! (signElement = signElement.nextSiblingElement()).isNull());
|
|
||||||
}
|
|
||||||
task->addMalfunction(malfunction);
|
|
||||||
}
|
|
||||||
}while(! (malfunctionElement = malfunctionElement.nextSiblingElement()).isNull());
|
|
||||||
}
|
|
||||||
listTaskAmmFim.append(task);
|
|
||||||
}
|
|
||||||
}while (! (taskElement = taskElement.nextSiblingElement()).isNull());
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
void FIMtasksWidget::fillTree()
|
void FIMtasksWidget::fillTree()
|
||||||
{
|
{
|
||||||
//Обновление дерева
|
//Обновление дерева
|
||||||
@@ -351,6 +282,7 @@ void FIMtasksWidget::fillTree()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
void FIMtasksWidget::prepareListTasksForTrainee(QList<TaskAmmFim> listTask)
|
void FIMtasksWidget::prepareListTasksForTrainee(QList<TaskAmmFim> listTask)
|
||||||
{
|
{
|
||||||
deleteAllTaskAmmFim();
|
deleteAllTaskAmmFim();
|
||||||
@@ -363,31 +295,9 @@ void FIMtasksWidget::prepareListTasksForTrainee(QList<TaskAmmFim> listTask)
|
|||||||
listTaskAmmFim.append(newTask);
|
listTaskAmmFim.append(newTask);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
#endif
|
||||||
|
|
||||||
void FIMtasksWidget::preparationTreeWidget()
|
|
||||||
{
|
|
||||||
treeWidget->setColumnCount(clmn_count);
|
|
||||||
|
|
||||||
reSetHeadTreeWidget();
|
|
||||||
|
|
||||||
if(type == TypeList::listCommon || type == TypeList::listOneTask)
|
|
||||||
{
|
|
||||||
treeWidget->setColumnHidden(ColumnsTree::clmn_ID, true);
|
|
||||||
treeWidget->setColumnHidden(ColumnsTree::clmn_status, true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void FIMtasksWidget::reSetHeadTreeWidget()
|
|
||||||
{
|
|
||||||
QStringList listHeaders;
|
|
||||||
|
|
||||||
if(type == TypeList::listForTrainee)
|
|
||||||
listHeaders = QStringList{tr("Task FIM"), tr("ID"), tr("Status")};
|
|
||||||
else
|
|
||||||
listHeaders = QStringList{tr("Title"), tr("ID"), tr("Status")};
|
|
||||||
|
|
||||||
treeWidget->setHeaderLabels(listHeaders);
|
|
||||||
}
|
|
||||||
|
|
||||||
void FIMtasksWidget::slot_NeedUpdateUI()
|
void FIMtasksWidget::slot_NeedUpdateUI()
|
||||||
{
|
{
|
||||||
@@ -410,15 +320,16 @@ void FIMtasksWidget::slot_traineeSelected(QString login)
|
|||||||
|
|
||||||
void FIMtasksWidget::slot_UpdateTasksFIMforTrainee(int trainee_id)
|
void FIMtasksWidget::slot_UpdateTasksFIMforTrainee(int trainee_id)
|
||||||
{
|
{
|
||||||
qDebug() << "SlotUpdateTasksUI" << QThread::currentThreadId();
|
qDebug() << "slot_UpdateTasksFIMforTrainee" << QThread::currentThreadId();
|
||||||
if(type == TypeList::listForTrainee)
|
if(type == TypeList::listForTrainee)
|
||||||
{
|
{
|
||||||
if(idTraineeSelected == trainee_id)
|
if(idTraineeSelected == trainee_id)
|
||||||
{
|
{
|
||||||
QList<TaskAmmFim> listTask = connectorToServer->getListTasksFIMforTrainee(trainee_id);
|
QList<TaskAmmFim> listTask = connectorToServer->getListTasksFIMforTrainee(trainee_id);
|
||||||
prepareListTasksForTrainee(listTask);
|
emit signal_prepareFIMListItemsForTrainee(listTask, &listTaskAmmFim);
|
||||||
fillTree();
|
//prepareListTasksForTrainee(listTask);
|
||||||
waitAnimationWidget->hideWithStop();
|
//fillTree();
|
||||||
|
//waitAnimationWidget->hideWithStop();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -430,11 +341,27 @@ void FIMtasksWidget::loadTasksFIM()
|
|||||||
|
|
||||||
waitAnimationWidget->showWithPlay();
|
waitAnimationWidget->showWithPlay();
|
||||||
|
|
||||||
QByteArray array = connectorToServer->getListTaskFimArray();
|
QByteArray arrayFIM = connectorToServer->getListTaskFimArray();
|
||||||
loadFIMtasksFromXML(array);
|
|
||||||
|
|
||||||
|
//loadFIMtasksFromXML(arrayFIM);
|
||||||
//собственно обновление дерева
|
//собственно обновление дерева
|
||||||
fillTree();
|
//fillTree();
|
||||||
|
//waitAnimationWidget->hideWithStop();
|
||||||
|
|
||||||
|
emit signal_prepareFIMListItems(arrayFIM, &listTaskAmmFim);
|
||||||
|
}
|
||||||
|
|
||||||
|
void FIMtasksWidget::slot_FIMlistItemsReady(QList<QTreeWidgetItem *> listItems)
|
||||||
|
{
|
||||||
|
//Обновление дерева
|
||||||
|
treeWidget->clear();
|
||||||
|
|
||||||
|
for(QTreeWidgetItem * item : listItems)
|
||||||
|
treeWidget->addTopLevelItem(item);
|
||||||
|
|
||||||
|
QTreeWidgetItem * item = treeWidget->topLevelItem(0);
|
||||||
|
if(item != nullptr)
|
||||||
|
treeWidget->setCurrentItem(item);
|
||||||
|
|
||||||
waitAnimationWidget->hideWithStop();
|
waitAnimationWidget->hideWithStop();
|
||||||
}
|
}
|
||||||
@@ -451,26 +378,29 @@ TaskAmmFim* FIMtasksWidget::getTaskByID(int id)
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FIMtasksWidget::deleteAllTaskAmmFim()
|
void FIMtasksWidget::preparationTreeWidget()
|
||||||
{
|
{
|
||||||
if(type == TypeList::listOneTask)
|
treeWidget->setColumnCount(clmnFIM_count);
|
||||||
return;
|
|
||||||
|
|
||||||
for(TaskAmmFim* task: listTaskAmmFim)
|
reSetHeadTreeWidget();
|
||||||
delete task;
|
|
||||||
|
|
||||||
listTaskAmmFim.clear();
|
if(type == TypeList::listCommon || type == TypeList::listOneTask)
|
||||||
|
{
|
||||||
|
treeWidget->setColumnHidden(ColumnsTreeFIM::clmnFIM_ID, true);
|
||||||
|
treeWidget->setColumnHidden(ColumnsTreeFIM::clmnFIM_status, true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void FIMtasksWidget::updateTaskItem(QTreeWidgetItem *itemTask)
|
void FIMtasksWidget::reSetHeadTreeWidget()
|
||||||
{
|
{
|
||||||
for (int i = 0; i < itemTask->childCount(); i++)
|
QStringList listHeaders;
|
||||||
{
|
|
||||||
QTreeWidgetItem* itemMalfunction = itemTask->child(i);
|
if(type == TypeList::listForTrainee)
|
||||||
itemMalfunction->setCheckState(0, Qt::Checked);
|
listHeaders = QStringList{tr("Task FIM"), tr("ID"), tr("Status")};
|
||||||
itemMalfunction->setExpanded(false);
|
else
|
||||||
}
|
listHeaders = QStringList{tr("Title"), tr("ID"), tr("Status")};
|
||||||
itemTask->setExpanded(false);
|
|
||||||
|
treeWidget->setHeaderLabels(listHeaders);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FIMtasksWidget::on_btnUpdateTasks_clicked()
|
void FIMtasksWidget::on_btnUpdateTasks_clicked()
|
||||||
@@ -485,7 +415,7 @@ void FIMtasksWidget::assignTaskFIMtoTrainee()
|
|||||||
if(current == nullptr)
|
if(current == nullptr)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
int id = current->text(ColumnsTree::clmn_ID).toInt();
|
int id = current->text(ColumnsTreeFIM::clmnFIM_ID).toInt();
|
||||||
|
|
||||||
TaskAmmFim* task = getTaskByID(id);
|
TaskAmmFim* task = getTaskByID(id);
|
||||||
|
|
||||||
@@ -510,7 +440,7 @@ void FIMtasksWidget::assignTaskFIMtoTrainee()
|
|||||||
|
|
||||||
connectorToServer->sendQueryToDB(TypeQueryToDB::TYPE_QUERY_ASSIGN_TASK_FIM_TO_TRAINEE, trainee_id, &taskNew);
|
connectorToServer->sendQueryToDB(TypeQueryToDB::TYPE_QUERY_ASSIGN_TASK_FIM_TO_TRAINEE, trainee_id, &taskNew);
|
||||||
|
|
||||||
updateTaskItem(current);
|
updateTaskItem(current); //TODO ?
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -524,7 +454,7 @@ void FIMtasksWidget::on_btnDelete_clicked()
|
|||||||
if(treeItemParent == nullptr)
|
if(treeItemParent == nullptr)
|
||||||
{//Выбрана задача
|
{//Выбрана задача
|
||||||
|
|
||||||
int id = treeItemCurrent->text(ColumnsTree::clmn_ID).toInt();
|
int id = treeItemCurrent->text(ColumnsTreeFIM::clmnFIM_ID).toInt();
|
||||||
|
|
||||||
if(QMessageBox::warning(this, tr("Attention!"), tr("The deletion will be irrevocable.\nDelete it anyway?"), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok)
|
if(QMessageBox::warning(this, tr("Attention!"), tr("The deletion will be irrevocable.\nDelete it anyway?"), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok)
|
||||||
{
|
{
|
||||||
@@ -544,7 +474,7 @@ void FIMtasksWidget::on_btnCheck_clicked()
|
|||||||
if(treeItemParent == nullptr)
|
if(treeItemParent == nullptr)
|
||||||
{//Выбрана задача
|
{//Выбрана задача
|
||||||
|
|
||||||
int id = treeItemCurrent->text(ColumnsTree::clmn_ID).toInt();
|
int id = treeItemCurrent->text(ColumnsTreeFIM::clmnFIM_ID).toInt();
|
||||||
|
|
||||||
TaskAmmFim* task = getTaskByID(id);
|
TaskAmmFim* task = getTaskByID(id);
|
||||||
|
|
||||||
@@ -568,3 +498,16 @@ void FIMtasksWidget::on_btnAssignTask_clicked()
|
|||||||
if(QMessageBox::question(this, tr("New task"), tr("Assign this task?"), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok)
|
if(QMessageBox::question(this, tr("New task"), tr("Assign this task?"), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok)
|
||||||
assignTaskFIMtoTrainee();
|
assignTaskFIMtoTrainee();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FIMtasksWidget::updateTaskItem(QTreeWidgetItem *itemTask)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < itemTask->childCount(); i++)
|
||||||
|
{
|
||||||
|
QTreeWidgetItem* itemMalfunction = itemTask->child(i);
|
||||||
|
itemMalfunction->setCheckState(0, Qt::Checked);
|
||||||
|
itemMalfunction->setExpanded(false);
|
||||||
|
}
|
||||||
|
itemTask->setExpanded(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
#include <QTreeWidget>
|
#include <QTreeWidget>
|
||||||
#include "tasksAmmFim.h"
|
#include "tasksAmmFim.h"
|
||||||
#include "connectortoserver.h"
|
#include "connectortoserver.h"
|
||||||
|
#include "taskTreePreparation.h"
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
class FIMtasksWidget;
|
class FIMtasksWidget;
|
||||||
@@ -23,12 +24,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
enum ColumnsTree{
|
|
||||||
clmn_Title = 0,
|
|
||||||
clmn_ID,
|
|
||||||
clmn_status,
|
|
||||||
clmn_count
|
|
||||||
};
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit FIMtasksWidget(ConnectorToServer* connectorToServer, TypeList type, QWidget *parent = nullptr);
|
explicit FIMtasksWidget(ConnectorToServer* connectorToServer, TypeList type, QWidget *parent = nullptr);
|
||||||
@@ -36,8 +32,7 @@ public:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
void deactivate();
|
void deactivate();
|
||||||
|
void setOneTaskFim(TaskAmmFim* task); //FIM
|
||||||
void setOneTaskFim(TaskAmmFim* task);
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void resizeEvent(QResizeEvent *event) override;
|
void resizeEvent(QResizeEvent *event) override;
|
||||||
@@ -47,11 +42,8 @@ protected:
|
|||||||
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_btnDelete_clicked();
|
void on_btnDelete_clicked();
|
||||||
|
|
||||||
void on_btnCheck_clicked();
|
void on_btnCheck_clicked();
|
||||||
|
|
||||||
void on_btnAssignTask_clicked();
|
void on_btnAssignTask_clicked();
|
||||||
|
|
||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
@@ -64,20 +56,26 @@ public Q_SLOTS:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
TaskAmmFim* getTaskByID(int id);
|
TaskAmmFim* getTaskByID(int id);
|
||||||
void loadFIMtasksFromXML(QByteArray array);
|
|
||||||
void fillTree();
|
|
||||||
|
|
||||||
void prepareListTasksForTrainee(QList<TaskAmmFim> listTask);
|
|
||||||
|
|
||||||
void preparationTreeWidget();
|
void preparationTreeWidget();
|
||||||
void reSetHeadTreeWidget();
|
void reSetHeadTreeWidget();
|
||||||
void loadTasksFIM();
|
void loadTasksFIM();
|
||||||
|
void assignTaskFIMtoTrainee();
|
||||||
|
|
||||||
void deleteAllTaskAmmFim();
|
|
||||||
|
/*
|
||||||
|
void fillTree();
|
||||||
|
void prepareListTasksForTrainee(QList<TaskAmmFim> listTask);
|
||||||
|
*/
|
||||||
|
|
||||||
void updateTaskItem(QTreeWidgetItem *itemTask);
|
void updateTaskItem(QTreeWidgetItem *itemTask);
|
||||||
|
|
||||||
void assignTaskFIMtoTrainee();
|
|
||||||
|
|
||||||
|
Q_SIGNALS:
|
||||||
|
void signal_prepareFIMListItems(QByteArray array, QList<TaskAmmFim*>* listTaskAmmFim);
|
||||||
|
void signal_prepareFIMListItemsForTrainee(QList<TaskAmmFim> listTask, QList<TaskAmmFim*>* listTaskAmmFim);
|
||||||
|
public Q_SLOTS:
|
||||||
|
void slot_FIMlistItemsReady(QList<QTreeWidgetItem*> listItems);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::FIMtasksWidget *ui;
|
Ui::FIMtasksWidget *ui;
|
||||||
@@ -86,13 +84,15 @@ private:
|
|||||||
TypeList type;
|
TypeList type;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QString userName;
|
|
||||||
QList<TaskAmmFim*> listTaskAmmFim;
|
QList<TaskAmmFim*> listTaskAmmFim;
|
||||||
QString loginTraineeSelected;
|
QString loginTraineeSelected;
|
||||||
int idTraineeSelected;
|
int idTraineeSelected;
|
||||||
|
|
||||||
QThread* threadAnimation;
|
QThread* threadPreparation;
|
||||||
|
TaskTreePreparation* taskTreePreparation;
|
||||||
WaitAnimationWidget *waitAnimationWidget;
|
WaitAnimationWidget *waitAnimationWidget;
|
||||||
|
|
||||||
|
QString userName; //FIM
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // FIMTASKSWIDGET_H
|
#endif // FIMTASKSWIDGET_H
|
||||||
|
|||||||
@@ -5,7 +5,8 @@
|
|||||||
|
|
||||||
TaskTreePreparation::TaskTreePreparation(QObject *parent) :
|
TaskTreePreparation::TaskTreePreparation(QObject *parent) :
|
||||||
QObject(parent),
|
QObject(parent),
|
||||||
listAllModules(nullptr),
|
listAllModulesAMM(nullptr),
|
||||||
|
listTaskAmmFim(nullptr),
|
||||||
flagStop(false)
|
flagStop(false)
|
||||||
{
|
{
|
||||||
qDebug() << "TaskTreePreparation init thread ID " << QThread::currentThreadId();
|
qDebug() << "TaskTreePreparation init thread ID " << QThread::currentThreadId();
|
||||||
@@ -13,7 +14,7 @@ TaskTreePreparation::TaskTreePreparation(QObject *parent) :
|
|||||||
|
|
||||||
TaskTreePreparation::~TaskTreePreparation()
|
TaskTreePreparation::~TaskTreePreparation()
|
||||||
{
|
{
|
||||||
deleteAllModuls();
|
deleteAllModulsAMM();
|
||||||
}
|
}
|
||||||
|
|
||||||
void TaskTreePreparation::stopParser()
|
void TaskTreePreparation::stopParser()
|
||||||
@@ -21,7 +22,7 @@ void TaskTreePreparation::stopParser()
|
|||||||
flagStop = true;
|
flagStop = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
QTreeWidgetItem *TaskTreePreparation::addModuleToTreeWidget(Module *module, bool flOnlyActive, QTreeWidgetItem *parentItem)
|
QTreeWidgetItem *TaskTreePreparation::addModuleToTreeWidgetAMM(Module *module, bool flOnlyActive, QTreeWidgetItem *parentItem)
|
||||||
{
|
{
|
||||||
QTreeWidgetItem* itemModule = nullptr;
|
QTreeWidgetItem* itemModule = nullptr;
|
||||||
|
|
||||||
@@ -48,7 +49,7 @@ QTreeWidgetItem *TaskTreePreparation::addModuleToTreeWidget(Module *module, bool
|
|||||||
|
|
||||||
for(Module* module : PMmodul->getListChildModules())
|
for(Module* module : PMmodul->getListChildModules())
|
||||||
{
|
{
|
||||||
addModuleToTreeWidget(module, flOnlyActive, itemModule);
|
addModuleToTreeWidgetAMM(module, flOnlyActive, itemModule);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -62,9 +63,9 @@ QTreeWidgetItem *TaskTreePreparation::addModuleToTreeWidget(Module *module, bool
|
|||||||
itemModule->setIcon(0, QIcon(":/resources/icons/procedure.png"));
|
itemModule->setIcon(0, QIcon(":/resources/icons/procedure.png"));
|
||||||
}
|
}
|
||||||
|
|
||||||
itemModule->setText(ColumnsTree::clmn_PMorDM, text);
|
itemModule->setText(ColumnsTreeAMM::clmnAMM_PMorDM, text);
|
||||||
itemModule->setText(ColumnsTree::clmn_code, code);
|
itemModule->setText(ColumnsTreeAMM::clmnAMM_code, code);
|
||||||
itemModule->setText(ColumnsTree::clmn_ID, ID);
|
itemModule->setText(ColumnsTreeAMM::clmnAMM_ID, ID);
|
||||||
itemModule->setToolTip(0, text);
|
itemModule->setToolTip(0, text);
|
||||||
|
|
||||||
return itemModule;
|
return itemModule;
|
||||||
@@ -72,7 +73,7 @@ QTreeWidgetItem *TaskTreePreparation::addModuleToTreeWidget(Module *module, bool
|
|||||||
|
|
||||||
void TaskTreePreparation::loadAMMtasksFromXML(QByteArray array)
|
void TaskTreePreparation::loadAMMtasksFromXML(QByteArray array)
|
||||||
{
|
{
|
||||||
deleteAllModuls();
|
deleteAllModulsAMM();
|
||||||
|
|
||||||
QDomDocument docTasksDOM;
|
QDomDocument docTasksDOM;
|
||||||
|
|
||||||
@@ -82,25 +83,117 @@ void TaskTreePreparation::loadAMMtasksFromXML(QByteArray array)
|
|||||||
if(manifestElement.isNull())
|
if(manifestElement.isNull())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
domElementParser(manifestElement, nullptr);
|
domElementParserAMM(manifestElement, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TaskTreePreparation::deleteAllModuls()
|
void TaskTreePreparation::loadFIMtasksFromXML(QByteArray array)
|
||||||
{
|
{
|
||||||
if(listAllModules == nullptr)
|
deleteAllTaskAmmFim();
|
||||||
|
|
||||||
|
QDomDocument docTasksDOM;
|
||||||
|
|
||||||
|
docTasksDOM.setContent(array);
|
||||||
|
|
||||||
|
QDomElement RRJTasksElement = docTasksDOM.firstChildElement("RRJTasks");
|
||||||
|
if(RRJTasksElement.isNull())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
for(Module* module: *listAllModules)
|
QDomElement taskElement = RRJTasksElement.firstChildElement();
|
||||||
|
if(taskElement.isNull())
|
||||||
|
return;
|
||||||
|
|
||||||
|
do
|
||||||
|
{/*task*/
|
||||||
|
QString name = taskElement.nodeName();
|
||||||
|
QDomNamedNodeMap nodeMap = taskElement.attributes();
|
||||||
|
|
||||||
|
if(name == "task")
|
||||||
|
{
|
||||||
|
TaskAmmFim* task = nullptr;
|
||||||
|
task = new TaskAmmFim();
|
||||||
|
|
||||||
|
task->initialize(/*nodeMap.namedItem("id").nodeValue().toInt()*/ TaskAmmFim::lastID++,
|
||||||
|
nodeMap.namedItem("type").nodeValue(),
|
||||||
|
nodeMap.namedItem("title").nodeValue(),
|
||||||
|
nodeMap.namedItem("status").nodeValue(),
|
||||||
|
nodeMap.namedItem("created").nodeValue(),
|
||||||
|
nodeMap.namedItem("changed").nodeValue());
|
||||||
|
|
||||||
|
QDomElement malfunctionElement = taskElement.firstChildElement();
|
||||||
|
if(!malfunctionElement.isNull())
|
||||||
|
{
|
||||||
|
do
|
||||||
|
{/*malfunction*/
|
||||||
|
QString name = malfunctionElement.nodeName();
|
||||||
|
QDomNamedNodeMap nodeMap = malfunctionElement.attributes();
|
||||||
|
|
||||||
|
if(name == "malfunction")
|
||||||
|
{
|
||||||
|
Malfunction malfunction;
|
||||||
|
|
||||||
|
malfunction.initialize(nodeMap.namedItem("dmCode").nodeValue(),
|
||||||
|
nodeMap.namedItem("num").nodeValue(),
|
||||||
|
nodeMap.namedItem("description").nodeValue());
|
||||||
|
|
||||||
|
QDomElement signElement = malfunctionElement.firstChildElement();
|
||||||
|
if(!signElement.isNull())
|
||||||
|
{
|
||||||
|
do
|
||||||
|
{/*malfunctionSign*/
|
||||||
|
QString name = signElement.nodeName();
|
||||||
|
QDomNamedNodeMap nodeMap = signElement.attributes();
|
||||||
|
|
||||||
|
if(name == "malfunctionSign")
|
||||||
|
{
|
||||||
|
MalfunctionSign sign;
|
||||||
|
|
||||||
|
sign.initialize(nodeMap.namedItem("type").nodeValue().toInt(),
|
||||||
|
nodeMap.namedItem("description").nodeValue());
|
||||||
|
|
||||||
|
malfunction.addMalfunctionSign(sign);
|
||||||
|
}
|
||||||
|
|
||||||
|
}while(! (signElement = signElement.nextSiblingElement()).isNull());
|
||||||
|
}
|
||||||
|
task->addMalfunction(malfunction);
|
||||||
|
}
|
||||||
|
}while(! (malfunctionElement = malfunctionElement.nextSiblingElement()).isNull());
|
||||||
|
}
|
||||||
|
listTaskAmmFim->append(task);
|
||||||
|
}
|
||||||
|
}while (! (taskElement = taskElement.nextSiblingElement()).isNull());
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TaskTreePreparation::deleteAllTaskAmmFim()
|
||||||
|
{
|
||||||
|
//if(type == TypeList::listOneTask)
|
||||||
|
//return;
|
||||||
|
|
||||||
|
for(TaskAmmFim* task: *listTaskAmmFim)
|
||||||
|
delete task;
|
||||||
|
|
||||||
|
listTaskAmmFim->clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void TaskTreePreparation::deleteAllModulsAMM()
|
||||||
|
{
|
||||||
|
if(listAllModulesAMM == nullptr)
|
||||||
|
return;
|
||||||
|
|
||||||
|
for(Module* module: *listAllModulesAMM)
|
||||||
{
|
{
|
||||||
if(module->getType() == ModuleType::TYPE_PM)
|
if(module->getType() == ModuleType::TYPE_PM)
|
||||||
delete static_cast<PM*>(module);
|
delete static_cast<PM*>(module);
|
||||||
else
|
else
|
||||||
delete static_cast<DM*>(module);
|
delete static_cast<DM*>(module);
|
||||||
}
|
}
|
||||||
listAllModules->clear();
|
listAllModulesAMM->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void TaskTreePreparation::domElementParser(QDomElement element, Module* moduleParent)
|
void TaskTreePreparation::domElementParserAMM(QDomElement element, Module* moduleParent)
|
||||||
{
|
{
|
||||||
QString name;
|
QString name;
|
||||||
|
|
||||||
@@ -200,38 +293,39 @@ void TaskTreePreparation::domElementParser(QDomElement element, Module* modulePa
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
domElementParser(childElement, module);
|
domElementParserAMM(childElement, module);
|
||||||
|
|
||||||
if(moduleParent == nullptr)
|
if(moduleParent == nullptr)
|
||||||
listAllModules->append(module);
|
listAllModulesAMM->append(module);
|
||||||
|
|
||||||
}while (! (childElement = childElement.nextSiblingElement()).isNull());
|
}while (! (childElement = childElement.nextSiblingElement()).isNull());
|
||||||
}
|
}
|
||||||
|
|
||||||
void TaskTreePreparation::slot_prepareListItems(QByteArray array, QList<Module*>* listAllModules, bool flOnlyActive)
|
|
||||||
{
|
|
||||||
qDebug() << "TaskTreePreparation::slot_prepareListItems thread ID " << QThread::currentThreadId();
|
|
||||||
|
|
||||||
this->listAllModules = listAllModules;
|
void TaskTreePreparation::slot_prepareAMMListItems(QByteArray array, QList<Module*>* listAllModules, bool flOnlyActive)
|
||||||
|
{
|
||||||
|
qDebug() << "TaskTreePreparation::slot_prepareAMMListItems thread ID " << QThread::currentThreadId();
|
||||||
|
|
||||||
|
this->listAllModulesAMM = listAllModules;
|
||||||
|
|
||||||
loadAMMtasksFromXML(array);
|
loadAMMtasksFromXML(array);
|
||||||
|
|
||||||
listItems.clear();
|
listItems.clear();
|
||||||
|
|
||||||
for(Module* module : *this->listAllModules)
|
for(Module* module : *this->listAllModulesAMM)
|
||||||
{
|
{
|
||||||
QTreeWidgetItem* item = addModuleToTreeWidget(module, flOnlyActive);
|
QTreeWidgetItem* item = addModuleToTreeWidgetAMM(module, flOnlyActive);
|
||||||
listItems.append(item);
|
listItems.append(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
Q_EMIT signal_listItemsReady(listItems);
|
Q_EMIT signal_listAMMItemsReady(listItems);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TaskTreePreparation::slot_prepareListItemsForTrainee(QList<TaskAmmFim> listTask, QList<Module *> *listAllModules)
|
void TaskTreePreparation::slot_prepareAMMListItemsForTrainee(QList<TaskAmmFim> listTask, QList<Module *> *listAllModules)
|
||||||
{
|
{
|
||||||
qDebug() << "TaskTreePreparation::slot_prepareListItemsForTrainee thread ID " << QThread::currentThreadId();
|
qDebug() << "TaskTreePreparation::slot_prepareAMMListItemsForTrainee thread ID " << QThread::currentThreadId();
|
||||||
|
|
||||||
this->listAllModules = listAllModules;
|
this->listAllModulesAMM = listAllModules;
|
||||||
|
|
||||||
//loadAMMtasksFromList(listTask);
|
//loadAMMtasksFromList(listTask);
|
||||||
|
|
||||||
@@ -249,29 +343,29 @@ void TaskTreePreparation::slot_prepareListItemsForTrainee(QList<TaskAmmFim> list
|
|||||||
item = new QTreeWidgetItem();
|
item = new QTreeWidgetItem();
|
||||||
item->setIcon(0, QIcon(":/resources/icons/procedure.png"));
|
item->setIcon(0, QIcon(":/resources/icons/procedure.png"));
|
||||||
|
|
||||||
item->setText(ColumnsTree::clmn_PMorDM, text);
|
item->setText(ColumnsTreeAMM::clmnAMM_PMorDM, text);
|
||||||
item->setText(ColumnsTree::clmn_code, code);
|
item->setText(ColumnsTreeAMM::clmnAMM_code, code);
|
||||||
item->setText(ColumnsTree::clmn_ID, ID);
|
item->setText(ColumnsTreeAMM::clmnAMM_ID, ID);
|
||||||
|
|
||||||
if(status == "completed")
|
if(status == "completed")
|
||||||
{
|
{
|
||||||
item->setText(ColumnsTree::clmn_status, tr("completed"));
|
item->setText(ColumnsTreeAMM::clmnAMM_status, tr("completed"));
|
||||||
item->setIcon(ColumnsTree::clmn_status, QIcon(QStringLiteral(":/resources/icons/circleGreen.png")));
|
item->setIcon(ColumnsTreeAMM::clmnAMM_status, QIcon(QStringLiteral(":/resources/icons/circleGreen.png")));
|
||||||
}
|
}
|
||||||
else if(status == "failed")
|
else if(status == "failed")
|
||||||
{
|
{
|
||||||
item->setText(ColumnsTree::clmn_status, tr("failed"));
|
item->setText(ColumnsTreeAMM::clmnAMM_status, tr("failed"));
|
||||||
item->setIcon(ColumnsTree::clmn_status, QIcon(QStringLiteral(":/resources/icons/circleRed.png")));
|
item->setIcon(ColumnsTreeAMM::clmnAMM_status, QIcon(QStringLiteral(":/resources/icons/circleRed.png")));
|
||||||
}
|
}
|
||||||
else if(status == "checkup")
|
else if(status == "checkup")
|
||||||
{
|
{
|
||||||
item->setText(ColumnsTree::clmn_status, tr("checkup"));
|
item->setText(ColumnsTreeAMM::clmnAMM_status, tr("checkup"));
|
||||||
item->setIcon(ColumnsTree::clmn_status, QIcon(QStringLiteral(":/resources/icons/circleYellow.png")));
|
item->setIcon(ColumnsTreeAMM::clmnAMM_status, QIcon(QStringLiteral(":/resources/icons/circleYellow.png")));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
item->setText(ColumnsTree::clmn_status, tr("new"));
|
item->setText(ColumnsTreeAMM::clmnAMM_status, tr("new"));
|
||||||
item->setIcon(ColumnsTree::clmn_status, QIcon(QStringLiteral(":/resources/icons/circleGray.png")));
|
item->setIcon(ColumnsTreeAMM::clmnAMM_status, QIcon(QStringLiteral(":/resources/icons/circleGray.png")));
|
||||||
}
|
}
|
||||||
|
|
||||||
item->setToolTip(0, text);
|
item->setToolTip(0, text);
|
||||||
@@ -279,5 +373,182 @@ void TaskTreePreparation::slot_prepareListItemsForTrainee(QList<TaskAmmFim> list
|
|||||||
listItems.append(item);
|
listItems.append(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
Q_EMIT signal_listItemsReady(listItems);
|
Q_EMIT signal_listAMMItemsReady(listItems);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TaskTreePreparation::slot_prepareFIMListItems(QByteArray array, QList<TaskAmmFim *> *listTaskAmmFim)
|
||||||
|
{
|
||||||
|
qDebug() << "TaskTreePreparation::slot_prepareFIMListItems thread ID " << QThread::currentThreadId();
|
||||||
|
|
||||||
|
this->listTaskAmmFim = listTaskAmmFim;
|
||||||
|
|
||||||
|
loadFIMtasksFromXML(array);
|
||||||
|
|
||||||
|
listItems.clear();
|
||||||
|
|
||||||
|
for(TaskAmmFim* taskPtr : *this->listTaskAmmFim)
|
||||||
|
{/*Задачи*/
|
||||||
|
TaskAmmFim task = *taskPtr;
|
||||||
|
|
||||||
|
QTreeWidgetItem* itemTask = new QTreeWidgetItem();
|
||||||
|
|
||||||
|
itemTask->setText(0, task.title);
|
||||||
|
itemTask->setText(1, QString::number(task.id));
|
||||||
|
//itemTask->setFlags(itemTask->flags() | Qt::ItemIsUserCheckable);
|
||||||
|
//itemTask->setCheckState(0, Qt::Checked);
|
||||||
|
|
||||||
|
if(task.status == "completed")
|
||||||
|
{
|
||||||
|
itemTask->setText(2, tr("completed"));
|
||||||
|
itemTask->setIcon(2, QIcon(QStringLiteral(":/resources/icons/circleGreen.png")));
|
||||||
|
}
|
||||||
|
else if(task.status == "failed")
|
||||||
|
{
|
||||||
|
itemTask->setText(2, tr("failed"));
|
||||||
|
itemTask->setIcon(2, QIcon(QStringLiteral(":/resources/icons/circleRed.png")));
|
||||||
|
}
|
||||||
|
else if(task.status == "checkup")
|
||||||
|
{
|
||||||
|
itemTask->setText(2, tr("checkup"));
|
||||||
|
itemTask->setIcon(2, QIcon(QStringLiteral(":/resources/icons/circleYellow.png")));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
itemTask->setText(2, tr("new"));
|
||||||
|
itemTask->setIcon(2, QIcon(QStringLiteral(":/resources/icons/circleGray.png")));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
itemTask->setIcon(0, QIcon(":/resources/icons/procedure.png"));
|
||||||
|
itemTask->setToolTip(0, task.title);
|
||||||
|
|
||||||
|
//treeWidget->addTopLevelItem(itemTask);
|
||||||
|
|
||||||
|
for (int j = 0; j < task.malfunctionList.count(); j++)
|
||||||
|
{/*Неисправности*/
|
||||||
|
Malfunction malfunction = task.malfunctionList.at(j);
|
||||||
|
|
||||||
|
QTreeWidgetItem* itemMalfunction = new QTreeWidgetItem();
|
||||||
|
|
||||||
|
itemMalfunction->setText(0, malfunction.description);
|
||||||
|
//if(type == TypeList::listCommon) //TODO
|
||||||
|
{
|
||||||
|
itemMalfunction->setFlags(itemMalfunction->flags() | Qt::ItemIsUserCheckable);
|
||||||
|
itemMalfunction->setCheckState(0, Qt::Checked);
|
||||||
|
}
|
||||||
|
|
||||||
|
itemMalfunction->setIcon(0, QIcon(":/resources/icons/malfunction.png"));
|
||||||
|
itemMalfunction->setToolTip(0, malfunction.description);
|
||||||
|
|
||||||
|
itemTask->addChild(itemMalfunction);
|
||||||
|
|
||||||
|
for (int k = 0; k < malfunction.malfunctionSigns.count(); k++)
|
||||||
|
{/*Сигнализация*/
|
||||||
|
MalfunctionSign sign = malfunction.malfunctionSigns.at(k);
|
||||||
|
|
||||||
|
QTreeWidgetItem* itemSign = new QTreeWidgetItem();
|
||||||
|
|
||||||
|
itemSign->setText(0, sign.description);
|
||||||
|
//itemSign->setFlags(itemSign->flags() | Qt::ItemIsUserCheckable);
|
||||||
|
//itemSign->setCheckState(0, Qt::Checked);
|
||||||
|
itemSign->setIcon(0, QIcon(":/resources/icons/sign.png"));
|
||||||
|
itemSign->setToolTip(0, sign.description);
|
||||||
|
|
||||||
|
itemMalfunction->addChild(itemSign);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
listItems.append(itemTask);
|
||||||
|
}
|
||||||
|
|
||||||
|
Q_EMIT signal_listFIMItemsReady(listItems);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TaskTreePreparation::slot_prepareFIMListItemsForTrainee(QList<TaskAmmFim> listTask, QList<TaskAmmFim *> *listTaskAmmFim)
|
||||||
|
{
|
||||||
|
qDebug() << "TaskTreePreparation::slot_prepareFIMListItemsForTrainee thread ID " << QThread::currentThreadId();
|
||||||
|
|
||||||
|
this->listTaskAmmFim = listTaskAmmFim;
|
||||||
|
|
||||||
|
listItems.clear();
|
||||||
|
|
||||||
|
for(TaskAmmFim task : listTask)
|
||||||
|
{/*Задачи*/
|
||||||
|
//TaskAmmFim* task = listTaskAmmFim.at(i);
|
||||||
|
TaskAmmFim* taskNew = nullptr;
|
||||||
|
taskNew = new TaskAmmFim();
|
||||||
|
*taskNew = task;
|
||||||
|
this->listTaskAmmFim->append(taskNew);
|
||||||
|
|
||||||
|
QTreeWidgetItem* itemTask = new QTreeWidgetItem();
|
||||||
|
|
||||||
|
itemTask->setText(0, task.title);
|
||||||
|
itemTask->setText(1, QString::number(task.id));
|
||||||
|
//itemTask->setFlags(itemTask->flags() | Qt::ItemIsUserCheckable);
|
||||||
|
//itemTask->setCheckState(0, Qt::Checked);
|
||||||
|
|
||||||
|
if(task.status == "completed")
|
||||||
|
{
|
||||||
|
itemTask->setText(2, tr("completed"));
|
||||||
|
itemTask->setIcon(2, QIcon(QStringLiteral(":/resources/icons/circleGreen.png")));
|
||||||
|
}
|
||||||
|
else if(task.status == "failed")
|
||||||
|
{
|
||||||
|
itemTask->setText(2, tr("failed"));
|
||||||
|
itemTask->setIcon(2, QIcon(QStringLiteral(":/resources/icons/circleRed.png")));
|
||||||
|
}
|
||||||
|
else if(task.status == "checkup")
|
||||||
|
{
|
||||||
|
itemTask->setText(2, tr("checkup"));
|
||||||
|
itemTask->setIcon(2, QIcon(QStringLiteral(":/resources/icons/circleYellow.png")));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
itemTask->setText(2, tr("new"));
|
||||||
|
itemTask->setIcon(2, QIcon(QStringLiteral(":/resources/icons/circleGray.png")));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
itemTask->setIcon(0, QIcon(":/resources/icons/procedure.png"));
|
||||||
|
itemTask->setToolTip(0, task.title);
|
||||||
|
|
||||||
|
//treeWidget->addTopLevelItem(itemTask);
|
||||||
|
|
||||||
|
for (int j = 0; j < task.malfunctionList.count(); j++)
|
||||||
|
{/*Неисправности*/
|
||||||
|
Malfunction malfunction = task.malfunctionList.at(j);
|
||||||
|
|
||||||
|
QTreeWidgetItem* itemMalfunction = new QTreeWidgetItem();
|
||||||
|
|
||||||
|
itemMalfunction->setText(0, malfunction.description);
|
||||||
|
//if(type == TypeList::listCommon) //TODO
|
||||||
|
{
|
||||||
|
itemMalfunction->setFlags(itemMalfunction->flags() | Qt::ItemIsUserCheckable);
|
||||||
|
itemMalfunction->setCheckState(0, Qt::Checked);
|
||||||
|
}
|
||||||
|
|
||||||
|
itemMalfunction->setIcon(0, QIcon(":/resources/icons/malfunction.png"));
|
||||||
|
itemMalfunction->setToolTip(0, malfunction.description);
|
||||||
|
|
||||||
|
itemTask->addChild(itemMalfunction);
|
||||||
|
|
||||||
|
for (int k = 0; k < malfunction.malfunctionSigns.count(); k++)
|
||||||
|
{/*Сигнализация*/
|
||||||
|
MalfunctionSign sign = malfunction.malfunctionSigns.at(k);
|
||||||
|
|
||||||
|
QTreeWidgetItem* itemSign = new QTreeWidgetItem();
|
||||||
|
|
||||||
|
itemSign->setText(0, sign.description);
|
||||||
|
//itemSign->setFlags(itemSign->flags() | Qt::ItemIsUserCheckable);
|
||||||
|
//itemSign->setCheckState(0, Qt::Checked);
|
||||||
|
itemSign->setIcon(0, QIcon(":/resources/icons/sign.png"));
|
||||||
|
itemSign->setToolTip(0, sign.description);
|
||||||
|
|
||||||
|
itemMalfunction->addChild(itemSign);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
listItems.append(itemTask);
|
||||||
|
}
|
||||||
|
|
||||||
|
Q_EMIT signal_listFIMItemsReady(listItems);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,14 +7,22 @@
|
|||||||
#include "module.h"
|
#include "module.h"
|
||||||
#include "tasksAmmFim.h"
|
#include "tasksAmmFim.h"
|
||||||
|
|
||||||
enum ColumnsTree{
|
enum ColumnsTreeAMM{
|
||||||
clmn_PMorDM = 0,
|
clmnAMM_PMorDM = 0,
|
||||||
clmn_code,
|
clmnAMM_code,
|
||||||
clmn_ID,
|
clmnAMM_ID,
|
||||||
clmn_status,
|
clmnAMM_status,
|
||||||
clmn_count
|
clmnAMM_count
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum ColumnsTreeFIM{
|
||||||
|
clmnFIM_Title = 0,
|
||||||
|
clmnFIM_ID,
|
||||||
|
clmnFIM_status,
|
||||||
|
clmnFIM_count
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
class TaskTreePreparation : public QObject
|
class TaskTreePreparation : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@@ -26,21 +34,32 @@ public:
|
|||||||
void stopParser();
|
void stopParser();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QTreeWidgetItem* addModuleToTreeWidget(Module* module, bool flOnlyActive = false, QTreeWidgetItem* parentItem = nullptr);
|
QTreeWidgetItem* addModuleToTreeWidgetAMM(Module* module, bool flOnlyActive = false, QTreeWidgetItem* parentItem = nullptr);
|
||||||
void loadAMMtasksFromXML(QByteArray array);
|
void loadAMMtasksFromXML(QByteArray array);
|
||||||
void domElementParser(QDomElement element, Module* moduleParent);
|
void domElementParserAMM(QDomElement element, Module* moduleParent);
|
||||||
void deleteAllModuls();
|
void deleteAllModulsAMM();
|
||||||
|
|
||||||
|
void loadFIMtasksFromXML(QByteArray array);
|
||||||
|
void deleteAllTaskAmmFim();
|
||||||
|
|
||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
void slot_prepareListItems(QByteArray array, QList<Module*>* listAllModules, bool flOnlyActive);
|
void slot_prepareAMMListItems(QByteArray array, QList<Module*>* listAllModulesAMM, bool flOnlyActive);
|
||||||
void slot_prepareListItemsForTrainee(QList<TaskAmmFim> listTask, QList<Module*>* listAllModules);
|
void slot_prepareAMMListItemsForTrainee(QList<TaskAmmFim> listTask, QList<Module*>* listAllModulesAMM);
|
||||||
|
|
||||||
|
void slot_prepareFIMListItems(QByteArray array, QList<TaskAmmFim*>* listTaskAmmFim);
|
||||||
|
void slot_prepareFIMListItemsForTrainee(QList<TaskAmmFim> listTask, QList<TaskAmmFim*>* listTaskAmmFim);
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void signal_listItemsReady(QList<QTreeWidgetItem*> listItems);
|
void signal_listAMMItemsReady(QList<QTreeWidgetItem*> listItemsAMM);
|
||||||
|
|
||||||
|
void signal_listFIMItemsReady(QList<QTreeWidgetItem*> listItemsFIM);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QList<QTreeWidgetItem*> listItems;
|
QList<QTreeWidgetItem*> listItems;
|
||||||
QList<Module*>* listAllModules;
|
|
||||||
|
QList<Module*>* listAllModulesAMM;
|
||||||
|
QList<TaskAmmFim*>* listTaskAmmFim;
|
||||||
|
|
||||||
bool flagStop;
|
bool flagStop;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user