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:
67
InstructorsAndTrainees/tasks/tasktreepreparation.cpp
Normal file
67
InstructorsAndTrainees/tasks/tasktreepreparation.cpp
Normal file
@@ -0,0 +1,67 @@
|
||||
#include <QThread>
|
||||
#include <QDebug>
|
||||
#include "tasktreepreparation.h"
|
||||
|
||||
TaskTreePreparation::TaskTreePreparation(QObject *parent) : QObject(parent)
|
||||
{
|
||||
qDebug() << "TaskTreePreparation init thread ID " << QThread::currentThreadId();
|
||||
}
|
||||
|
||||
QTreeWidgetItem *TaskTreePreparation::addModuleToTreeWidget(Module *module, QTreeWidgetItem *parentItem)
|
||||
{
|
||||
QTreeWidgetItem* itemModule = nullptr;
|
||||
|
||||
QString text;
|
||||
QString ID = QString::number(module->getID());
|
||||
|
||||
if(parentItem)
|
||||
{
|
||||
itemModule = new QTreeWidgetItem();
|
||||
parentItem->addChild(itemModule);
|
||||
}
|
||||
else
|
||||
{
|
||||
//itemModule = new QTreeWidgetItem(treeWidget);
|
||||
itemModule = new QTreeWidgetItem();
|
||||
}
|
||||
|
||||
if(module->getType() == ModuleType::TYPE_PM)
|
||||
{
|
||||
PM* PMmodul = static_cast<PM*>(module);
|
||||
text = PMmodul->getLangStructRus().title;
|
||||
|
||||
for(Module* module : PMmodul->getListChildModules())
|
||||
{
|
||||
addModuleToTreeWidget(module, itemModule);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
DM* DMmodul = static_cast<DM*>(module);
|
||||
text = DMmodul->getLangStructRus().techName;
|
||||
|
||||
//itemModule->setFlags(itemModule->flags() | Qt::ItemIsUserCheckable);
|
||||
//itemModule->setCheckState(0, Qt::Checked);
|
||||
itemModule->setIcon(0, QIcon(":/resources/icons/procedure.png"));
|
||||
}
|
||||
|
||||
itemModule->setText(0, text);
|
||||
itemModule->setText(1, ID);
|
||||
|
||||
return itemModule;
|
||||
}
|
||||
|
||||
void TaskTreePreparation::slot_prepareListItems(QList<Module *> listAllModules)
|
||||
{
|
||||
qDebug() << "TaskTreePreparation::slot_prepareListItems thread ID " << QThread::currentThreadId();
|
||||
|
||||
listItems.clear();
|
||||
|
||||
for(Module* module : listAllModules)
|
||||
{
|
||||
QTreeWidgetItem* item = addModuleToTreeWidget(module);
|
||||
listItems.append(item);
|
||||
}
|
||||
|
||||
Q_EMIT signal_listItemsReady(listItems);
|
||||
}
|
||||
Reference in New Issue
Block a user