mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-28 19:55:48 +03:00
Фильтрация АММ медленно
This commit is contained in:
@@ -43,5 +43,6 @@
|
||||
<file>resources/icons/762.gif</file>
|
||||
<file>resources/icons/assignTask.png</file>
|
||||
<file>resources/icons/delete.png</file>
|
||||
<file>resources/icons/filter.png</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
||||
BIN
InstructorsAndTrainees/resources/icons/filter.png
Normal file
BIN
InstructorsAndTrainees/resources/icons/filter.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 8.9 KiB |
@@ -19,7 +19,8 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, TypeList ty
|
||||
threadAnimation(nullptr),
|
||||
taskTreePreparation(nullptr),
|
||||
waitAnimationWidget(nullptr),
|
||||
accessAssignTask(false)
|
||||
accessAssignTask(false),
|
||||
flOnlyActive(false)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
@@ -55,6 +56,8 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, TypeList ty
|
||||
ui->btnDelete->setEnabled(false);
|
||||
if(type == TypeList::listCommon)
|
||||
ui->btnDelete->setVisible(false);
|
||||
else
|
||||
ui->btnOnlyActive->setVisible(false);
|
||||
}
|
||||
|
||||
AMMtasksWidget::~AMMtasksWidget()
|
||||
@@ -186,16 +189,17 @@ void AMMtasksWidget::slot_UpdateTasksAMMforTrainee(int trainee_id)
|
||||
}
|
||||
}
|
||||
|
||||
void AMMtasksWidget::loadTasksAMM()
|
||||
void AMMtasksWidget::loadTasksAMM(bool flRequestFromDB)
|
||||
{
|
||||
//Обновление дерева
|
||||
treeWidget->clear();
|
||||
|
||||
waitAnimationWidget->showWithPlay();
|
||||
|
||||
QByteArray array = connectorToServer->getListTaskAmmArray();
|
||||
if(flRequestFromDB)
|
||||
/*QByteArray array*/arrayAMM = connectorToServer->getListTaskAmmArray();
|
||||
|
||||
signal_prepareListItems(array, &listAllModules);
|
||||
emit signal_prepareListItems(/*array*/arrayAMM, &listAllModules, flOnlyActive);
|
||||
}
|
||||
|
||||
void AMMtasksWidget::slot_listItemsReady(QList<QTreeWidgetItem *> listItems)
|
||||
@@ -306,3 +310,19 @@ 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);
|
||||
}
|
||||
|
||||
@@ -50,6 +50,8 @@ private Q_SLOTS:
|
||||
|
||||
void on_btnDelete_clicked();
|
||||
|
||||
void on_btnOnlyActive_clicked();
|
||||
|
||||
public Q_SLOTS:
|
||||
void slot_AssignTaskAMMtoTrainee();
|
||||
|
||||
@@ -68,10 +70,10 @@ private:
|
||||
Module* searchModuleByID(int id);
|
||||
void preparationTreeWidget();
|
||||
void reSetHeadTreeWidget();
|
||||
void loadTasksAMM();
|
||||
void loadTasksAMM(bool flRequestFromDB = true);
|
||||
|
||||
Q_SIGNALS:
|
||||
void signal_prepareListItems(QByteArray array, QList<Module*>* listAllModules);
|
||||
void signal_prepareListItems(QByteArray array, QList<Module*>* listAllModules, bool flOnlyActive);
|
||||
void signal_prepareListItemsForTrainee(QList<TaskAmmFim> listTask, QList<Module*>* listAllModules);
|
||||
public Q_SLOTS:
|
||||
void slot_listItemsReady(QList<QTreeWidgetItem*> listItems);
|
||||
@@ -92,6 +94,10 @@ private:
|
||||
TaskTreePreparation* taskTreePreparation;
|
||||
WaitAnimationWidget *waitAnimationWidget;
|
||||
bool accessAssignTask;
|
||||
|
||||
bool flOnlyActive;
|
||||
|
||||
QByteArray arrayAMM;
|
||||
};
|
||||
|
||||
#endif // AMMTASKSWIDGET_H
|
||||
|
||||
@@ -40,8 +40,43 @@
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="btnOnlyActive">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>50</width>
|
||||
<height>50</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Active</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../resources.qrc">
|
||||
<normaloff>:/resources/icons/filter.png</normaloff>:/resources/icons/filter.png</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>32</width>
|
||||
<height>32</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="toolButtonStyle">
|
||||
<enum>Qt::ToolButtonTextUnderIcon</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="btnDelete">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>50</width>
|
||||
<height>50</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Delete</string>
|
||||
</property>
|
||||
|
||||
@@ -5,7 +5,8 @@ int Module::lastID = 0;
|
||||
Module::Module():
|
||||
type (ModuleType::TYPE_PM),
|
||||
parentModule(nullptr),
|
||||
ID(0)
|
||||
ID(0),
|
||||
isActive(false)
|
||||
{
|
||||
ID = ++lastID;
|
||||
}
|
||||
@@ -38,6 +39,19 @@ Module *Module::getModuleByID(int id)
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void Module::setIsActiveTrue()
|
||||
{
|
||||
this->isActive = true;
|
||||
|
||||
if(parentModule)
|
||||
parentModule->setIsActiveTrue();
|
||||
}
|
||||
|
||||
bool Module::getIsActive()
|
||||
{
|
||||
return this->isActive;
|
||||
}
|
||||
|
||||
|
||||
|
||||
PM::PM():
|
||||
|
||||
@@ -20,11 +20,15 @@ public:
|
||||
void setParentModule(Module* parentModule){ this->parentModule = parentModule; };
|
||||
Module* getModuleByID(int id);
|
||||
|
||||
void setIsActiveTrue();
|
||||
bool getIsActive();
|
||||
|
||||
protected:
|
||||
ModuleType type;
|
||||
Module* parentModule;
|
||||
int ID;
|
||||
static int lastID;
|
||||
bool isActive;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -25,13 +25,13 @@ public:
|
||||
void stopParser();
|
||||
|
||||
private:
|
||||
QTreeWidgetItem* addModuleToTreeWidget(Module* module, QTreeWidgetItem* parentItem = nullptr);
|
||||
QTreeWidgetItem* addModuleToTreeWidget(Module* module, bool flOnlyActive = false, QTreeWidgetItem* parentItem = nullptr);
|
||||
void loadAMMtasksFromXML(QByteArray array);
|
||||
void domElementParser(QDomElement element, Module* moduleParent);
|
||||
void deleteAllModuls();
|
||||
|
||||
public Q_SLOTS:
|
||||
void slot_prepareListItems(QByteArray array, QList<Module*>* listAllModules);
|
||||
void slot_prepareListItems(QByteArray array, QList<Module*>* listAllModules, bool flOnlyActive);
|
||||
void slot_prepareListItemsForTrainee(QList<TaskAmmFim> listTask, QList<Module*>* listAllModules);
|
||||
|
||||
Q_SIGNALS:
|
||||
|
||||
Reference in New Issue
Block a user