+
+ foreach(ObjectPtr aObj, aNotChanged)
+ aToSelect.removeAll(aObj);
+
+ bool aIsBlock = aSelectModel->blockSignals(true);
+ foreach(QModelIndex aIdx, aUnselect) {
+ aSelectModel->select(aIdx, QItemSelectionModel::Deselect);
+ myTreeView->update(aIdx);
+ }
+
+ QModelIndex aIndex0, aIndex1, aIndex2, aCurrent;
+ foreach(ObjectPtr aFeature, aToSelect) {
+ aIndex1 = myDocModel->objectIndex(aFeature, 1);
+ if (aIndex1.isValid()) {
+ if (!aCurrent.isValid())
+ aCurrent = aIndex1;
+ aIndex0 = myDocModel->objectIndex(aFeature, 0);
+ aIndex2 = myDocModel->objectIndex(aFeature, 2);
+ aSelectModel->select(aIndex1, QItemSelectionModel::Select | QItemSelectionModel::Rows);
+ myTreeView->update(aIndex0);
+ myTreeView->update(aIndex1);
+ myTreeView->update(aIndex2);
+ }
+ }
+ aSelectModel->setCurrentIndex(aCurrent, QItemSelectionModel::NoUpdate);
+ aSelectModel->blockSignals(aIsBlock);