officecfg/registry/data/org/openoffice/Office/UI/Controller.xcu |    2 
 sd/Library_sd.mk                                                |    2 
 sd/source/ui/sidebar/CurrentMasterPagesSelector.cxx             |   12 +
 sd/source/ui/sidebar/CurrentMasterPagesSelector.hxx             |    5 
 sd/source/ui/sidebar/SlideMasterPagesAllToolBoxControl.cxx      |  110 
---------
 sd/source/ui/sidebar/SlideMasterPagesToolBoxControl.cxx         |  114 
++++++++++
 sd/source/ui/sidebar/SlideMasterPagesToolBoxControl.hxx         |   18 -
 sd/util/sd.component                                            |    4 
 vcl/jsdialog/enabled.cxx                                        |    1 
 9 files changed, 146 insertions(+), 122 deletions(-)

New commits:
commit 7fa9aa8023212f389d3113e319a6a048b775c67f
Author:     Shardul Vikram Singh <[email protected]>
AuthorDate: Sun Feb 8 20:02:23 2026 +0530
Commit:     Szymon Kłos <[email protected]>
CommitDate: Mon Mar 9 15:00:52 2026 +0100

    Add CurrentMasterPagesSelector to SlideMasterPagesWrapper
    
    Change-Id: I7309b88af48f7e4a7c756bbb18c94194ef1bfc79
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/199485
    Tested-by: Jenkins CollaboraOffice <[email protected]>
    Reviewed-by: Szymon Kłos <[email protected]>

diff --git a/officecfg/registry/data/org/openoffice/Office/UI/Controller.xcu 
b/officecfg/registry/data/org/openoffice/Office/UI/Controller.xcu
index e8187f2a168e..5eb5a5e50c73 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/Controller.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/Controller.xcu
@@ -1127,7 +1127,7 @@
           <value>com.sun.star.presentation.PresentationDocument</value>
         </prop>
         <prop oor:name="Controller">
-          <value>com.sun.star.comp.sd.SlideMasterPagesAllToolBoxControl</value>
+          <value>com.sun.star.comp.sd.SlideMasterPagesToolBoxControl</value>
         </prop>
       </node>
       <node oor:name="ThemeColorsPane" oor:op="replace">
