Не слетает выбранная задача при обновлении дерева

This commit is contained in:
2025-10-14 11:52:03 +03:00
parent 5d5267f859
commit 6af6ca1ab3
4 changed files with 69 additions and 13 deletions

View File

@@ -22,7 +22,8 @@ FIMtasksWidget::FIMtasksWidget(ConnectorToServer* connectorToServer, TypeListTre
taskTreePreparation(nullptr),
waitAnimationWidget(nullptr),
dlgCheckerTask(nullptr),
userName("")
userName(""),
lastCurrentID(0)
{
ui->setupUi(this);
@@ -31,7 +32,8 @@ FIMtasksWidget::FIMtasksWidget(ConnectorToServer* connectorToServer, TypeListTre
treeWidget = new QTreeWidget();
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();
@@ -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->btnCheck->setEnabled(false);
@@ -164,10 +166,10 @@ void FIMtasksWidget::on_treeWidgetCurrentItemChanged(QTreeWidgetItem *current, Q
QString code = "";
QTreeWidgetItem *treeItemParent = current->parent();
QTreeWidgetItem *treeItemParent = item->parent();
if(treeItemParent == nullptr)
{//Выбрана задача
int id = current->text(ColumnsTreeFIM::clmnFIM_ID).toInt();
int id = item->text(ColumnsTreeFIM::clmnFIM_ID).toInt();
TaskAmmFim task = taskTreePreparation->getTaskFIMbyID(id);
@@ -178,6 +180,10 @@ void FIMtasksWidget::on_treeWidgetCurrentItemChanged(QTreeWidgetItem *current, Q
ui->btnDelete->setEnabled(false);
ui->btnCheck->setEnabled(false);
}
else
{
lastCurrentID = task.getID();
}
code = task.title;
@@ -266,6 +272,8 @@ void FIMtasksWidget::slot_FIMlistItemsReady(QList<QTreeWidgetItem *> listItems)
treeWidget->expandAll();
}
setCurrentTask(lastCurrentID);
waitAnimationWidget->hideWithStop();
}
@@ -444,4 +452,18 @@ void FIMtasksWidget::updateTaskItem(QTreeWidgetItem *itemTask)
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;
}
}
}