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/762.gif</file>
|
||||||
<file>resources/icons/assignTask.png</file>
|
<file>resources/icons/assignTask.png</file>
|
||||||
<file>resources/icons/delete.png</file>
|
<file>resources/icons/delete.png</file>
|
||||||
|
<file>resources/icons/filter.png</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</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),
|
threadAnimation(nullptr),
|
||||||
taskTreePreparation(nullptr),
|
taskTreePreparation(nullptr),
|
||||||
waitAnimationWidget(nullptr),
|
waitAnimationWidget(nullptr),
|
||||||
accessAssignTask(false)
|
accessAssignTask(false),
|
||||||
|
flOnlyActive(false)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
@@ -55,6 +56,8 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, TypeList ty
|
|||||||
ui->btnDelete->setEnabled(false);
|
ui->btnDelete->setEnabled(false);
|
||||||
if(type == TypeList::listCommon)
|
if(type == TypeList::listCommon)
|
||||||
ui->btnDelete->setVisible(false);
|
ui->btnDelete->setVisible(false);
|
||||||
|
else
|
||||||
|
ui->btnOnlyActive->setVisible(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
AMMtasksWidget::~AMMtasksWidget()
|
AMMtasksWidget::~AMMtasksWidget()
|
||||||
@@ -186,16 +189,17 @@ void AMMtasksWidget::slot_UpdateTasksAMMforTrainee(int trainee_id)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AMMtasksWidget::loadTasksAMM()
|
void AMMtasksWidget::loadTasksAMM(bool flRequestFromDB)
|
||||||
{
|
{
|
||||||
//Обновление дерева
|
//Обновление дерева
|
||||||
treeWidget->clear();
|
treeWidget->clear();
|
||||||
|
|
||||||
waitAnimationWidget->showWithPlay();
|
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)
|
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_btnDelete_clicked();
|
||||||
|
|
||||||
|
void on_btnOnlyActive_clicked();
|
||||||
|
|
||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
void slot_AssignTaskAMMtoTrainee();
|
void slot_AssignTaskAMMtoTrainee();
|
||||||
|
|
||||||
@@ -68,10 +70,10 @@ private:
|
|||||||
Module* searchModuleByID(int id);
|
Module* searchModuleByID(int id);
|
||||||
void preparationTreeWidget();
|
void preparationTreeWidget();
|
||||||
void reSetHeadTreeWidget();
|
void reSetHeadTreeWidget();
|
||||||
void loadTasksAMM();
|
void loadTasksAMM(bool flRequestFromDB = true);
|
||||||
|
|
||||||
Q_SIGNALS:
|
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);
|
void signal_prepareListItemsForTrainee(QList<TaskAmmFim> listTask, QList<Module*>* listAllModules);
|
||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
void slot_listItemsReady(QList<QTreeWidgetItem*> listItems);
|
void slot_listItemsReady(QList<QTreeWidgetItem*> listItems);
|
||||||
@@ -92,6 +94,10 @@ private:
|
|||||||
TaskTreePreparation* taskTreePreparation;
|
TaskTreePreparation* taskTreePreparation;
|
||||||
WaitAnimationWidget *waitAnimationWidget;
|
WaitAnimationWidget *waitAnimationWidget;
|
||||||
bool accessAssignTask;
|
bool accessAssignTask;
|
||||||
|
|
||||||
|
bool flOnlyActive;
|
||||||
|
|
||||||
|
QByteArray arrayAMM;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // AMMTASKSWIDGET_H
|
#endif // AMMTASKSWIDGET_H
|
||||||
|
|||||||
@@ -40,8 +40,43 @@
|
|||||||
</property>
|
</property>
|
||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</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>
|
<item>
|
||||||
<widget class="QToolButton" name="btnDelete">
|
<widget class="QToolButton" name="btnDelete">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>50</width>
|
||||||
|
<height>50</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Delete</string>
|
<string>Delete</string>
|
||||||
</property>
|
</property>
|
||||||
|
|||||||
@@ -5,7 +5,8 @@ int Module::lastID = 0;
|
|||||||
Module::Module():
|
Module::Module():
|
||||||
type (ModuleType::TYPE_PM),
|
type (ModuleType::TYPE_PM),
|
||||||
parentModule(nullptr),
|
parentModule(nullptr),
|
||||||
ID(0)
|
ID(0),
|
||||||
|
isActive(false)
|
||||||
{
|
{
|
||||||
ID = ++lastID;
|
ID = ++lastID;
|
||||||
}
|
}
|
||||||
@@ -38,6 +39,19 @@ Module *Module::getModuleByID(int id)
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Module::setIsActiveTrue()
|
||||||
|
{
|
||||||
|
this->isActive = true;
|
||||||
|
|
||||||
|
if(parentModule)
|
||||||
|
parentModule->setIsActiveTrue();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Module::getIsActive()
|
||||||
|
{
|
||||||
|
return this->isActive;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
PM::PM():
|
PM::PM():
|
||||||
|
|||||||
@@ -20,11 +20,15 @@ public:
|
|||||||
void setParentModule(Module* parentModule){ this->parentModule = parentModule; };
|
void setParentModule(Module* parentModule){ this->parentModule = parentModule; };
|
||||||
Module* getModuleByID(int id);
|
Module* getModuleByID(int id);
|
||||||
|
|
||||||
|
void setIsActiveTrue();
|
||||||
|
bool getIsActive();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
ModuleType type;
|
ModuleType type;
|
||||||
Module* parentModule;
|
Module* parentModule;
|
||||||
int ID;
|
int ID;
|
||||||
static int lastID;
|
static int lastID;
|
||||||
|
bool isActive;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -21,13 +21,16 @@ void TaskTreePreparation::stopParser()
|
|||||||
flagStop = true;
|
flagStop = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
QTreeWidgetItem *TaskTreePreparation::addModuleToTreeWidget(Module *module, QTreeWidgetItem *parentItem)
|
QTreeWidgetItem *TaskTreePreparation::addModuleToTreeWidget(Module *module, bool flOnlyActive, QTreeWidgetItem *parentItem)
|
||||||
{
|
{
|
||||||
QTreeWidgetItem* itemModule = nullptr;
|
QTreeWidgetItem* itemModule = nullptr;
|
||||||
|
|
||||||
if(flagStop)
|
if(flagStop)
|
||||||
return itemModule;
|
return itemModule;
|
||||||
|
|
||||||
|
if(flOnlyActive && !module->getIsActive())
|
||||||
|
return nullptr;
|
||||||
|
|
||||||
QString text = "";
|
QString text = "";
|
||||||
QString ID = QString::number(module->getID());
|
QString ID = QString::number(module->getID());
|
||||||
QString code = "";
|
QString code = "";
|
||||||
@@ -45,7 +48,7 @@ QTreeWidgetItem *TaskTreePreparation::addModuleToTreeWidget(Module *module, QTre
|
|||||||
|
|
||||||
for(Module* module : PMmodul->getListChildModules())
|
for(Module* module : PMmodul->getListChildModules())
|
||||||
{
|
{
|
||||||
addModuleToTreeWidget(module, itemModule);
|
addModuleToTreeWidget(module, flOnlyActive, itemModule);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -158,6 +161,10 @@ void TaskTreePreparation::domElementParser(QDomElement element, Module* modulePa
|
|||||||
PM* PMmodulParent = static_cast<PM*>(moduleParent);
|
PM* PMmodulParent = static_cast<PM*>(moduleParent);
|
||||||
PMmodulParent->addChildModule(module);
|
PMmodulParent->addChildModule(module);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Активность
|
||||||
|
if(nodeMap.namedItem("active").nodeValue() == "true")
|
||||||
|
module->setIsActiveTrue();
|
||||||
}
|
}
|
||||||
else if(name == "rus" || name == "eng")
|
else if(name == "rus" || name == "eng")
|
||||||
{
|
{
|
||||||
@@ -201,7 +208,7 @@ void TaskTreePreparation::domElementParser(QDomElement element, Module* modulePa
|
|||||||
}while (! (childElement = childElement.nextSiblingElement()).isNull());
|
}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();
|
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)
|
for(Module* module : *this->listAllModules)
|
||||||
{
|
{
|
||||||
QTreeWidgetItem* item = addModuleToTreeWidget(module);
|
QTreeWidgetItem* item = addModuleToTreeWidget(module, flOnlyActive);
|
||||||
listItems.append(item);
|
listItems.append(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -230,7 +237,6 @@ void TaskTreePreparation::slot_prepareListItemsForTrainee(QList<TaskAmmFim> list
|
|||||||
|
|
||||||
listItems.clear();
|
listItems.clear();
|
||||||
|
|
||||||
|
|
||||||
for(TaskAmmFim task : listTask)
|
for(TaskAmmFim task : listTask)
|
||||||
{
|
{
|
||||||
QTreeWidgetItem* item = nullptr;
|
QTreeWidgetItem* item = nullptr;
|
||||||
|
|||||||
@@ -25,13 +25,13 @@ public:
|
|||||||
void stopParser();
|
void stopParser();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QTreeWidgetItem* addModuleToTreeWidget(Module* module, QTreeWidgetItem* parentItem = nullptr);
|
QTreeWidgetItem* addModuleToTreeWidget(Module* module, bool flOnlyActive = false, QTreeWidgetItem* parentItem = nullptr);
|
||||||
void loadAMMtasksFromXML(QByteArray array);
|
void loadAMMtasksFromXML(QByteArray array);
|
||||||
void domElementParser(QDomElement element, Module* moduleParent);
|
void domElementParser(QDomElement element, Module* moduleParent);
|
||||||
void deleteAllModuls();
|
void deleteAllModuls();
|
||||||
|
|
||||||
public Q_SLOTS:
|
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);
|
void slot_prepareListItemsForTrainee(QList<TaskAmmFim> listTask, QList<Module*>* listAllModules);
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
|
|||||||
Reference in New Issue
Block a user