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:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user