diff options
author | Jim Raykowski <raykowj@gmail.com> | 2020-12-01 00:25:52 -0900 |
---|---|---|
committer | Jim Raykowski <raykowj@gmail.com> | 2020-12-03 21:38:48 +0100 |
commit | f0878173e1963cf8db5f60ced6d19da24e18bc41 (patch) | |
tree | 192ebdbc2789de49ca860a72676f0dc70a575890 | |
parent | cbc43bef143f3109bdf3bf981317ae74b73cde5a (diff) |
tdf#34828 sd navigator: make unnamed shape select select shape object
Change-Id: I4685d7db802767553018d08d23d8b33bca7efff2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106958
Tested-by: Jenkins
Reviewed-by: Jim Raykowski <raykowj@gmail.com>
-rw-r--r-- | include/svx/svdobj.hxx | 2 | ||||
-rw-r--r-- | sd/source/ui/dlg/sdtreelb.cxx | 15 | ||||
-rw-r--r-- | sd/source/ui/view/drviewsd.cxx | 2 | ||||
-rw-r--r-- | svx/source/svdraw/svdobj.cxx | 9 |
4 files changed, 22 insertions, 6 deletions
diff --git a/include/svx/svdobj.hxx b/include/svx/svdobj.hxx index 2c9ce6813fba..b7af53864a77 100644 --- a/include/svx/svdobj.hxx +++ b/include/svx/svdobj.hxx @@ -373,7 +373,7 @@ public: // An object may have a user-set Name (Get/SetName()), e.g SdrGrafObj, SdrObjGroup // or SdrOle2Obj. // It may also have a Title and a Description for accessibility purposes. - void SetName(const OUString& rStr); + void SetName(const OUString& rStr, const bool bSetChanged = true); OUString GetName() const; void MakeNameUnique(); void MakeNameUnique(std::unordered_set<OUString>& rNameSet); diff --git a/sd/source/ui/dlg/sdtreelb.cxx b/sd/source/ui/dlg/sdtreelb.cxx index bd9215fcb5b1..12ba6be2cf45 100644 --- a/sd/source/ui/dlg/sdtreelb.cxx +++ b/sd/source/ui/dlg/sdtreelb.cxx @@ -701,7 +701,20 @@ void SdPageObjsTLV::Select() m_aChangeHdl.Call(*m_xTreeView); if (m_bSelectionHandlerNavigates) - m_aRowActivatedHdl.Call(*m_xTreeView); + { + SdrObject* pObject = reinterpret_cast<SdrObject*>(m_xTreeView->get_selected_id().toInt64()); + if (pObject && pObject->GetName().isEmpty()) + { + const bool bUndo = pObject->getSdrModelFromSdrObject().IsUndoEnabled(); + pObject->getSdrModelFromSdrObject().EnableUndo(false); + pObject->SetName(m_xTreeView->get_selected_text(), false); + m_aRowActivatedHdl.Call(*m_xTreeView); + pObject->SetName(OUString(), false); + pObject->getSdrModelFromSdrObject().EnableUndo(bUndo); + } + else + m_aRowActivatedHdl.Call(*m_xTreeView); + } if (!m_xNavigator) { diff --git a/sd/source/ui/view/drviewsd.cxx b/sd/source/ui/view/drviewsd.cxx index 8f6e627029d4..6dc4448d32f1 100644 --- a/sd/source/ui/view/drviewsd.cxx +++ b/sd/source/ui/view/drviewsd.cxx @@ -137,7 +137,7 @@ void DrawViewShell::ExecNavigatorWin( SfxRequest& rReq ) SfxFrameItem aFrameItem(SID_DOCFRAME, pFrame); SfxBoolItem aBrowseItem(SID_BROWSE, true); pFrame->GetDispatcher()-> - ExecuteList(SID_OPENDOC, SfxCallMode::ASYNCHRON | SfxCallMode::RECORD, + ExecuteList(SID_OPENDOC, SfxCallMode::SYNCHRON | SfxCallMode::RECORD, { &aStrItem, &aFrameItem, &aBrowseItem, &aReferer }); } diff --git a/svx/source/svdraw/svdobj.cxx b/svx/source/svdraw/svdobj.cxx index 638c590a52cd..260d0b0dd2ac 100644 --- a/svx/source/svdraw/svdobj.cxx +++ b/svx/source/svdraw/svdobj.cxx @@ -661,7 +661,7 @@ SdrObject* SdrObject::getParentSdrObjectFromSdrObject() const return pParent->getSdrObjectFromSdrObjList(); } -void SdrObject::SetName(const OUString& rStr) +void SdrObject::SetName(const OUString& rStr, const bool bSetChanged) { if (!rStr.isEmpty() && !pPlusData) { @@ -691,8 +691,11 @@ void SdrObject::SetName(const OUString& rStr) { getSdrModelFromSdrObject().EndUndo(); } - SetChanged(); - BroadcastObjectChange(); + if (bSetChanged) + { + SetChanged(); + BroadcastObjectChange(); + } } OUString SdrObject::GetName() const |