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")

Reply via email to