mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-27 19:45:43 +03:00
Не слетает выбранная задача при обновлении дерева
This commit is contained in:
@@ -21,7 +21,8 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, TypeListTre
|
|||||||
taskTreePreparation(nullptr),
|
taskTreePreparation(nullptr),
|
||||||
waitAnimationWidget(nullptr),
|
waitAnimationWidget(nullptr),
|
||||||
dlgCheckerTask(nullptr),
|
dlgCheckerTask(nullptr),
|
||||||
flOnlyActive(false)
|
flOnlyActive(false),
|
||||||
|
lastCurrentID(0)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
@@ -30,7 +31,8 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, TypeListTre
|
|||||||
treeWidget = new QTreeWidget();
|
treeWidget = new QTreeWidget();
|
||||||
ui->horizontalLayout_Tree->addWidget(treeWidget);
|
ui->horizontalLayout_Tree->addWidget(treeWidget);
|
||||||
|
|
||||||
connect(treeWidget, &QTreeWidget::currentItemChanged, this, &AMMtasksWidget::on_treeWidgetCurrentItemChanged);
|
//connect(treeWidget, &QTreeWidget::currentItemChanged, this, &AMMtasksWidget::on_treeWidgetItemClicked);
|
||||||
|
connect(treeWidget, &QTreeWidget::itemClicked, this, &AMMtasksWidget::on_treeWidgetItemClicked);
|
||||||
|
|
||||||
preparationTreeWidget();
|
preparationTreeWidget();
|
||||||
|
|
||||||
@@ -144,9 +146,9 @@ void AMMtasksWidget::changeEvent(QEvent *event)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AMMtasksWidget::on_treeWidgetCurrentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous)
|
void AMMtasksWidget::on_treeWidgetItemClicked(QTreeWidgetItem *item, int column)
|
||||||
{
|
{
|
||||||
if(current == nullptr)
|
if(item == nullptr)
|
||||||
{
|
{
|
||||||
ui->btnDelete->setEnabled(false);
|
ui->btnDelete->setEnabled(false);
|
||||||
ui->btnCheck->setEnabled(false);
|
ui->btnCheck->setEnabled(false);
|
||||||
@@ -158,14 +160,21 @@ void AMMtasksWidget::on_treeWidgetCurrentItemChanged(QTreeWidgetItem *current, Q
|
|||||||
ui->btnDelete->setEnabled(true);
|
ui->btnDelete->setEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
int id = current->text(ColumnsTreeAMM::clmnAMM_ID).toInt();
|
int id = item->text(ColumnsTreeAMM::clmnAMM_ID).toInt();
|
||||||
|
|
||||||
|
TaskAmmFim task = taskTreePreparation->getTaskAMMbyID(id);
|
||||||
|
|
||||||
if(taskTreePreparation->getTypeModuleAMMbyID(id) == ModuleType::TYPE_PM)
|
if(taskTreePreparation->getTypeModuleAMMbyID(id) == ModuleType::TYPE_PM)
|
||||||
ui->btnAssignTask->setEnabled(false);
|
ui->btnAssignTask->setEnabled(false);
|
||||||
else
|
else
|
||||||
|
{
|
||||||
ui->btnAssignTask->setEnabled(true);
|
ui->btnAssignTask->setEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(task.getID())
|
||||||
|
lastCurrentID = id;
|
||||||
|
}
|
||||||
|
|
||||||
void AMMtasksWidget::slot_NeedUpdateUI()
|
void AMMtasksWidget::slot_NeedUpdateUI()
|
||||||
{
|
{
|
||||||
qDebug() << "AMMtasksWidget::slot_NeedUpdateUI thread ID " << QThread::currentThreadId();
|
qDebug() << "AMMtasksWidget::slot_NeedUpdateUI thread ID " << QThread::currentThreadId();
|
||||||
@@ -227,6 +236,9 @@ void AMMtasksWidget::slot_AMMlistItemsReady(QList<QTreeWidgetItem *> listItems)
|
|||||||
if(item != nullptr)
|
if(item != nullptr)
|
||||||
treeWidget->setCurrentItem(item);
|
treeWidget->setCurrentItem(item);
|
||||||
|
|
||||||
|
if(type == TypeListTreeAMMFIM::listForTrainee)
|
||||||
|
setCurrentTask(lastCurrentID);
|
||||||
|
|
||||||
waitAnimationWidget->hideWithStop();
|
waitAnimationWidget->hideWithStop();
|
||||||
|
|
||||||
ui->btnOnlyActive->setEnabled(true);
|
ui->btnOnlyActive->setEnabled(true);
|
||||||
@@ -322,6 +334,20 @@ void AMMtasksWidget::assignTaskAMMtoTrainee()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AMMtasksWidget::setCurrentTask(int id)
|
||||||
|
{
|
||||||
|
for(int i = 0; i < treeWidget->topLevelItemCount(); i++)
|
||||||
|
{
|
||||||
|
QTreeWidgetItem * item = treeWidget->topLevelItem(i);
|
||||||
|
if(item != nullptr)
|
||||||
|
if(item->text(ColumnsTreeAMM::clmnAMM_ID).toInt() == id)
|
||||||
|
{
|
||||||
|
treeWidget->setCurrentItem(item);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void AMMtasksWidget::on_btnDelete_clicked()
|
void AMMtasksWidget::on_btnDelete_clicked()
|
||||||
{
|
{
|
||||||
QTreeWidgetItem *treeItemCurrent = treeWidget->currentItem();
|
QTreeWidgetItem *treeItemCurrent = treeWidget->currentItem();
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ protected:
|
|||||||
void changeEvent(QEvent * event) override;
|
void changeEvent(QEvent * event) override;
|
||||||
|
|
||||||
private Q_SLOTS:
|
private Q_SLOTS:
|
||||||
void on_treeWidgetCurrentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous);
|
void on_treeWidgetItemClicked(QTreeWidgetItem *item, int column);
|
||||||
void on_btnDelete_clicked();
|
void on_btnDelete_clicked();
|
||||||
void on_btnCheck_clicked();
|
void on_btnCheck_clicked();
|
||||||
void on_btnAssignTask_clicked();
|
void on_btnAssignTask_clicked();
|
||||||
@@ -57,6 +57,8 @@ private:
|
|||||||
void loadTasksAMM(bool flRequestFirst = true);
|
void loadTasksAMM(bool flRequestFirst = true);
|
||||||
void assignTaskAMMtoTrainee();
|
void assignTaskAMMtoTrainee();
|
||||||
|
|
||||||
|
void setCurrentTask(int id);
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void signal_prepareAMMListItems(QByteArray array, bool flOnlyActive, bool flRequestFirst);
|
void signal_prepareAMMListItems(QByteArray array, bool flOnlyActive, bool flRequestFirst);
|
||||||
void signal_prepareAMMListItemsForTrainee(QList<TaskAmmFim> listTask);
|
void signal_prepareAMMListItemsForTrainee(QList<TaskAmmFim> listTask);
|
||||||
@@ -86,6 +88,8 @@ private:
|
|||||||
DialogChekerTask* dlgCheckerTask;
|
DialogChekerTask* dlgCheckerTask;
|
||||||
|
|
||||||
bool flOnlyActive; //AMM
|
bool flOnlyActive; //AMM
|
||||||
|
|
||||||
|
int lastCurrentID;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // AMMTASKSWIDGET_H
|
#endif // AMMTASKSWIDGET_H
|
||||||
|
|||||||
@@ -22,7 +22,8 @@ FIMtasksWidget::FIMtasksWidget(ConnectorToServer* connectorToServer, TypeListTre
|
|||||||
taskTreePreparation(nullptr),
|
taskTreePreparation(nullptr),
|
||||||
waitAnimationWidget(nullptr),
|
waitAnimationWidget(nullptr),
|
||||||
dlgCheckerTask(nullptr),
|
dlgCheckerTask(nullptr),
|
||||||
userName("")
|
userName(""),
|
||||||
|
lastCurrentID(0)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
@@ -31,7 +32,8 @@ FIMtasksWidget::FIMtasksWidget(ConnectorToServer* connectorToServer, TypeListTre
|
|||||||
treeWidget = new QTreeWidget();
|
treeWidget = new QTreeWidget();
|
||||||
ui->horizontalLayout_Tree->addWidget(treeWidget);
|
ui->horizontalLayout_Tree->addWidget(treeWidget);
|
||||||
|
|
||||||
connect(treeWidget, &QTreeWidget::currentItemChanged, this, &FIMtasksWidget::on_treeWidgetCurrentItemChanged);
|
//connect(treeWidget, &QTreeWidget::currentItemChanged, this, &FIMtasksWidget::on_treeWidgetCurrentItemChanged);
|
||||||
|
connect(treeWidget, &QTreeWidget::itemClicked, this, &FIMtasksWidget::on_treeWidgetItemClicked);
|
||||||
|
|
||||||
preparationTreeWidget();
|
preparationTreeWidget();
|
||||||
|
|
||||||
@@ -153,9 +155,9 @@ void FIMtasksWidget::changeEvent(QEvent *event)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void FIMtasksWidget::on_treeWidgetCurrentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous)
|
void FIMtasksWidget::on_treeWidgetItemClicked(QTreeWidgetItem *item, int column)
|
||||||
{
|
{
|
||||||
if(current == nullptr)
|
if(item == nullptr)
|
||||||
{
|
{
|
||||||
ui->btnDelete->setEnabled(false);
|
ui->btnDelete->setEnabled(false);
|
||||||
ui->btnCheck->setEnabled(false);
|
ui->btnCheck->setEnabled(false);
|
||||||
@@ -164,10 +166,10 @@ void FIMtasksWidget::on_treeWidgetCurrentItemChanged(QTreeWidgetItem *current, Q
|
|||||||
|
|
||||||
QString code = "";
|
QString code = "";
|
||||||
|
|
||||||
QTreeWidgetItem *treeItemParent = current->parent();
|
QTreeWidgetItem *treeItemParent = item->parent();
|
||||||
if(treeItemParent == nullptr)
|
if(treeItemParent == nullptr)
|
||||||
{//Выбрана задача
|
{//Выбрана задача
|
||||||
int id = current->text(ColumnsTreeFIM::clmnFIM_ID).toInt();
|
int id = item->text(ColumnsTreeFIM::clmnFIM_ID).toInt();
|
||||||
|
|
||||||
TaskAmmFim task = taskTreePreparation->getTaskFIMbyID(id);
|
TaskAmmFim task = taskTreePreparation->getTaskFIMbyID(id);
|
||||||
|
|
||||||
@@ -178,6 +180,10 @@ void FIMtasksWidget::on_treeWidgetCurrentItemChanged(QTreeWidgetItem *current, Q
|
|||||||
ui->btnDelete->setEnabled(false);
|
ui->btnDelete->setEnabled(false);
|
||||||
ui->btnCheck->setEnabled(false);
|
ui->btnCheck->setEnabled(false);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
lastCurrentID = task.getID();
|
||||||
|
}
|
||||||
|
|
||||||
code = task.title;
|
code = task.title;
|
||||||
|
|
||||||
@@ -266,6 +272,8 @@ void FIMtasksWidget::slot_FIMlistItemsReady(QList<QTreeWidgetItem *> listItems)
|
|||||||
treeWidget->expandAll();
|
treeWidget->expandAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setCurrentTask(lastCurrentID);
|
||||||
|
|
||||||
waitAnimationWidget->hideWithStop();
|
waitAnimationWidget->hideWithStop();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -444,4 +452,18 @@ void FIMtasksWidget::updateTaskItem(QTreeWidgetItem *itemTask)
|
|||||||
itemTask->setExpanded(false);
|
itemTask->setExpanded(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FIMtasksWidget::setCurrentTask(int id)
|
||||||
|
{
|
||||||
|
for(int i = 0; i < treeWidget->topLevelItemCount(); i++)
|
||||||
|
{
|
||||||
|
QTreeWidgetItem * item = treeWidget->topLevelItem(i);
|
||||||
|
if(item != nullptr)
|
||||||
|
if(item->text(ColumnsTreeFIM::clmnFIM_ID).toInt() == id)
|
||||||
|
{
|
||||||
|
treeWidget->setCurrentItem(item);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ protected:
|
|||||||
void changeEvent(QEvent * event) override;
|
void changeEvent(QEvent * event) override;
|
||||||
|
|
||||||
private Q_SLOTS:
|
private Q_SLOTS:
|
||||||
void on_treeWidgetCurrentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous);
|
void on_treeWidgetItemClicked(QTreeWidgetItem *item, int column);
|
||||||
void on_btnDelete_clicked();
|
void on_btnDelete_clicked();
|
||||||
void on_btnCheck_clicked();
|
void on_btnCheck_clicked();
|
||||||
void on_btnAssignTask_clicked();
|
void on_btnAssignTask_clicked();
|
||||||
@@ -58,6 +58,8 @@ private:
|
|||||||
void assignTaskFIMtoTrainee();
|
void assignTaskFIMtoTrainee();
|
||||||
void updateTaskItem(QTreeWidgetItem *itemTask);
|
void updateTaskItem(QTreeWidgetItem *itemTask);
|
||||||
|
|
||||||
|
void setCurrentTask(int id);
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void signal_prepareFIMListItems(QByteArray array);
|
void signal_prepareFIMListItems(QByteArray array);
|
||||||
void signal_prepareFIMListItemsForTrainee(QList<TaskAmmFim> listTask);
|
void signal_prepareFIMListItemsForTrainee(QList<TaskAmmFim> listTask);
|
||||||
@@ -87,6 +89,8 @@ private:
|
|||||||
DialogChekerTask* dlgCheckerTask;
|
DialogChekerTask* dlgCheckerTask;
|
||||||
|
|
||||||
QString userName; //FIM
|
QString userName; //FIM
|
||||||
|
|
||||||
|
int lastCurrentID;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // FIMTASKSWIDGET_H
|
#endif // FIMTASKSWIDGET_H
|
||||||
|
|||||||
Reference in New Issue
Block a user