sfx2/source/sidebar/SidebarChildWindow.cxx | 2 starmath/UIConfig_smath.mk | 1 starmath/inc/ElementsDockingWindow.hxx | 37 ------- starmath/inc/view.hxx | 3 starmath/qa/unit/data/starmath-dialogs-test.txt | 1 starmath/source/ElementsDockingWindow.cxx | 117 ------------------------ starmath/source/document.cxx | 9 - starmath/source/smdll.cxx | 5 - starmath/source/view.cxx | 24 +--- starmath/uiconfig/smath/ui/dockingelements.ui | 60 ------------ uitest/math_tests/start.py | 2 11 files changed, 11 insertions(+), 250 deletions(-)
New commits: commit dbe125fce5d226641bf84ac3be12ea88c41f6d91 Author: Mike Kaganski <mike.kagan...@collabora.com> AuthorDate: Wed Aug 17 23:37:08 2022 +0300 Commit: Mike Kaganski <mike.kagan...@collabora.com> CommitDate: Fri Aug 26 10:42:28 2022 +0200 tdf#150489: Drop Elements docking window and make uno:ElementsDockingWindow open the respective sidebar panel. Change-Id: I9736d6804c579b83404636d5e327c49c2fdeb914 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138458 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com> diff --git a/sfx2/source/sidebar/SidebarChildWindow.cxx b/sfx2/source/sidebar/SidebarChildWindow.cxx index 04d1f1037f4b..272c280488c8 100644 --- a/sfx2/source/sidebar/SidebarChildWindow.cxx +++ b/sfx2/source/sidebar/SidebarChildWindow.cxx @@ -43,7 +43,7 @@ SidebarChildWindow::SidebarChildWindow(vcl::Window* pParentWindow, sal_uInt16 nI pDockWin->SetOutputSizePixel(Size(GetDefaultWidth(pDockWin), 450)); if (pInfo && pInfo->aExtraString.isEmpty() && pInfo->aModule != "sdraw" - && pInfo->aModule != "simpress") + && pInfo->aModule != "simpress" && pInfo->aModule != "smath") { // When this is the first start (never had the sidebar open yet), // default to non-expanded sidebars in Writer and Calc. diff --git a/starmath/UIConfig_smath.mk b/starmath/UIConfig_smath.mk index a54f2e4553c4..d79d791a92df 100644 --- a/starmath/UIConfig_smath.mk +++ b/starmath/UIConfig_smath.mk @@ -31,7 +31,6 @@ $(eval $(call gb_UIConfig_add_toolbarfiles,modules/smath,\ $(eval $(call gb_UIConfig_add_uifiles,modules/smath,\ starmath/uiconfig/smath/ui/alignmentdialog \ starmath/uiconfig/smath/ui/catalogdialog \ - starmath/uiconfig/smath/ui/dockingelements \ starmath/uiconfig/smath/ui/editwindow \ starmath/uiconfig/smath/ui/fontdialog \ starmath/uiconfig/smath/ui/fontsizedialog \ diff --git a/starmath/inc/ElementsDockingWindow.hxx b/starmath/inc/ElementsDockingWindow.hxx index 589694779f8d..f649b022e9fa 100644 --- a/starmath/inc/ElementsDockingWindow.hxx +++ b/starmath/inc/ElementsDockingWindow.hxx @@ -78,41 +78,4 @@ public: static Color GetControlBackground(); }; -class SmElementsDockingWindow final : public SfxDockingWindow -{ - std::unique_ptr<SmElementsControl> mxElementsControl; - std::unique_ptr<weld::ComboBox> mxElementListBox; - - virtual void Resize() override; - SmViewShell* GetView(); - - DECL_LINK(SelectClickHandler, OUString, void); - DECL_LINK(ElementSelectedHandle, weld::ComboBox&, void); - -public: - - SmElementsDockingWindow( SfxBindings* pBindings, - SfxChildWindow* pChildWindow, - vcl::Window* pParent ); - virtual ~SmElementsDockingWindow() override; - virtual void dispose() override; - - virtual void EndDocking( const tools::Rectangle& rReactangle, bool bFloatMode) override; - virtual void ToggleFloatingMode() override; - virtual void GetFocus() override; - - void setSmSyntaxVersion(sal_uInt16 nSmSyntaxVersion); -}; - -class SmElementsDockingWindowWrapper final : public SfxChildWindow -{ - SFX_DECL_CHILDWINDOW_WITHID(SmElementsDockingWindowWrapper); - - SmElementsDockingWindowWrapper( vcl::Window* pParentWindow, - sal_uInt16 nId, - SfxBindings* pBindings, - SfxChildWinInfo* pInfo ); - virtual ~SmElementsDockingWindowWrapper() override; -}; - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/starmath/inc/view.hxx b/starmath/inc/view.hxx index 3bc3b7cdf461..309c89513489 100644 --- a/starmath/inc/view.hxx +++ b/starmath/inc/view.hxx @@ -36,7 +36,6 @@ class SmViewShell; class SmPrintUIOptions; class SmGraphicAccessible; class SmGraphicWidget; -class SmElementsDockingWindow; class SmGraphicWindow final : public InterimItemWindow { @@ -317,8 +316,6 @@ public: return *mxGraphicWindow; } - SmElementsDockingWindow* GetDockingWindow(); - void SetStatusText(const OUString& rText); void ShowError( const SmErrorDesc *pErrorDesc ); diff --git a/starmath/qa/unit/data/starmath-dialogs-test.txt b/starmath/qa/unit/data/starmath-dialogs-test.txt index 70529fbadc86..22c17519dc41 100644 --- a/starmath/qa/unit/data/starmath-dialogs-test.txt +++ b/starmath/qa/unit/data/starmath-dialogs-test.txt @@ -44,4 +44,3 @@ modules/smath/ui/alignmentdialog.ui modules/smath/ui/catalogdialog.ui modules/smath/ui/symdefinedialog.ui modules/smath/ui/savedefaultsdialog.ui -modules/smath/ui/dockingelements.ui diff --git a/starmath/source/ElementsDockingWindow.cxx b/starmath/source/ElementsDockingWindow.cxx index 49eea01ddb2a..75cc153a32ba 100644 --- a/starmath/source/ElementsDockingWindow.cxx +++ b/starmath/source/ElementsDockingWindow.cxx @@ -622,121 +622,4 @@ IMPL_LINK_NOARG(SmElementsControl, ElementActivatedHandler, weld::IconView&, boo return true; } -SmElementsDockingWindow::SmElementsDockingWindow(SfxBindings* pInputBindings, SfxChildWindow* pChildWindow, vcl::Window* pParent) - : SfxDockingWindow(pInputBindings, pChildWindow, pParent, "DockingElements", - "modules/smath/ui/dockingelements.ui") - , mxElementsControl(std::make_unique<SmElementsControl>(m_xBuilder->weld_icon_view("elements"))) - , mxElementListBox(m_xBuilder->weld_combo_box("listbox")) -{ - // give it an arbitrary small width request so it can shrink in the sidebar - mxElementListBox->set_size_request(42, -1); - - for (const auto& category : SmElementsControl::categories()) - mxElementListBox->append_text(SmResId(category)); - - mxElementListBox->connect_changed(LINK(this, SmElementsDockingWindow, ElementSelectedHandle)); - mxElementListBox->set_active(0); - - mxElementsControl->setElementSetIndex(0); - mxElementsControl->SetSelectHdl(LINK(this, SmElementsDockingWindow, SelectClickHandler)); -} - -void SmElementsDockingWindow::GetFocus() -{ - SfxDockingWindow::GetFocus(); - if (mxElementListBox) - mxElementListBox->grab_focus(); -} - -SmElementsDockingWindow::~SmElementsDockingWindow () -{ - disposeOnce(); -} - -void SmElementsDockingWindow::dispose() -{ - mxElementsControl.reset(); - mxElementListBox.reset(); - SfxDockingWindow::dispose(); -} - -void SmElementsDockingWindow::ToggleFloatingMode() -{ - SfxDockingWindow::ToggleFloatingMode(); - - if (GetFloatingWindow()) - GetFloatingWindow()->SetMinOutputSizePixel( Size(100, 100) ); - - Invalidate(); -} - -void SmElementsDockingWindow::setSmSyntaxVersion(sal_uInt16 nSmSyntaxVersion) -{ - mxElementsControl->setSmSyntaxVersion(nSmSyntaxVersion); -} - -void SmElementsDockingWindow::EndDocking( const tools::Rectangle& rReactangle, bool bFloatMode) -{ - SfxDockingWindow::EndDocking(rReactangle, bFloatMode); - bool bVertical = ( GetAlignment() == SfxChildAlignment::TOP || GetAlignment() == SfxChildAlignment::BOTTOM ); - mxElementsControl->setVerticalMode(bVertical); -} - -IMPL_LINK(SmElementsDockingWindow, SelectClickHandler, OUString, sElementSource, void) -{ - SmViewShell* pViewSh = GetView(); - - if (pViewSh) - { - SfxStringItem aInsertCommand(SID_INSERTCOMMANDTEXT, sElementSource); - pViewSh->GetViewFrame()->GetDispatcher()->ExecuteList( - SID_INSERTCOMMANDTEXT, SfxCallMode::RECORD, { &aInsertCommand }); - } -} - -IMPL_LINK( SmElementsDockingWindow, ElementSelectedHandle, weld::ComboBox&, rList, void) -{ - const int nActive = rList.get_active(); - assert(nActive != -1); - mxElementsControl->setElementSetIndex(nActive); - setSmSyntaxVersion(GetView()->GetDoc()->GetSmSyntaxVersion()); -} - -SmViewShell* SmElementsDockingWindow::GetView() -{ - SfxViewShell* pView = GetBindings().GetDispatcher()->GetFrame()->GetViewShell(); - return dynamic_cast<SmViewShell*>( pView); -} - -void SmElementsDockingWindow::Resize() -{ - bool bVertical = ( GetAlignment() == SfxChildAlignment::TOP || GetAlignment() == SfxChildAlignment::BOTTOM ); - mxElementsControl->setVerticalMode(bVertical); - - SfxDockingWindow::Resize(); - Invalidate(); -} - -SFX_IMPL_DOCKINGWINDOW_WITHID(SmElementsDockingWindowWrapper, SID_ELEMENTSDOCKINGWINDOW); - -SmElementsDockingWindowWrapper::SmElementsDockingWindowWrapper( - vcl::Window *pParentWindow, sal_uInt16 nId, - SfxBindings *pBindings, SfxChildWinInfo *pInfo) : - SfxChildWindow(pParentWindow, nId) -{ - VclPtrInstance<SmElementsDockingWindow> pDialog(pBindings, this, pParentWindow); - SetWindow(pDialog); - pDialog->setDeferredProperties(); - pDialog->SetPosSizePixel(Point(0, 0), Size(300, 0)); - pDialog->Show(); - - SetAlignment(SfxChildAlignment::LEFT); - - pDialog->Initialize( pInfo ); -} - -SmElementsDockingWindowWrapper::~SmElementsDockingWindowWrapper() -{ -} - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/starmath/source/document.cxx b/starmath/source/document.cxx index ed53cd433761..8e8747d3c793 100644 --- a/starmath/source/document.cxx +++ b/starmath/source/document.cxx @@ -102,15 +102,6 @@ void SmDocShell::SetSmSyntaxVersion(sal_uInt16 nSmSyntaxVersion) { mnSmSyntaxVersion = nSmSyntaxVersion; maParser.reset(starmathdatabase::GetVersionSmParser(mnSmSyntaxVersion)); - SmViewShell* pViewSh = SmGetActiveView(); - if (pViewSh) - { - SmElementsDockingWindow* dockingWindow = pViewSh->GetDockingWindow(); - if(dockingWindow) - { - dockingWindow->setSmSyntaxVersion(nSmSyntaxVersion); - } - } } SFX_IMPL_OBJECTFACTORY(SmDocShell, SvGlobalName(SO3_SM_CLASSID), "smath" ) diff --git a/starmath/source/smdll.cxx b/starmath/source/smdll.cxx index f10e9d9db3f0..d2fa938d711d 100644 --- a/starmath/source/smdll.cxx +++ b/starmath/source/smdll.cxx @@ -32,8 +32,6 @@ #include <document.hxx> #include <view.hxx> -#include <ElementsDockingWindow.hxx> - #include <starmath.hrc> #include <svx/xmlsecctrl.hxx> @@ -70,10 +68,9 @@ namespace SvxModifyControl::RegisterControl(SID_TEXTSTATUS, pModule); XmlSecStatusBarControl::RegisterControl(SID_SIGNATURE, pModule); - sfx2::sidebar::SidebarChildWindow::RegisterChildWindow(false, pModule); + sfx2::sidebar::SidebarChildWindow::RegisterChildWindow(true, pModule); SmCmdBoxWrapper::RegisterChildWindow(true); - SmElementsDockingWindowWrapper::RegisterChildWindow(true); } struct theSmDLLInstance : public rtl::Static<SmDLL, theSmDLLInstance> {}; diff --git a/starmath/source/view.cxx b/starmath/source/view.cxx index 56fc72bdd96d..b9b552bd9678 100644 --- a/starmath/source/view.cxx +++ b/starmath/source/view.cxx @@ -45,6 +45,7 @@ #include <sfx2/printer.hxx> #include <sfx2/request.hxx> #include <sfx2/sfxbasecontroller.hxx> +#include <sfx2/sidebar/Sidebar.hxx> #include <sfx2/sidebar/SidebarChildWindow.hxx> #include <sfx2/sidebar/SidebarController.hxx> #include <sfx2/viewfac.hxx> @@ -1084,7 +1085,6 @@ void SmViewShell::InitInterface_Impl() //Dummy-Objectbar, to avoid quiver while activating GetStaticInterface()->RegisterChildWindow(SmCmdBoxWrapper::GetChildWindowId()); - GetStaticInterface()->RegisterChildWindow(SmElementsDockingWindowWrapper::GetChildWindowId()); GetStaticInterface()->RegisterChildWindow(SfxInfoBarContainerChild::GetChildWindowId()); GetStaticInterface()->RegisterChildWindow(::sfx2::sidebar::SidebarChildWindow::GetChildWindowId()); @@ -1501,15 +1501,6 @@ SmEditWindow *SmViewShell::GetEditWindow() return nullptr; } -SmElementsDockingWindow* SmViewShell::GetDockingWindow() -{ - auto eldockwinwrap = GetViewFrame()->GetChildWindow(SmElementsDockingWindowWrapper::GetChildWindowId()); - if(eldockwinwrap) - return dynamic_cast<SmElementsDockingWindow*>(eldockwinwrap->GetWindow()); - else - return nullptr; -} - void SmViewShell::SetStatusText(const OUString& rText) { maStatusText = rText; @@ -1942,7 +1933,11 @@ void SmViewShell::Execute(SfxRequest& rReq) case SID_ELEMENTSDOCKINGWINDOW: { - GetViewFrame()->ToggleChildWindow( SmElementsDockingWindowWrapper::GetChildWindowId() ); + // First make sure that the sidebar is visible + GetViewFrame()->ShowChildWindow(SID_SIDEBAR); + + sfx2::sidebar::Sidebar::TogglePanel(u"MathElementsPanel", + GetViewFrame()->GetFrame().GetFrameInterface()); GetViewFrame()->GetBindings().Invalidate( SID_ELEMENTSDOCKINGWINDOW ); rReq.Ignore (); @@ -2090,11 +2085,8 @@ void SmViewShell::GetState(SfxItemSet &rSet) break; case SID_ELEMENTSDOCKINGWINDOW: { - bool bState = false; - SfxChildWindow *pChildWnd = GetViewFrame()-> - GetChildWindow( SmElementsDockingWindowWrapper::GetChildWindowId() ); - if (pChildWnd && pChildWnd->GetWindow()->IsVisible()) - bState = true; + const bool bState = sfx2::sidebar::Sidebar::IsPanelVisible( + u"MathElementsPanel", GetViewFrame()->GetFrame().GetFrameInterface()); rSet.Put(SfxBoolItem(SID_ELEMENTSDOCKINGWINDOW, bState)); } break; diff --git a/starmath/uiconfig/smath/ui/dockingelements.ui b/starmath/uiconfig/smath/ui/dockingelements.ui deleted file mode 100644 index 604ffc0630fe..000000000000 --- a/starmath/uiconfig/smath/ui/dockingelements.ui +++ /dev/null @@ -1,60 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.22.1 --> -<interface domain="sm"> - <requires lib="gtk+" version="3.20"/> - <object class="GtkTreeStore" id="liststore1"> - <columns> - <!-- column-name expander --> - <column type="GdkPixbuf"/> - <!-- column-name id --> - <column type="gchararray"/> - </columns> - </object> - <object class="GtkBox" id="DockingElements"> - <property name="visible">True</property> - <property name="can-focus">False</property> - <property name="hexpand">True</property> - <property name="vexpand">True</property> - <property name="orientation">vertical</property> - <property name="spacing">12</property> - <child> - <object class="GtkComboBoxText" id="listbox"> - <property name="visible">True</property> - <property name="can-focus">False</property> - <property name="tooltip-text" translatable="yes" context="dockingelements|ElementCategories|tooltip_text">Element categories</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkScrolledWindow"> - <property name="visible">True</property> - <property name="can-focus">True</property> - <property name="hexpand">True</property> - <property name="vexpand">True</property> - <property name="shadow-type">in</property> - <child> - <object class="GtkIconView" id="elements"> - <property name="visible">True</property> - <property name="can-focus">True</property> - <property name="margin">6</property> - <property name="has-tooltip">True</property> - <property name="hexpand">True</property> - <property name="vexpand">True</property> - <property name="model">liststore1</property> - <property name="pixbuf-column">0</property> - <property name="activate-on-single-click">True</property> - </object> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> - </object> -</interface> diff --git a/uitest/math_tests/start.py b/uitest/math_tests/start.py index fc298fc6eb0d..962d74e686f4 100644 --- a/uitest/math_tests/start.py +++ b/uitest/math_tests/start.py @@ -48,7 +48,7 @@ class SimpleMathTest(UITestCase): xMathDoc = self.xUITest.getTopFocusWindow() - xList = xMathDoc.getChild("listbox") + xList = xMathDoc.getChild("categorylist") state = get_state_as_dict(xList) self.assertEqual(state["SelectEntryText"], "Unary/Binary Operators") select_pos(xList, "1")