vcl/inc/salvtables.hxx        |    5 ++--
 vcl/source/app/salvtables.cxx |   44 +++++++-----------------------------------
 2 files changed, 11 insertions(+), 38 deletions(-)

New commits:
commit 005d7e91a2f3694cbcec7da367be404795f1ab4c
Author:     Michael Weghorn <[email protected]>
AuthorDate: Thu Dec 4 19:59:03 2025 +0100
Commit:     Michael Weghorn <[email protected]>
CommitDate: Sat Dec 6 08:40:34 2025 +0100

    tdf#169505 Drop one level of abstraction for ColorPickerDialog
    
    Now after
    
        Change-Id: Ie3b0d1090300e249e40e1479a40d01caabbdf573
        Author: Michael Weghorn <[email protected]>
        Date:   Thu Dec 4 19:37:17 2025 +0100
    
            tdf#169505 Move ColorPickerDialog from cui to vcl
    
    , there is no more need for AbstractColorPickerDialog,
    but ColorPickerDialog can be used directly.
    
    Change-Id: I0048c3fbabc4331e4bceac36155051a09d471372
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195095
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <[email protected]>

diff --git a/vcl/inc/salvtables.hxx b/vcl/inc/salvtables.hxx
index d24bc1959f6f..875eb912c9da 100644
--- a/vcl/inc/salvtables.hxx
+++ b/vcl/inc/salvtables.hxx
@@ -30,6 +30,7 @@
 #include <vcl/toolkit/svlbitm.hxx>
 #include <o3tl/sorted_vector.hxx>
 #include "calendar.hxx"
+#include "colorpicker.hxx"
 #include "iconview.hxx"
 #include "messagedialog.hxx"
 #include "verticaltabctrl.hxx"
@@ -2312,10 +2313,10 @@ public:
 class SalInstanceColorChooserDialog : public SalInstanceDialog,
                                       public virtual weld::ColorChooserDialog
 {
-    ScopedVclPtr<AbstractColorPickerDialog> m_pAbstractColorPickerDialog;
+    std::unique_ptr<ColorPickerDialog> m_pColorPickerDialog;
 
 public:
-    SalInstanceColorChooserDialog(AbstractColorPickerDialog* pColorDialog);
+    SalInstanceColorChooserDialog(std::unique_ptr<ColorPickerDialog> 
pColorDialog);
     virtual ~SalInstanceColorChooserDialog() override;
 
     virtual void set_color(const Color& rColor) override;
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index 38b0501771ed..5f7abc62d94b 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -50,7 +50,6 @@
 #include <utility>
 #include <tools/helpers.hxx>
 #include <vcl/abstdlg.hxx>
-#include <vcl/abstdlgimpl.hxx>
 #include <vcl/builder.hxx>
 #include <vcl/dndlistenercontainer.hxx>
 #include <vcl/toolkit/combobox.hxx>
@@ -6860,10 +6859,10 @@ void SalInstancePopover::resize_to_request()
 IMPL_LINK_NOARG(SalInstancePopover, PopupModeEndHdl, FloatingWindow*, void) { 
signal_closed(); }
 
 SalInstanceColorChooserDialog::SalInstanceColorChooserDialog(
-    AbstractColorPickerDialog* pColorDialog)
-    : 
SalInstanceDialog(dynamic_cast<SalInstanceDialog&>(*pColorDialog->GetDialog()).getDialog(),
+    std::unique_ptr<ColorPickerDialog> pColorDialog)
+    : 
SalInstanceDialog(dynamic_cast<SalInstanceDialog&>(*pColorDialog->getDialog()).getDialog(),
                         nullptr, false)
-    , m_pAbstractColorPickerDialog(pColorDialog)
+    , m_pColorPickerDialog(std::move(pColorDialog))
 {
 }
 
@@ -6871,13 +6870,10 @@ 
SalInstanceColorChooserDialog::~SalInstanceColorChooserDialog() {}
 
 void SalInstanceColorChooserDialog::set_color(const Color& rColor)
 {
-    m_pAbstractColorPickerDialog->SetColor(rColor);
+    m_pColorPickerDialog->SetColor(rColor);
 }
 
-Color SalInstanceColorChooserDialog::get_color() const
-{
-    return m_pAbstractColorPickerDialog->GetColor();
-}
+Color SalInstanceColorChooserDialog::get_color() const { return 
m_pColorPickerDialog->GetColor(); }
 
 SalInstanceBuilder::SalInstanceBuilder(vcl::Window* pParent, 
std::u16string_view sUIRoot,
                                        const OUString& rUIFile,
@@ -7354,36 +7350,12 @@ weld::MessageDialog* 
SalInstance::CreateMessageDialog(weld::Widget* pParent,
     return new SalInstanceMessageDialog(xMessageDialog, nullptr, true);
 }
 
-namespace
-{
-class AbstractColorPickerDialog_Impl
-    : public vcl::AbstractDialogImpl_Async<AbstractColorPickerDialog, 
ColorPickerDialog>
-{
-public:
-    using AbstractDialogImpl_BASE::AbstractDialogImpl_BASE;
-
-    virtual void SetColor(const Color& rColor) override { 
m_pDlg->SetColor(rColor); }
-
-    virtual Color GetColor() const override { return m_pDlg->GetColor(); }
-
-    virtual weld::Dialog* GetDialog() const override { return 
m_pDlg->getDialog(); }
-};
-
-VclPtr<AbstractColorPickerDialog> CreateColorPickerDialog(weld::Window* 
pParent, Color nColor,
-                                                          vcl::ColorPickerMode 
eMode)
-{
-    std::unique_ptr<ColorPickerDialog> pColorPickerDialog(
-        std::make_unique<ColorPickerDialog>(pParent, nColor, eMode));
-    return 
VclPtr<AbstractColorPickerDialog_Impl>::Create(std::move(pColorPickerDialog));
-}
-}
-
 std::unique_ptr<weld::ColorChooserDialog>
 SalInstance::CreateColorChooserDialog(weld::Window* pParent, 
vcl::ColorPickerMode eMode)
 {
-    VclPtr<AbstractColorPickerDialog> pDialog = 
CreateColorPickerDialog(pParent, COL_BLACK, eMode);
-    assert(pDialog);
-    return std::make_unique<SalInstanceColorChooserDialog>(pDialog);
+    std::unique_ptr<ColorPickerDialog> pColorPickerDialog
+        = std::make_unique<ColorPickerDialog>(pParent, COL_BLACK, eMode);
+    return 
std::make_unique<SalInstanceColorChooserDialog>(std::move(pColorPickerDialog));
 }
 
 weld::Window* SalInstance::GetFrameWeld(const 
css::uno::Reference<css::awt::XWindow>& rWindow)

Reply via email to