cui/Library_cui.mk | 1 - cui/source/factory/dlgfact.cxx | 26 -------------------------- cui/source/factory/dlgfact.hxx | 3 --- include/vcl/abstdlg.hxx | 3 --- solenv/clang-format/excludelist | 2 +- vcl/Library_vcl.mk | 1 + vcl/source/app/salvtables.cxx | 31 +++++++++++++++++++++++++++---- 7 files changed, 29 insertions(+), 38 deletions(-)
New commits: commit 89ad9eec8ba4f0923a3be843a8343646e8870b90 Author: Michael Weghorn <[email protected]> AuthorDate: Thu Dec 4 19:37:17 2025 +0100 Commit: Michael Weghorn <[email protected]> CommitDate: Sat Dec 6 08:40:06 2025 +0100 tdf#169505 Move ColorPickerDialog from cui to vcl ... and simplify a bit to no longer use the dialog factory logic which was needed previously to break a dependency cycle because the cui module is above vcl. Further simplification will follow in upcoming commits. Change-Id: Ie3b0d1090300e249e40e1479a40d01caabbdf573 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195094 Reviewed-by: Michael Weghorn <[email protected]> Tested-by: Jenkins diff --git a/cui/Library_cui.mk b/cui/Library_cui.mk index a20ca726d8f0..b9e1fe20dd7c 100644 --- a/cui/Library_cui.mk +++ b/cui/Library_cui.mk @@ -117,7 +117,6 @@ $(eval $(call gb_Library_add_exception_objects,cui,\ cui/source/dialogs/about \ $(call gb_Helper_optional,EXTENSIONS, \ cui/source/dialogs/AdditionsDialog) \ - cui/source/dialogs/colorpicker \ cui/source/dialogs/cuifmsearch \ cui/source/dialogs/cuigaldlg \ cui/source/dialogs/cuigrfflt \ diff --git a/cui/source/factory/dlgfact.cxx b/cui/source/factory/dlgfact.cxx index b996d12324fe..259cc071ab77 100644 --- a/cui/source/factory/dlgfact.cxx +++ b/cui/source/factory/dlgfact.cxx @@ -48,7 +48,6 @@ #include <cuigaldlg.hxx> #include <transfrm.hxx> #include <bbdlg.hxx> -#include <colorpicker.hxx> #include <cuisrchdlg.hxx> #include <cuitbxform.hxx> #include <optdict.hxx> @@ -1422,31 +1421,6 @@ VclPtr<SfxAbstractLinksDialog> AbstractDialogFactory_Impl::CreateLinksDialog(wel return VclPtr<AbstractLinksDialog_Impl>::Create(std::move(xLinkDlg)); } -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> -AbstractDialogFactory_Impl::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)); -} - VclPtr<SfxAbstractTabDialog> AbstractDialogFactory_Impl::CreateSvxFormatCellsDialog(weld::Window* pParent, const SfxItemSet& rAttr, const SdrModel& rModel, bool bStyle) { return VclPtr<CuiAbstractTabController_Impl<SvxFormatCellsDialog>>::Create(pParent, rAttr, rModel, bStyle); diff --git a/cui/source/factory/dlgfact.hxx b/cui/source/factory/dlgfact.hxx index 4c3a9a4b436c..c949c2fc4eb0 100644 --- a/cui/source/factory/dlgfact.hxx +++ b/cui/source/factory/dlgfact.hxx @@ -59,9 +59,6 @@ public: virtual VclPtr<SfxAbstractPasteDialog> CreatePasteDialog(weld::Window* pParent) override; virtual VclPtr<SfxAbstractLinksDialog> CreateLinksDialog(weld::Window* pParent, sfx2::LinkManager* pMgr, bool bHTML = false, sfx2::SvBaseLink* p=nullptr) override; - virtual VclPtr<AbstractColorPickerDialog> - CreateColorPickerDialog(weld::Window* pParent, Color nColor, vcl::ColorPickerMode eMode) override; - virtual VclPtr<AbstractHangulHanjaConversionDialog> CreateHangulHanjaConversionDialog(weld::Widget* pParent) override; virtual VclPtr<AbstractThesaurusDialog> CreateThesaurusDialog(weld::Widget*, css::uno::Reference<css::linguistic2::XThesaurus> xThesaurus, diff --git a/include/vcl/abstdlg.hxx b/include/vcl/abstdlg.hxx index 65ea90bf1cfe..7a8e18393d4f 100644 --- a/include/vcl/abstdlg.hxx +++ b/include/vcl/abstdlg.hxx @@ -189,9 +189,6 @@ public: // The Id is an implementation detail of the factory virtual VclPtr<VclAbstractDialog> CreateVclDialog(weld::Window* pParent, sal_uInt32 nId) = 0; - virtual VclPtr<AbstractColorPickerDialog> - CreateColorPickerDialog(weld::Window* pParent, Color nColor, vcl::ColorPickerMode eMode) = 0; - // creates instance of PasswordToOpenModifyDialog from cui virtual VclPtr<AbstractPasswordToOpenModifyDialog> CreatePasswordToOpenModifyDialog(weld::Window * pParent, sal_uInt16 nMaxPasswdLen, bool bIsPasswordToModify) = 0; diff --git a/solenv/clang-format/excludelist b/solenv/clang-format/excludelist index ab94d7cb64a1..72b5f74fba92 100644 --- a/solenv/clang-format/excludelist +++ b/solenv/clang-format/excludelist @@ -2166,7 +2166,6 @@ cui/source/dialogs/DiagramDialog.cxx cui/source/dialogs/SpellAttrib.hxx cui/source/dialogs/SpellDialog.cxx cui/source/dialogs/about.cxx -cui/source/dialogs/colorpicker.cxx cui/source/dialogs/cuifmsearch.cxx cui/source/dialogs/cuigaldlg.cxx cui/source/dialogs/cuigrfflt.cxx @@ -14716,6 +14715,7 @@ vcl/source/window/brdwin.cxx vcl/source/window/bubblewindow.cxx vcl/source/window/builder.cxx vcl/source/window/clipping.cxx +vcl/source/window/colorpicker.cxx vcl/source/window/commandevent.cxx vcl/source/window/cursor.cxx vcl/source/window/debugevent.cxx diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk index 7ca18aa0a5a0..1452533b76f1 100644 --- a/vcl/Library_vcl.mk +++ b/vcl/Library_vcl.mk @@ -169,6 +169,7 @@ $(eval $(call gb_Library_add_exception_objects,vcl,\ vcl/source/window/brdwin \ vcl/source/window/bufferdevice \ vcl/source/window/accessibility \ + vcl/source/window/colorpicker \ vcl/source/window/legacyaccessibility \ vcl/source/window/clipping \ vcl/source/window/stacking \ diff --git a/cui/source/inc/colorpicker.hxx b/vcl/inc/colorpicker.hxx similarity index 100% rename from cui/source/inc/colorpicker.hxx rename to vcl/inc/colorpicker.hxx diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index 18f5ee98283e..38b0501771ed 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -25,6 +25,7 @@ #include <com/sun/star/accessibility/AccessibleRelationType.hpp> #include <com/sun/star/awt/XWindow.hpp> #include <com/sun/star/awt/XVclWindowPeer.hpp> +#include <colorpicker.hxx> #include <o3tl/safeint.hxx> #include <o3tl/sorted_vector.hxx> #include <o3tl/string_view.hxx> @@ -49,6 +50,7 @@ #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> @@ -7352,13 +7354,34 @@ 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) { - VclAbstractDialogFactory* pFact = VclAbstractDialogFactory::Create(); - assert(pFact); - VclPtr<AbstractColorPickerDialog> pDialog - = pFact->CreateColorPickerDialog(pParent, COL_BLACK, eMode); + VclPtr<AbstractColorPickerDialog> pDialog = CreateColorPickerDialog(pParent, COL_BLACK, eMode); assert(pDialog); return std::make_unique<SalInstanceColorChooserDialog>(pDialog); } diff --git a/cui/source/dialogs/colorpicker.cxx b/vcl/source/window/colorpicker.cxx similarity index 100% rename from cui/source/dialogs/colorpicker.cxx rename to vcl/source/window/colorpicker.cxx
