summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/svx/devtools/DocumentModelTreeHandler.hxx1
-rw-r--r--svx/source/devtools/DevelopmentToolDockingWindow.cxx3
-rw-r--r--svx/source/devtools/DocumentModelTreeHandler.cxx17
3 files changed, 19 insertions, 2 deletions
diff --git a/include/svx/devtools/DocumentModelTreeHandler.hxx b/include/svx/devtools/DocumentModelTreeHandler.hxx
index 3b57ec1aca34..fad725726cfb 100644
--- a/include/svx/devtools/DocumentModelTreeHandler.hxx
+++ b/include/svx/devtools/DocumentModelTreeHandler.hxx
@@ -43,6 +43,7 @@ public:
static css::uno::Reference<css::uno::XInterface> getObjectByID(OUString const& rID);
void dispose();
+ void selectObject(css::uno::Reference<css::uno::XInterface> const& xInterface);
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/devtools/DevelopmentToolDockingWindow.cxx b/svx/source/devtools/DevelopmentToolDockingWindow.cxx
index 9ba52a5d5751..1ab3ab997808 100644
--- a/svx/source/devtools/DevelopmentToolDockingWindow.cxx
+++ b/svx/source/devtools/DevelopmentToolDockingWindow.cxx
@@ -544,12 +544,11 @@ void DevelopmentToolDockingWindow::updateSelection()
if (eTriState == TRISTATE_TRUE)
{
introspect(mxCurrentSelection);
- mpDocumentModelTreeView->set_sensitive(false);
+ maDocumentModelTreeHandler.selectObject(mxCurrentSelection);
}
else
{
mpDocumentModelTreeView->set_sensitive(true);
- DocumentModelTreeViewSelectionHandler(*mpDocumentModelTreeView);
}
}
diff --git a/svx/source/devtools/DocumentModelTreeHandler.cxx b/svx/source/devtools/DocumentModelTreeHandler.cxx
index 12237bd6af7a..5cc293c7fe44 100644
--- a/svx/source/devtools/DocumentModelTreeHandler.cxx
+++ b/svx/source/devtools/DocumentModelTreeHandler.cxx
@@ -620,6 +620,23 @@ IMPL_LINK(DocumentModelTreeHandler, ExpandingHandler, weld::TreeIter const&, rPa
return true;
}
+void DocumentModelTreeHandler::selectObject(
+ css::uno::Reference<css::uno::XInterface> const& xInterface)
+{
+ mpDocumentModelTree->unselect_all();
+
+ mpDocumentModelTree->all_foreach([this, xInterface](weld::TreeIter& rEntry) {
+ OUString sID = mpDocumentModelTree->get_id(rEntry);
+ auto* pEntry = reinterpret_cast<DocumentModelTreeEntry*>(sID.toInt64());
+ if (xInterface == pEntry->getMainObject())
+ {
+ mpDocumentModelTree->select(rEntry);
+ return true;
+ }
+ return false;
+ });
+}
+
void DocumentModelTreeHandler::inspectDocument()
{
uno::Reference<lang::XServiceInfo> xDocumentServiceInfo(mxDocument, uno::UNO_QUERY_THROW);