Фильтрация АММ медленно

This commit is contained in:
krivoshein
2025-04-02 14:46:33 +03:00
parent 3e8fa010e3
commit 910acdc87f
9 changed files with 102 additions and 16 deletions

View File

@@ -21,13 +21,16 @@ void TaskTreePreparation::stopParser()
flagStop = true;
}
QTreeWidgetItem *TaskTreePreparation::addModuleToTreeWidget(Module *module, QTreeWidgetItem *parentItem)
QTreeWidgetItem *TaskTreePreparation::addModuleToTreeWidget(Module *module, bool flOnlyActive, QTreeWidgetItem *parentItem)
{
QTreeWidgetItem* itemModule = nullptr;
if(flagStop)
return itemModule;
if(flOnlyActive && !module->getIsActive())
return nullptr;
QString text = "";
QString ID = QString::number(module->getID());
QString code = "";
@@ -45,7 +48,7 @@ QTreeWidgetItem *TaskTreePreparation::addModuleToTreeWidget(Module *module, QTre
for(Module* module : PMmodul->getListChildModules())
{
addModuleToTreeWidget(module, itemModule);
addModuleToTreeWidget(module, flOnlyActive, itemModule);
}
}
else
@@ -158,6 +161,10 @@ void TaskTreePreparation::domElementParser(QDomElement element, Module* modulePa
PM* PMmodulParent = static_cast<PM*>(moduleParent);
PMmodulParent->addChildModule(module);
}
//Активность
if(nodeMap.namedItem("active").nodeValue() == "true")
module->setIsActiveTrue();
}
else if(name == "rus" || name == "eng")
{
@@ -201,7 +208,7 @@ void TaskTreePreparation::domElementParser(QDomElement element, Module* modulePa
}while (! (childElement = childElement.nextSiblingElement()).isNull());
}
void TaskTreePreparation::slot_prepareListItems(QByteArray array, QList<Module*>* listAllModules)
void TaskTreePreparation::slot_prepareListItems(QByteArray array, QList<Module*>* listAllModules, bool flOnlyActive)
{
qDebug() << "TaskTreePreparation::slot_prepareListItems thread ID " << QThread::currentThreadId();
@@ -213,7 +220,7 @@ void TaskTreePreparation::slot_prepareListItems(QByteArray array, QList<Module*>
for(Module* module : *this->listAllModules)
{
QTreeWidgetItem* item = addModuleToTreeWidget(module);
QTreeWidgetItem* item = addModuleToTreeWidget(module, flOnlyActive);
listItems.append(item);
}
@@ -230,7 +237,6 @@ void TaskTreePreparation::slot_prepareListItemsForTrainee(QList<TaskAmmFim> list
listItems.clear();
for(TaskAmmFim task : listTask)
{
QTreeWidgetItem* item = nullptr;