mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-28 19:55:48 +03:00
Перенес формирование Item ов в отдельный поток
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
#include <QDomDocument>
|
||||
#include <QMessageBox>
|
||||
#include <QThread>
|
||||
#include <QResizeEvent>
|
||||
#include "ammtaskswidget.h"
|
||||
#include "ui_ammtaskswidget.h"
|
||||
|
||||
@@ -24,6 +25,20 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, QWidget *pa
|
||||
ui->btnAssignTaskToTrainee->setEnabled(false);
|
||||
|
||||
qDebug() << "AMMtasksWidget init thread ID " << QThread::currentThreadId();
|
||||
|
||||
threadPreparation = new QThread();
|
||||
taskTreePreparation = new TaskTreePreparation();
|
||||
taskTreePreparation->moveToThread(threadPreparation);
|
||||
threadPreparation->start();
|
||||
threadPreparation->setPriority(QThread::HighestPriority);
|
||||
connect(this, &AMMtasksWidget::signal_prepareListItems, taskTreePreparation, &TaskTreePreparation::slot_prepareListItems);
|
||||
connect(taskTreePreparation, &TaskTreePreparation::signal_listItemsReady, this, &AMMtasksWidget::slot_listItemsReady);
|
||||
|
||||
waitAnimationWidget = new WaitAnimationWidget;
|
||||
QMovie *movie = new QMovie(":/resources/icons/762.gif");
|
||||
waitAnimationWidget->setParent(this);
|
||||
waitAnimationWidget->initialize(movie,this);
|
||||
waitAnimationWidget->moveToThread(threadPreparation);
|
||||
}
|
||||
|
||||
AMMtasksWidget::~AMMtasksWidget()
|
||||
@@ -32,6 +47,12 @@ AMMtasksWidget::~AMMtasksWidget()
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void AMMtasksWidget::resizeEvent(QResizeEvent *event)
|
||||
{
|
||||
QSize size = event->size();
|
||||
waitAnimationWidget->resize(size);
|
||||
}
|
||||
|
||||
void AMMtasksWidget::on_treeWidget_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous)
|
||||
{
|
||||
if(current == nullptr)
|
||||
@@ -85,10 +106,26 @@ void AMMtasksWidget::loadTasksAMM()
|
||||
//Обновление дерева
|
||||
treeWidget->clear();
|
||||
|
||||
waitAnimationWidget->showWithPlay();
|
||||
|
||||
QByteArray array = connectorToServer->getListTaskAmmArray();
|
||||
loadAMMtasksFromXML(array);
|
||||
|
||||
fillTree();
|
||||
//fillTree();
|
||||
signal_prepareListItems(listAllModules);
|
||||
}
|
||||
|
||||
void AMMtasksWidget::slot_listItemsReady(QList<QTreeWidgetItem *> listItems)
|
||||
{
|
||||
//Обновление дерева
|
||||
treeWidget->clear();
|
||||
|
||||
for(QTreeWidgetItem * item : listItems)
|
||||
{
|
||||
treeWidget->addTopLevelItem(item);
|
||||
}
|
||||
|
||||
waitAnimationWidget->hideWithStop();
|
||||
}
|
||||
|
||||
void AMMtasksWidget::domElementParser(QDomElement element, Module* moduleParent)
|
||||
@@ -258,11 +295,12 @@ void AMMtasksWidget::fillTree()
|
||||
|
||||
for(Module* module : listAllModules)
|
||||
{
|
||||
addModuleToTreeWidget(module);
|
||||
QTreeWidgetItem* item = addModuleToTreeWidget(module);
|
||||
treeWidget->addTopLevelItem(item);
|
||||
}
|
||||
}
|
||||
|
||||
void AMMtasksWidget::addModuleToTreeWidget(Module *module, QTreeWidgetItem* parentItem)
|
||||
QTreeWidgetItem* AMMtasksWidget::addModuleToTreeWidget(Module *module, QTreeWidgetItem* parentItem)
|
||||
{
|
||||
QTreeWidgetItem* itemModule = nullptr;
|
||||
|
||||
@@ -276,7 +314,8 @@ void AMMtasksWidget::addModuleToTreeWidget(Module *module, QTreeWidgetItem* pare
|
||||
}
|
||||
else
|
||||
{
|
||||
itemModule = new QTreeWidgetItem(treeWidget);
|
||||
//itemModule = new QTreeWidgetItem(treeWidget);
|
||||
itemModule = new QTreeWidgetItem();
|
||||
}
|
||||
|
||||
if(module->getType() == ModuleType::TYPE_PM)
|
||||
@@ -301,6 +340,8 @@ void AMMtasksWidget::addModuleToTreeWidget(Module *module, QTreeWidgetItem* pare
|
||||
|
||||
itemModule->setText(ColumnsTree::clmn_PMorDM, text);
|
||||
itemModule->setText(ColumnsTree::clmn_ID, ID);
|
||||
|
||||
return itemModule;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user