#include #include #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(module); text = PMmodul->getLangStructRus().title; for(Module* module : PMmodul->getListChildModules()) { addModuleToTreeWidget(module, itemModule); } } else { DM* DMmodul = static_cast(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 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); }