when restoring object then only expand single items, not its parent items
This commit is contained in:
@@ -50,7 +50,7 @@ void Gui::ActiveObjectList::setObject(App::DocumentObject* obj, const char* name
|
||||
<Gui::ViewProviderDocumentObject*>(doc->getViewProvider(act));
|
||||
doc->signalHighlightObject(*viewProvider, mode, false);
|
||||
if (autoExpand)
|
||||
doc->signalExpandObject(*viewProvider, Gui::Collapse);
|
||||
doc->signalExpandObject(*viewProvider, Gui::CollapseItem);
|
||||
}
|
||||
|
||||
if (obj) {
|
||||
@@ -59,7 +59,7 @@ void Gui::ActiveObjectList::setObject(App::DocumentObject* obj, const char* name
|
||||
<Gui::ViewProviderDocumentObject*>(doc->getViewProvider(obj));
|
||||
doc->signalHighlightObject(*viewProvider, mode, true);
|
||||
if (autoExpand)
|
||||
doc->signalExpandObject(*viewProvider, Gui::Expand);
|
||||
doc->signalExpandObject(*viewProvider, Gui::ExpandPath);
|
||||
_ObjectMap[name] = obj;
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -829,7 +829,7 @@ void Document::RestoreDocFile(Base::Reader &reader)
|
||||
pObj->Restore(xmlReader);
|
||||
if (pObj && expanded) {
|
||||
Gui::ViewProviderDocumentObject* vp = static_cast<Gui::ViewProviderDocumentObject*>(pObj);
|
||||
this->signalExpandObject(*vp, Gui::Expand);
|
||||
this->signalExpandObject(*vp, Gui::ExpandItem);
|
||||
}
|
||||
xmlReader.readEndElement("ViewProvider");
|
||||
}
|
||||
|
||||
@@ -300,9 +300,11 @@ PyObject* DocumentPy::toggleTreeItem(PyObject *args)
|
||||
//ActiveGuiDoc = Gui::Application::Instance->getDocument(getDocumentPtr());
|
||||
Gui::ViewProviderDocumentObject* ActiveVp = dynamic_cast<Gui::ViewProviderDocumentObject*> (getDocumentPtr()->getViewProvider(Object)) ;
|
||||
switch(mod) {
|
||||
case 0: getDocumentPtr()->signalExpandObject(*ActiveVp,Gui::Toggle); break;
|
||||
case 1: getDocumentPtr()->signalExpandObject(*ActiveVp,Gui::Collapse); break;
|
||||
case 2: getDocumentPtr()->signalExpandObject(*ActiveVp,Gui::Expand); break;
|
||||
case 0: getDocumentPtr()->signalExpandObject(*ActiveVp,Gui::ToggleItem); break;
|
||||
case 1: getDocumentPtr()->signalExpandObject(*ActiveVp,Gui::CollapseItem); break;
|
||||
case 2: getDocumentPtr()->signalExpandObject(*ActiveVp,Gui::ExpandItem); break;
|
||||
case 3: getDocumentPtr()->signalExpandObject(*ActiveVp,Gui::ExpandPath); break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1622,7 +1622,7 @@ void DocumentItem::slotExpandObject (const Gui::ViewProviderDocumentObject& obj,
|
||||
// the parent-children relationship of the view providers is rather inefficient.
|
||||
FOREACH_ITEM(item,obj)
|
||||
switch (mode) {
|
||||
case Gui::Expand: {
|
||||
case Gui::ExpandPath: {
|
||||
QTreeWidgetItem* parent = item->parent();
|
||||
while (parent) {
|
||||
parent->setExpanded(true);
|
||||
@@ -1630,10 +1630,13 @@ void DocumentItem::slotExpandObject (const Gui::ViewProviderDocumentObject& obj,
|
||||
}
|
||||
item->setExpanded(true);
|
||||
} break;
|
||||
case Gui::Collapse:
|
||||
case Gui::ExpandItem:
|
||||
item->setExpanded(true);
|
||||
break;
|
||||
case Gui::CollapseItem:
|
||||
item->setExpanded(false);
|
||||
break;
|
||||
case Gui::Toggle:
|
||||
case Gui::ToggleItem:
|
||||
if (item->isExpanded())
|
||||
item->setExpanded(false);
|
||||
else
|
||||
@@ -1641,8 +1644,7 @@ void DocumentItem::slotExpandObject (const Gui::ViewProviderDocumentObject& obj,
|
||||
break;
|
||||
|
||||
default:
|
||||
// not defined enum
|
||||
assert(0);
|
||||
break;
|
||||
}
|
||||
populateItem(item);
|
||||
END_FOREACH_ITEM
|
||||
|
||||
@@ -53,9 +53,10 @@ enum HighlightMode { Underlined,
|
||||
};
|
||||
|
||||
/// highlight modes for the tree items
|
||||
enum TreeItemMode { Expand,
|
||||
Collapse,
|
||||
Toggle
|
||||
enum TreeItemMode { ExpandItem,
|
||||
ExpandPath,
|
||||
CollapseItem,
|
||||
ToggleItem
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user