diff --git a/sd/Library_sd.mk b/sd/Library_sd.mk
index 4c6140046464..29f5857cf0ab 100644
--- a/sd/Library_sd.mk
+++ b/sd/Library_sd.mk
@@ -370,7 +370,7 @@ $(eval $(call gb_Library_add_exception_objects,sd,\
        sd/source/ui/sidebar/RecentlyUsedMasterPages \
        sd/source/ui/sidebar/RecentMasterPagesSelector \
        sd/source/ui/sidebar/SlideBackground \
-       sd/source/ui/sidebar/SlideMasterPagesAllToolBoxControl \
+       sd/source/ui/sidebar/SlideMasterPagesToolBoxControl \
        sd/source/ui/slideshow/PaneHider \
        sd/source/ui/slideshow/SlideShowRestarter \
        sd/source/ui/slideshow/showwin \
diff --git a/sd/source/ui/sidebar/CurrentMasterPagesSelector.cxx 
b/sd/source/ui/sidebar/CurrentMasterPagesSelector.cxx
index aa222e81766a..d9e9cbbf2eca 100644
--- a/sd/source/ui/sidebar/CurrentMasterPagesSelector.cxx
+++ b/sd/source/ui/sidebar/CurrentMasterPagesSelector.cxx
@@ -72,6 +72,18 @@ CurrentMasterPagesSelector::CurrentMasterPagesSelector(
     mpEventMultiplexer = rBase.GetEventMultiplexer();
     mpEventMultiplexer->AddEventListener(aLink);
 }
+CurrentMasterPagesSelector::CurrentMasterPagesSelector(
+    weld::Widget* pParent, SdDrawDocument& rDocument, ViewShellBase& rBase,
+    const std::shared_ptr<MasterPageContainer>& rpContainer)
+    : MasterPagesSelector(pParent, rDocument, rBase, rpContainer,
+                          u"modules/simpress/ui/masterpagepanel.ui"_ustr,
+                          u"masterpagecurrent_icons"_ustr)
+{
+    Link<sdtools::EventMultiplexerEvent&, void> aLink(
+        LINK(this, CurrentMasterPagesSelector, EventMultiplexerListener));
+    mpEventMultiplexer = rBase.GetEventMultiplexer();
+    mpEventMultiplexer->AddEventListener(aLink);
+}
 
 CurrentMasterPagesSelector::~CurrentMasterPagesSelector()
 {
diff --git a/sd/source/ui/sidebar/CurrentMasterPagesSelector.hxx 
b/sd/source/ui/sidebar/CurrentMasterPagesSelector.hxx
index b63208743c2e..eede3cf304c5 100644
--- a/sd/source/ui/sidebar/CurrentMasterPagesSelector.hxx
+++ b/sd/source/ui/sidebar/CurrentMasterPagesSelector.hxx
@@ -46,6 +46,11 @@ public:
         ViewShellBase& rBase,
         const std::shared_ptr<MasterPageContainer>& rpContainer,
         const css::uno::Reference<css::ui::XSidebar>& rxSidebar);
+    CurrentMasterPagesSelector (
+        weld::Widget* pParent,
+        SdDrawDocument& rDocument,
+        ViewShellBase& rBase,
+        const std::shared_ptr<MasterPageContainer>& rpContainer);
     virtual ~CurrentMasterPagesSelector() override;
 
     /** Set the selection so that the master page is selected that is
diff --git a/sd/source/ui/sidebar/SlideMasterPagesAllToolBoxControl.cxx 
b/sd/source/ui/sidebar/SlideMasterPagesAllToolBoxControl.cxx
deleted file mode 100644
index e802f0b281c6..000000000000
--- a/sd/source/ui/sidebar/SlideMasterPagesAllToolBoxControl.cxx
+++ /dev/null
@@ -1,110 +0,0 @@
-#include <cppuhelper/supportsservice.hxx>
-#include <vcl/svapp.hxx>
-#include <toolkit/helper/vclunohelper.hxx>
-#include <ViewShellBase.hxx>
-#include <sfx2/viewsh.hxx>
-#include "MasterPageContainer.hxx"
-#include "AllMasterPagesSelector.hxx"
-#include "SlideMasterPagesAllToolBoxControl.hxx"
-
-SlideMasterPagesAllToolBoxControl::SlideMasterPagesAllToolBoxControl() {}
-
-SlideMasterPagesAllToolBoxControl::~SlideMasterPagesAllToolBoxControl() {}
-
-void SAL_CALL
-SlideMasterPagesAllToolBoxControl::initialize(const 
css::uno::Sequence<css::uno::Any>& rArguments)
-{
-    SAL_INFO("sd", "initialize called for SlideMasterPagesAllToolBoxControl");
-
-    svt::ToolboxController::initialize(rArguments);
-}
-
-void SAL_CALL
-SlideMasterPagesAllToolBoxControl::statusChanged(const 
css::frame::FeatureStateEvent& /*rEvent*/)
-{
-    // Handle status changes if needed
-}
-
-void SAL_CALL SlideMasterPagesAllToolBoxControl::dispose()
-{
-    SolarMutexGuard aSolarMutexGuard;
-    m_xVclBox.disposeAndClear();
-    svt::ToolboxController::dispose();
-}
-
-css::uno::Reference<css::awt::XWindow> 
SlideMasterPagesAllToolBoxControl::createItemWindow(
-    const css::uno::Reference<css::awt::XWindow>& rParent)
-{
-    css::uno::Reference<css::awt::XWindow> xItemWindow;
-    SAL_INFO("sd", "createItemWindow called for 
SlideMasterPagesAllToolBoxControl");
-
-    VclPtr<vcl::Window> pParent = VCLUnoHelper::GetWindow(rParent);
-    if (pParent)
-    {
-        SolarMutexGuard aSolarMutexGuard;
-
-        sd::ViewShellBase* pViewShellBase = nullptr;
-        if (SfxViewShell* pViewShell = SfxViewShell::Current())
-        {
-            pViewShellBase = dynamic_cast<sd::ViewShellBase*>(pViewShell);
-        }
-
-        if (pViewShellBase)
-        {
-            m_xVclBox = VclPtr<SlideMasterPagesAllWrapper>::Create(pParent, 
*pViewShellBase);
-            xItemWindow = VCLUnoHelper::GetInterface(m_xVclBox.get());
-        }
-    }
-    SAL_INFO("sd", "createItemWindow called for 
SlideMasterPagesAllToolBoxControl");
-
-    return xItemWindow;
-}
-
-OUString SAL_CALL SlideMasterPagesAllToolBoxControl::getImplementationName()
-{
-    return u"com.sun.star.comp.sd.SlideMasterPagesAllToolBoxControl"_ustr;
-}
-
-css::uno::Sequence<OUString> SAL_CALL 
SlideMasterPagesAllToolBoxControl::getSupportedServiceNames()
-{
-    return { u"com.sun.star.frame.ToolbarController"_ustr };
-}
-
-sal_Bool SAL_CALL SlideMasterPagesAllToolBoxControl::supportsService(const 
OUString& rServiceName)
-{
-    return cppu::supportsService(this, rServiceName);
-}
-
-extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
-com_sun_star_comp_sd_SlideMasterPagesAllToolBoxControl_get_implementation(
-    css::uno::XComponentContext* /*rxContext*/, 
css::uno::Sequence<css::uno::Any> const&)
-{
-    return cppu::acquire(new SlideMasterPagesAllToolBoxControl());
-}
-
-SlideMasterPagesAllWrapper::SlideMasterPagesAllWrapper(vcl::Window* pParent,
-                                                       sd::ViewShellBase& 
rBase)
-    : InterimItemWindow(pParent, 
u"modules/simpress/ui/masterpagepanelall.ui"_ustr,
-                        u"MasterPagePanel"_ustr, true,
-                        reinterpret_cast<sal_uInt64>(SfxViewShell::Current()))
-{
-    SdDrawDocument* pDocument = rBase.GetDocument();
-    if (pDocument == nullptr)
-        SAL_INFO("sd", "SlideMasterPagesAllWrapper got null SdDrawDocument");
-
-    m_xPane = std::make_unique<sd::sidebar::AllMasterPagesSelector>(
-        m_xContainer.get(), *pDocument, rBase,
-        std::make_shared<sd::sidebar::MasterPageContainer>());
-    SetOptimalSize();
-    SAL_INFO("sd", "SlideMasterPagesAllWrapper created");
-}
-
-SlideMasterPagesAllWrapper::~SlideMasterPagesAllWrapper() { disposeOnce(); }
-void SlideMasterPagesAllWrapper::SetOptimalSize() { 
SetSizePixel(GetOptimalSize()); }
-
-void SlideMasterPagesAllWrapper::dispose()
-{
-    SAL_INFO("sd", "SlideMasterPagesAllWrapper dispose ");
-    m_xPane.reset();
-    InterimItemWindow::dispose();
-}
diff --git a/sd/source/ui/sidebar/SlideMasterPagesToolBoxControl.cxx 
b/sd/source/ui/sidebar/SlideMasterPagesToolBoxControl.cxx
new file mode 100644
index 000000000000..dbc2b70b86e7
--- /dev/null
+++ b/sd/source/ui/sidebar/SlideMasterPagesToolBoxControl.cxx
@@ -0,0 +1,114 @@
+#include <cppuhelper/supportsservice.hxx>
+#include <vcl/svapp.hxx>
+#include <toolkit/helper/vclunohelper.hxx>
+#include <ViewShellBase.hxx>
+#include <sfx2/viewsh.hxx>
+#include "CurrentMasterPagesSelector.hxx"
+#include "MasterPageContainer.hxx"
+#include "AllMasterPagesSelector.hxx"
+#include "SlideMasterPagesToolBoxControl.hxx"
+
+SlideMasterPagesToolBoxControl::SlideMasterPagesToolBoxControl() {}
+
+SlideMasterPagesToolBoxControl::~SlideMasterPagesToolBoxControl() {}
+
+void SAL_CALL
+SlideMasterPagesToolBoxControl::initialize(const 
css::uno::Sequence<css::uno::Any>& rArguments)
+{
+    SAL_INFO("sd", "initialize called for SlideMasterPagesToolBoxControl");
+
+    svt::ToolboxController::initialize(rArguments);
+}
+
+void SAL_CALL
+SlideMasterPagesToolBoxControl::statusChanged(const 
css::frame::FeatureStateEvent& /*rEvent*/)
+{
+    // Handle status changes if needed
+}
+
+void SAL_CALL SlideMasterPagesToolBoxControl::dispose()
+{
+    SolarMutexGuard aSolarMutexGuard;
+    m_xVclBox.disposeAndClear();
+    svt::ToolboxController::dispose();
+}
+
+css::uno::Reference<css::awt::XWindow> 
SlideMasterPagesToolBoxControl::createItemWindow(
+    const css::uno::Reference<css::awt::XWindow>& rParent)
+{
+    css::uno::Reference<css::awt::XWindow> xItemWindow;
+    SAL_INFO("sd", "createItemWindow called for 
SlideMasterPagesToolBoxControl");
+
+    VclPtr<vcl::Window> pParent = VCLUnoHelper::GetWindow(rParent);
+    if (pParent)
+    {
+        SolarMutexGuard aSolarMutexGuard;
+
+        sd::ViewShellBase* pViewShellBase = nullptr;
+        if (SfxViewShell* pViewShell = SfxViewShell::Current())
+        {
+            pViewShellBase = dynamic_cast<sd::ViewShellBase*>(pViewShell);
+        }
+
+        if (pViewShellBase)
+        {
+            m_xVclBox = VclPtr<SlideMasterPagesWrapper>::Create(pParent, 
*pViewShellBase);
+            xItemWindow = VCLUnoHelper::GetInterface(m_xVclBox.get());
+        }
+    }
+    SAL_INFO("sd", "createItemWindow called for 
SlideMasterPagesToolBoxControl");
+
+    return xItemWindow;
+}
+
+OUString SAL_CALL SlideMasterPagesToolBoxControl::getImplementationName()
+{
+    return u"com.sun.star.comp.sd.SlideMasterPagesToolBoxControl"_ustr;
+}
+
+css::uno::Sequence<OUString> SAL_CALL 
SlideMasterPagesToolBoxControl::getSupportedServiceNames()
+{
+    return { u"com.sun.star.frame.ToolbarController"_ustr };
+}
+
+sal_Bool SAL_CALL SlideMasterPagesToolBoxControl::supportsService(const 
OUString& rServiceName)
+{
+    return cppu::supportsService(this, rServiceName);
+}
+
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
+com_sun_star_comp_sd_SlideMasterPagesToolBoxControl_get_implementation(
+    css::uno::XComponentContext* /*rxContext*/, 
css::uno::Sequence<css::uno::Any> const&)
+{
+    return cppu::acquire(new SlideMasterPagesToolBoxControl());
+}
+
+SlideMasterPagesWrapper::SlideMasterPagesWrapper(vcl::Window* pParent, 
sd::ViewShellBase& rBase)
+    : InterimItemWindow(pParent, 
u"modules/simpress/ui/masterpagepanelall.ui"_ustr,
+                        u"MasterPagePanel"_ustr, true,
+                        reinterpret_cast<sal_uInt64>(SfxViewShell::Current()))
+{
+    SdDrawDocument* pDocument = rBase.GetDocument();
+    if (pDocument == nullptr)
+        SAL_INFO("sd", "SlideMasterPagesWrapper got null SdDrawDocument");
+
+    auto pContainer = std::make_shared<sd::sidebar::MasterPageContainer>();
+
+    m_xCurrentSelector = 
std::make_unique<sd::sidebar::CurrentMasterPagesSelector>(
+        m_xContainer.get(), *pDocument, rBase, pContainer);
+    m_xAllSelector = std::make_unique<sd::sidebar::AllMasterPagesSelector>(
+        m_xContainer.get(), *pDocument, rBase, pContainer);
+    SetOptimalSize();
+    SAL_INFO("sd", "SlideMasterPagesWrapper created");
+}
+
+SlideMasterPagesWrapper::~SlideMasterPagesWrapper() { disposeOnce(); }
+void SlideMasterPagesWrapper::SetOptimalSize() { 
SetSizePixel(GetOptimalSize()); }
+
+void SlideMasterPagesWrapper::dispose()
+{
+    SAL_INFO("sd", "SlideMasterPagesWrapper dispose ");
+    m_xCurrentSelector.reset();
+    m_xAllSelector.reset();
+    InterimItemWindow::dispose();
+}
diff --git a/sd/source/ui/sidebar/SlideMasterPagesAllToolBoxControl.hxx 
b/sd/source/ui/sidebar/SlideMasterPagesToolBoxControl.hxx
similarity index 67%
rename from sd/source/ui/sidebar/SlideMasterPagesAllToolBoxControl.hxx
rename to sd/source/ui/sidebar/SlideMasterPagesToolBoxControl.hxx
index 7a1580411cef..35f85fce7300 100644
--- a/sd/source/ui/sidebar/SlideMasterPagesAllToolBoxControl.hxx
+++ b/sd/source/ui/sidebar/SlideMasterPagesToolBoxControl.hxx
@@ -2,30 +2,32 @@
 #include <com/sun/star/lang/XServiceInfo.hpp>
 #include <vcl/vclptr.hxx>
 #include "AllMasterPagesSelector.hxx"
+#include "CurrentMasterPagesSelector.hxx"
 #include <vcl/InterimItemWindow.hxx>
 
 // Used to put transition pane to the notebookbar
 
-class SlideMasterPagesAllWrapper final : public InterimItemWindow
+class SlideMasterPagesWrapper final : public InterimItemWindow
 {
 private:
-    std::unique_ptr<sd::sidebar::AllMasterPagesSelector> m_xPane;
+    std::unique_ptr<sd::sidebar::CurrentMasterPagesSelector> 
m_xCurrentSelector;
+    std::unique_ptr<sd::sidebar::AllMasterPagesSelector> m_xAllSelector;
 
 public:
-    SlideMasterPagesAllWrapper(vcl::Window* pParent, sd::ViewShellBase& rBase);
-    virtual ~SlideMasterPagesAllWrapper() override;
+    SlideMasterPagesWrapper(vcl::Window* pParent, sd::ViewShellBase& rBase);
+    virtual ~SlideMasterPagesWrapper() override;
     virtual void dispose() override;
     void SetOptimalSize();
 };
 
-class SlideMasterPagesAllToolBoxControl final
+class SlideMasterPagesToolBoxControl final
     : public cppu::ImplInheritanceHelper<svt::ToolboxController, 
css::lang::XServiceInfo>
 {
-    VclPtr<SlideMasterPagesAllWrapper> m_xVclBox;
+    VclPtr<SlideMasterPagesWrapper> m_xVclBox;
 
 public:
-    SlideMasterPagesAllToolBoxControl();
-    virtual ~SlideMasterPagesAllToolBoxControl() override;
+    SlideMasterPagesToolBoxControl();
+    virtual ~SlideMasterPagesToolBoxControl() override;
 
     // XStatusListener
     virtual void SAL_CALL statusChanged(const css::frame::FeatureStateEvent& 
rEvent) override;
diff --git a/sd/util/sd.component b/sd/util/sd.component
index 2c7f94763b24..9952dff78cbc 100644
--- a/sd/util/sd.component
+++ b/sd/util/sd.component
@@ -37,8 +37,8 @@
       
constructor="org_openoffice_comp_Draw_framework_PanelFactory_get_implementation">
     <service name="com.sun.star.drawing.framework.PanelFactory"/>
   </implementation>
-  <implementation name="com.sun.star.comp.sd.SlideMasterPagesAllToolBoxControl"
-    
constructor="com_sun_star_comp_sd_SlideMasterPagesAllToolBoxControl_get_implementation">
+  <implementation name="com.sun.star.comp.sd.SlideMasterPagesToolBoxControl"
+    
constructor="com_sun_star_comp_sd_SlideMasterPagesToolBoxControl_get_implementation">
     <service name="com.sun.star.frame.ToolbarController"/>
   </implementation>
   <implementation name="com.sun.star.comp.sd.InsertSlideController"
diff --git a/vcl/jsdialog/enabled.cxx b/vcl/jsdialog/enabled.cxx
index d185c938719f..8b74b380acae 100644
--- a/vcl/jsdialog/enabled.cxx
+++ b/vcl/jsdialog/enabled.cxx
@@ -527,6 +527,7 @@ constexpr auto NotebookbarList
         { u"svx/ui/themeselectorpanel.ui" },
         // not interim builder, but regular builder:
         { u"modules/simpress/ui/masterpagepanelall.ui" },
+        { u"modules/simpress/ui/masterpagepanel.ui" },
         { u"modules/simpress/ui/slidetransitionspanel.ui" }
     });
 

Reply via email to