cui/source/factory/dlgfact.cxx | 309 +++------------------ cui/source/factory/dlgfact.hxx | 591 ++++++++--------------------------------- 2 files changed, 169 insertions(+), 731 deletions(-)
New commits: commit de5bf7f88026310866a5a4901ac1b46424a73571 Author: Jan-Marek Glogowski <glo...@fbihome.de> AuthorDate: Fri Nov 19 01:39:06 2021 +0100 Commit: Jan-Marek Glogowski <glo...@fbihome.de> CommitDate: Fri Nov 19 13:08:16 2021 +0100 Reuse macros for AbstractDialogFactory_Impl Now that all the abstract dialogs are welded, update and rename the existing boilerplate macros, to cut down the C'n'P code size. Change-Id: Iff8f452ca3dfce9a63c4fb73ab3a5025566810e2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125511 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glo...@fbihome.de> diff --git a/cui/source/factory/dlgfact.cxx b/cui/source/factory/dlgfact.cxx index 75fb59b7fe29..82c151f9ab91 100644 --- a/cui/source/factory/dlgfact.cxx +++ b/cui/source/factory/dlgfact.cxx @@ -100,218 +100,48 @@ using namespace ::com::sun::star::container; using ::com::sun::star::uno::Reference; using namespace svx; -// AbstractTabDialog implementations just forwards everything to the dialog -short CuiAbstractController_Impl::Execute() -{ - return m_xDlg->run(); -} - -short CuiAbstractTipController_Impl::Execute() -{ - return m_xDlg->run(); -} - -bool CuiAbstractTipController_Impl::StartExecuteAsync(AsyncContext& rCtx) -{ - return weld::DialogController::runAsync(m_xDlg, rCtx.maEndDialogFn); -} - -short CuiAbstractSingleTabController_Impl::Execute() -{ - return m_xDlg->run(); -} - -short AbstractHangulHanjaConversionDialog_Impl::Execute() -{ - return m_xDlg->run(); -} - -short AbstractFmShowColsDialog_Impl::Execute() -{ - return m_xDlg->run(); -} - -short AbstractHyphenWordDialog_Impl::Execute() -{ - return m_xDlg->run(); -} - -short AbstractThesaurusDialog_Impl::Execute() -{ - return m_xDlg->run(); -} - -bool AbstractThesaurusDialog_Impl::StartExecuteAsync(AsyncContext &rCtx) -{ - return SfxDialogController::runAsync(m_xDlg, rCtx.maEndDialogFn); -} - -short AbstractSvxZoomDialog_Impl::Execute() -{ - return m_xDlg->run(); -} - -short AbstractTitleDialog_Impl::Execute() -{ - return m_xDlg->run(); -} - -bool AbstractScriptSelectorDialog_Impl::StartExecuteAsync(AsyncContext &rCtx) -{ - return SfxDialogController::runAsync(m_xDlg, rCtx.maEndDialogFn); -} - -short AbstractScriptSelectorDialog_Impl::Execute() -{ - return m_xDlg->run(); -} - -short AbstractGalleryIdDialog_Impl::Execute() -{ - return m_xDlg->run(); -} - -short AbstractURLDlg_Impl::Execute() -{ - return m_xDlg->run(); -} - -short AbstractSvxSearchSimilarityDialog_Impl::Execute() -{ - return m_xDlg->run(); -} - -short AbstractSvxTransformTabDialog_Impl::Execute() -{ - return m_xDlg->run(); -} - -bool AbstractSvxTransformTabDialog_Impl::StartExecuteAsync(AsyncContext &rCtx) -{ - return SfxTabDialogController::runAsync(m_xDlg, rCtx.maEndDialogFn); -} - -short AbstractSvxCaptionDialog_Impl::Execute() -{ - return m_xDlg->run(); -} - -bool AbstractSvxCaptionDialog_Impl::StartExecuteAsync(AsyncContext &rCtx) -{ - return SfxTabDialogController::runAsync(m_xDlg, rCtx.maEndDialogFn); -} - -short AbstractSvxJSearchOptionsDialog_Impl::Execute() -{ - return m_xDlg->run(); -} - -short AbstractFmInputRecordNoDialog_Impl::Execute() -{ - return m_xDlg->run(); -} - -short AbstractSvxNewDictionaryDialog_Impl::Execute() -{ - return m_xDlg->run(); -} - -short AbstractSvxNameDialog_Impl::Execute() -{ - return m_xDlg->run(); -} - -// #i68101# -short AbstractSvxObjectNameDialog_Impl::Execute() -{ - return m_xDlg->run(); -} - -short AbstractSvxObjectTitleDescDialog_Impl::Execute() -{ - return m_xDlg->run(); -} - -short AbstractSvxMultiPathDialog_Impl::Execute() -{ - return m_xDlg->run(); -} - -short AbstractSvxPathSelectDialog_Impl::Execute() -{ - return m_xDlg->run(); -} - -short AbstractSvxHpLinkDlg_Impl::Execute() -{ - return m_xDlg->run(); -} - -short AbstractFmSearchDialog_Impl::Execute() -{ - return m_xDlg->run(); -} - -short AbstractGraphicFilterDialog_Impl::Execute() -{ - return m_xDlg->run(); -} - -short AbstractSvxAreaTabDialog_Impl::Execute() -{ - return m_xDlg->run(); -} - -bool AbstractSvxAreaTabDialog_Impl::StartExecuteAsync(AsyncContext &rCtx) -{ - return SfxTabDialogController::runAsync(m_xDlg, rCtx.maEndDialogFn); -} - -short AbstractPasteDialog_Impl::Execute() -{ - return m_xDlg->run(); -} - -bool AbstractPasteDialog_Impl::StartExecuteAsync(AsyncContext &rCtx) -{ - return SfxDialogController::runAsync(m_xDlg, rCtx.maEndDialogFn); -} - -short AbstractInsertObjectDialog_Impl::Execute() -{ - return m_xDlg->run(); -} - -short AbstractLinksDialog_Impl::Execute() -{ - return m_xDlg->run(); -} - -short AbstractSpellDialog_Impl::Execute() -{ - return m_xDlg->run(); -} - -bool AbstractSpellDialog_Impl::StartExecuteAsync(AsyncContext &rCtx) -{ - return SfxDialogController::runAsync(m_xDlg, rCtx.maEndDialogFn); -} - -short AbstractSvxPostItDialog_Impl::Execute() -{ - return m_xDlg->run(); -} - -short AbstractPasswordToOpenModifyDialog_Impl::Execute() -{ - return m_xDlg->run(); -} - -short AbstractSvxCharacterMapDialog_Impl::Execute() -{ - return m_xDlg->run(); -} +IMPL_ABSTDLG_CLASS(AbstractAdditionsDialog) +IMPL_ABSTDLG_CLASS(AbstractDiagramDialog) +IMPL_ABSTDLG_CLASS(AbstractFmInputRecordNoDialog) +IMPL_ABSTDLG_CLASS(AbstractFmSearchDialog) +IMPL_ABSTDLG_CLASS(AbstractFmShowColsDialog) +IMPL_ABSTDLG_CLASS(AbstractGalleryIdDialog) +IMPL_ABSTDLG_CLASS(AbstractGraphicFilterDialog) +IMPL_ABSTDLG_CLASS(AbstractHangulHanjaConversionDialog) +IMPL_ABSTDLG_CLASS(AbstractHyphenWordDialog) +IMPL_ABSTDLG_CLASS(AbstractInsertObjectDialog) +IMPL_ABSTDLG_CLASS(AbstractLinksDialog) +IMPL_ABSTDLG_CLASS(AbstractPasswordToOpenModifyDialog) +IMPL_ABSTDLG_CLASS(AbstractQrCodeGenDialog) +IMPL_ABSTDLG_CLASS(AbstractScreenshotAnnotationDlg) +IMPL_ABSTDLG_CLASS(AbstractSignatureLineDialog) +IMPL_ABSTDLG_CLASS(AbstractSignSignatureLineDialog) +IMPL_ABSTDLG_CLASS(AbstractSvxCharacterMapDialog) +IMPL_ABSTDLG_CLASS(AbstractSvxHpLinkDlg) +IMPL_ABSTDLG_CLASS(AbstractSvxJSearchOptionsDialog) +IMPL_ABSTDLG_CLASS(AbstractSvxMultiPathDialog) +IMPL_ABSTDLG_CLASS(AbstractSvxNameDialog) +IMPL_ABSTDLG_CLASS(AbstractSvxNewDictionaryDialog) +IMPL_ABSTDLG_CLASS(AbstractSvxObjectNameDialog) +IMPL_ABSTDLG_CLASS(AbstractSvxObjectTitleDescDialog) +IMPL_ABSTDLG_CLASS(AbstractSvxPathSelectDialog) +IMPL_ABSTDLG_CLASS(AbstractSvxPostItDialog) +IMPL_ABSTDLG_CLASS(AbstractSvxSearchSimilarityDialog) +IMPL_ABSTDLG_CLASS(AbstractSvxZoomDialog) +IMPL_ABSTDLG_CLASS(AbstractTitleDialog) +IMPL_ABSTDLG_CLASS(AbstractURLDlg) +IMPL_ABSTDLG_CLASS_ASYNC(AbstractPasteDialog,SfxDialogController) +IMPL_ABSTDLG_CLASS_ASYNC(AbstractScriptSelectorDialog,SfxDialogController) +IMPL_ABSTDLG_CLASS_ASYNC(AbstractSpellDialog,SfxDialogController) +IMPL_ABSTDLG_CLASS_ASYNC(AbstractSvxAreaTabDialog,SfxTabDialogController) +IMPL_ABSTDLG_CLASS_ASYNC(AbstractSvxCaptionDialog,SfxTabDialogController) +IMPL_ABSTDLG_CLASS_ASYNC(AbstractSvxTransformTabDialog,SfxTabDialogController) +IMPL_ABSTDLG_CLASS_ASYNC(AbstractThesaurusDialog,SfxDialogController) +IMPL_ABSTDLG_CLASS_ASYNC(CuiAbstractControllerAsync,weld::DialogController) +IMPL_ABSTDLG_CLASS_ASYNC(CuiAbstractTabController,SfxTabDialogController) +IMPL_ABSTDLG_CLASS(CuiAbstractController) +IMPL_ABSTDLG_CLASS(CuiAbstractSingleTabController) const SfxItemSet* AbstractSvxCharacterMapDialog_Impl::GetOutputItemSet() const { @@ -323,36 +153,6 @@ void AbstractSvxCharacterMapDialog_Impl::SetText(const OUString& rStr) m_xDlg->set_title(rStr); } -short AbstractSignatureLineDialog_Impl::Execute() -{ - return m_xDlg->run(); -} - -short AbstractSignSignatureLineDialog_Impl::Execute() -{ - return m_xDlg->run(); -} - -short AbstractQrCodeGenDialog_Impl::Execute() -{ - return m_xDlg->run(); -} - -short AbstractScreenshotAnnotationDlg_Impl::Execute() -{ - return m_xDlg->run(); -} - -short CuiAbstractTabController_Impl::Execute() -{ - return m_xDlg->run(); -} - -bool CuiAbstractTabController_Impl::StartExecuteAsync(AsyncContext &rCtx) -{ - return SfxTabDialogController::runAsync(m_xDlg, rCtx.maEndDialogFn); -} - void CuiAbstractTabController_Impl::SetCurPageId( const OString &rName ) { m_xDlg->SetCurPageId( rName ); @@ -1390,46 +1190,33 @@ VclPtr<AbstractSvxPostItDialog> AbstractDialogFactory_Impl::CreateSvxPostItDialo namespace { -class SvxMacroAssignDialog : public VclAbstractDialog +class SvxMacroAssignDialog_Impl : public VclAbstractDialog { public: - SvxMacroAssignDialog( weld::Window* _pParent, const Reference< XFrame >& _rxDocumentFrame, const bool _bUnoDialogMode, + SvxMacroAssignDialog_Impl( weld::Window* _pParent, const Reference< XFrame >& _rxDocumentFrame, const bool _bUnoDialogMode, const Reference< XNameReplace >& _rxEvents, const sal_uInt16 _nInitiallySelectedEvent ) :m_aItems( SfxGetpApp()->GetPool(), svl::Items<SID_ATTR_MACROITEM, SID_ATTR_MACROITEM> ) { m_aItems.Put( SfxBoolItem( SID_ATTR_MACROITEM, _bUnoDialogMode ) ); - m_xDialog.reset(new SvxMacroAssignDlg(_pParent, _rxDocumentFrame, m_aItems, _rxEvents, _nInitiallySelectedEvent)); + m_xDlg.reset(new SvxMacroAssignDlg(_pParent, _rxDocumentFrame, m_aItems, _rxEvents, _nInitiallySelectedEvent)); } virtual short Execute() override; private: SfxItemSet m_aItems; - std::unique_ptr<SvxMacroAssignDlg> m_xDialog; + std::unique_ptr<SvxMacroAssignDlg> m_xDlg; }; +IMPL_ABSTDLG_CLASS(SvxMacroAssignDialog) } -short SvxMacroAssignDialog::Execute() -{ - return m_xDialog->run(); -} - -short AbstractAdditionsDialog_Impl::Execute() -{ - return m_xDlg->run(); -} - -short AbstractDiagramDialog_Impl::Execute() -{ - return m_xDlg->run(); -} VclPtr<VclAbstractDialog> AbstractDialogFactory_Impl::CreateSvxMacroAssignDlg( weld::Window* _pParent, const Reference< XFrame >& _rxDocumentFrame, const bool _bUnoDialogMode, const Reference< XNameReplace >& _rxEvents, const sal_uInt16 _nInitiallySelectedEvent ) { - return VclPtr<SvxMacroAssignDialog>::Create( _pParent, _rxDocumentFrame, _bUnoDialogMode, _rxEvents, _nInitiallySelectedEvent ); + return VclPtr<SvxMacroAssignDialog_Impl>::Create(_pParent, _rxDocumentFrame, _bUnoDialogMode, _rxEvents, _nInitiallySelectedEvent); } // Factories for TabPages @@ -1697,7 +1484,7 @@ AbstractDialogFactory_Impl::CreateAboutDialog(weld::Window* pParent) VclPtr<VclAbstractDialog> AbstractDialogFactory_Impl::CreateTipOfTheDayDialog(weld::Window* pParent) { - return VclPtr<CuiAbstractTipController_Impl>::Create( + return VclPtr<CuiAbstractControllerAsync_Impl>::Create( std::make_shared<TipOfTheDayDialog>(pParent)); } diff --git a/cui/source/factory/dlgfact.hxx b/cui/source/factory/dlgfact.hxx index 16de55fd05a3..5a07bf8e95fb 100644 --- a/cui/source/factory/dlgfact.hxx +++ b/cui/source/factory/dlgfact.hxx @@ -59,106 +59,65 @@ #include <zoom.hxx> #include <AdditionsDialog.hxx> -class SfxSingleTabDialogController; -class SfxItemPool; -class FmShowColsDialog; -class SvxZoomDialog; -class FmInputRecordNoDialog; -class SvxJSearchOptionsDialog; -class SvxNewDictionaryDialog; -class SvxNameDialog; - -// #i68101# -class SvxObjectNameDialog; -class SvxObjectTitleDescDialog; +#define DECL_ABSTDLG_CLASS_(Class,Base,Dialog,StdPtr) \ +class Class##_Impl final : public Base \ +{ \ + StdPtr<Dialog> m_xDlg; \ +public: \ + explicit Class##_Impl(StdPtr<Dialog> p) : m_xDlg(std::move(p)) {} \ + virtual short Execute() override; + +#define DECL_ABSTDLG_CLASS_UNIQUE(Class,Base,Dialog) \ +DECL_ABSTDLG_CLASS_(Class,Base,Dialog,std::unique_ptr) + +#define DECL_ABSTDLG_CLASS_SHARED(Class,Base,Dialog) \ +DECL_ABSTDLG_CLASS_(Class,Base,Dialog,std::shared_ptr) -class SvxMultiPathDialog; -class SvxHpLinkDlg; -class FmSearchDialog; -class Graphic; -class GraphicFilterDialog; -class SvxAreaTabDialog; -class InsertObjectDialog_Impl; -class SvPasteObjectDialog; -class SvBaseLinksDlg; -class SvxTransformTabDialog; -class SvxCaptionTabDialog; -class SvxThesaurusDialog; -class SvxHyphenWordDialog; - -namespace svx{ -class HangulHanjaConversionDialog; +#define IMPL_ABSTDLG_CLASS(Class) \ +short Class##_Impl::Execute() \ +{ \ + return m_xDlg->run(); \ } -using namespace svx; - -#define DECL_ABSTDLG_BASE(Class,DialogClass) \ - ScopedVclPtr<DialogClass> pDlg; \ -public: \ - explicit Class( DialogClass* p) \ - : pDlg(p) \ - {} \ - virtual short Execute() override; \ - virtual bool StartExecuteAsync(VclAbstractDialog::AsyncContext &rCtx) override; - -#define IMPL_ABSTDLG_BASE(Class) \ -short Class::Execute() \ -{ \ - return pDlg->Execute(); \ -} \ -bool Class::StartExecuteAsync(VclAbstractDialog::AsyncContext &rCtx) \ -{ \ - return pDlg->StartExecuteAsync(rCtx); \ + +#define DECL_ABSTDLG_CLASS(Class,Dialog) \ +DECL_ABSTDLG_CLASS_UNIQUE(Class,Class,Dialog) + +// Async AKA std::shared_ptr + +#define DECL_ABSTDLG_CLASS_SHARED_ASYNC(Class,Base,Dialog) \ +DECL_ABSTDLG_CLASS_SHARED(Class,Base,Dialog) \ + virtual bool StartExecuteAsync(AsyncContext &rCtx) override; + +#define DECL_ABSTDLG_CLASS_ASYNC(Class,Dialog) \ +DECL_ABSTDLG_CLASS_SHARED_ASYNC(Class,Class,Dialog) + +#define IMPL_ABSTDLG_CLASS_ASYNC(Class,Dialog) \ +short Class##_Impl::Execute() \ +{ \ + return m_xDlg->run(); \ +} \ +bool Class##_Impl::StartExecuteAsync(AsyncContext &rCtx) \ +{ \ + return Dialog::runAsync(m_xDlg, rCtx.maEndDialogFn); \ } -class CuiAbstractController_Impl : public VclAbstractDialog -{ - std::unique_ptr<weld::DialogController> m_xDlg; -public: - explicit CuiAbstractController_Impl(std::unique_ptr<weld::DialogController> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; +// CuiAbstractController_Impl +DECL_ABSTDLG_CLASS_UNIQUE(CuiAbstractController, VclAbstractDialog, weld::DialogController) }; -class CuiAbstractTipController_Impl : public VclAbstractDialog -{ - std::shared_ptr<weld::DialogController> m_xDlg; - -public: - explicit CuiAbstractTipController_Impl(std::shared_ptr<weld::DialogController> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; - virtual bool StartExecuteAsync(AsyncContext& rCtx) override; +// CuiAbstractControllerAsync_Impl +DECL_ABSTDLG_CLASS_SHARED_ASYNC(CuiAbstractControllerAsync, VclAbstractDialog, weld::DialogController) }; -class CuiAbstractSingleTabController_Impl : public SfxAbstractDialog -{ - std::unique_ptr<SfxSingleTabDialogController> m_xDlg; -public: - explicit CuiAbstractSingleTabController_Impl(std::unique_ptr<SfxSingleTabDialogController> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; +// CuiAbstractSingleTabController_Impl +DECL_ABSTDLG_CLASS_UNIQUE(CuiAbstractSingleTabController, SfxAbstractDialog, SfxSingleTabDialogController) virtual const SfxItemSet* GetOutputItemSet() const override; - //From class Window. virtual void SetText( const OUString& rStr ) override; }; -class CuiAbstractTabController_Impl : public SfxAbstractTabDialog -{ - std::shared_ptr<SfxTabDialogController> m_xDlg; -public: - explicit CuiAbstractTabController_Impl(std::shared_ptr<SfxTabDialogController> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; - virtual bool StartExecuteAsync(AsyncContext &rCtx) override; +// CuiAbstractTabController_Impl +DECL_ABSTDLG_CLASS_SHARED_ASYNC(CuiAbstractTabController, SfxAbstractTabDialog, SfxTabDialogController) virtual void SetCurPageId( const OString &rName ) override; virtual const SfxItemSet* GetOutputItemSet() const override; virtual WhichRangesContainer GetInputRanges( const SfxItemPool& pItem ) override; @@ -172,16 +131,8 @@ public: virtual OString GetScreenshotId() const override; }; -class AbstractHangulHanjaConversionDialog_Impl: public AbstractHangulHanjaConversionDialog -{ -private: - std::unique_ptr<HangulHanjaConversionDialog> m_xDlg; -public: - explicit AbstractHangulHanjaConversionDialog_Impl(std::unique_ptr<HangulHanjaConversionDialog> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; +// AbstractHangulHanjaConversionDialog_Impl +DECL_ABSTDLG_CLASS_UNIQUE(AbstractHangulHanjaConversionDialog,AbstractHangulHanjaConversionDialog,svx::HangulHanjaConversionDialog) virtual void EndDialog(sal_Int32 nResult) override; virtual void EnableRubySupport( bool _bVal ) override; virtual void SetByCharacter( bool _bByCharacter ) override ; @@ -210,129 +161,53 @@ public: virtual OUString GetCurrentSuggestion( ) const override; }; -class AbstractThesaurusDialog_Impl : public AbstractThesaurusDialog -{ - std::shared_ptr<SvxThesaurusDialog> m_xDlg; -public: - explicit AbstractThesaurusDialog_Impl(std::shared_ptr<SvxThesaurusDialog> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; - virtual bool StartExecuteAsync(AsyncContext &rCtx) override; +// AbstractThesaurusDialog_Impl +DECL_ABSTDLG_CLASS_ASYNC(AbstractThesaurusDialog,SvxThesaurusDialog) virtual OUString GetWord() override; }; -class AbstractHyphenWordDialog_Impl: public AbstractHyphenWordDialog -{ - std::unique_ptr<SvxHyphenWordDialog> m_xDlg; -public: - explicit AbstractHyphenWordDialog_Impl(std::unique_ptr<SvxHyphenWordDialog> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; +// AbstractHyphenWordDialog_Impl +DECL_ABSTDLG_CLASS(AbstractHyphenWordDialog,SvxHyphenWordDialog) }; -class FmShowColsDialog; -class AbstractFmShowColsDialog_Impl : public AbstractFmShowColsDialog -{ - std::unique_ptr<FmShowColsDialog> m_xDlg; -public: - explicit AbstractFmShowColsDialog_Impl(std::unique_ptr<FmShowColsDialog> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; +// AbstractFmShowColsDialog_Impl +DECL_ABSTDLG_CLASS(AbstractFmShowColsDialog,FmShowColsDialog) virtual void SetColumns(const css::uno::Reference< css::container::XIndexContainer>& xCols) override; }; -class SvxZoomDialog; -class AbstractSvxZoomDialog_Impl : public AbstractSvxZoomDialog -{ - std::unique_ptr<SvxZoomDialog> m_xDlg; -public: - explicit AbstractSvxZoomDialog_Impl(std::unique_ptr<SvxZoomDialog> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; +// AbstractSvxZoomDialog_Impl +DECL_ABSTDLG_CLASS(AbstractSvxZoomDialog,SvxZoomDialog) virtual void SetLimits( sal_uInt16 nMin, sal_uInt16 nMax ) override; virtual void HideButton( ZoomButtonId nBtnId ) override; virtual const SfxItemSet* GetOutputItemSet() const override ; }; -namespace svx{ class SpellDialog;} -class AbstractSpellDialog_Impl : public AbstractSpellDialog -{ - std::shared_ptr<svx::SpellDialog> m_xDlg; -public: - explicit AbstractSpellDialog_Impl(std::shared_ptr<svx::SpellDialog> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; - virtual bool StartExecuteAsync(AsyncContext &rCtx) override; +// AbstractSpellDialog_Impl +DECL_ABSTDLG_CLASS_SHARED_ASYNC(AbstractSpellDialog, AbstractSpellDialog, svx::SpellDialog) virtual void InvalidateDialog() override; virtual std::shared_ptr<SfxDialogController> GetController() override; virtual SfxBindings& GetBindings() override; }; -class TitleDialog; -class AbstractTitleDialog_Impl : public AbstractTitleDialog -{ -protected: - std::unique_ptr<TitleDialog> m_xDlg; -public: - explicit AbstractTitleDialog_Impl(std::unique_ptr<TitleDialog> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; +// AbstractTitleDialog_Impl +DECL_ABSTDLG_CLASS(AbstractTitleDialog,TitleDialog) virtual OUString GetTitle() const override ; }; -class SvxScriptSelectorDialog; -class AbstractScriptSelectorDialog_Impl : public AbstractScriptSelectorDialog -{ - std::shared_ptr<SvxScriptSelectorDialog> m_xDlg; -public: - explicit AbstractScriptSelectorDialog_Impl(std::shared_ptr<SvxScriptSelectorDialog> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; - virtual bool StartExecuteAsync(AsyncContext &rCtx) override; +// AbstractScriptSelectorDialog_Impl +DECL_ABSTDLG_CLASS_ASYNC(AbstractScriptSelectorDialog,SvxScriptSelectorDialog) virtual OUString GetScriptURL() const override; virtual void SetRunLabel() override; }; -class GalleryIdDialog; -class AbstractGalleryIdDialog_Impl : public AbstractGalleryIdDialog -{ -protected: - std::unique_ptr<GalleryIdDialog> m_xDlg; -public: - explicit AbstractGalleryIdDialog_Impl(std::unique_ptr<GalleryIdDialog> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; +// AbstractGalleryIdDialog_Impl +DECL_ABSTDLG_CLASS(AbstractGalleryIdDialog,GalleryIdDialog) virtual sal_uInt32 GetId() const override; }; -class URLDlg; -class AbstractURLDlg_Impl :public AbstractURLDlg -{ -protected: - std::unique_ptr<URLDlg> m_xDlg; -public: - explicit AbstractURLDlg_Impl(std::unique_ptr<URLDlg> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; +// AbstractURLDlg_Impl +DECL_ABSTDLG_CLASS(AbstractURLDlg, URLDlg) virtual OUString GetURL() const override; virtual OUString GetAltText() const override; virtual OUString GetDesc() const override; @@ -340,45 +215,21 @@ public: virtual OUString GetName() const override; }; -class SvxSearchSimilarityDialog; -class AbstractSvxSearchSimilarityDialog_Impl :public AbstractSvxSearchSimilarityDialog -{ - std::unique_ptr<SvxSearchSimilarityDialog> m_xDlg; -public: - explicit AbstractSvxSearchSimilarityDialog_Impl(std::unique_ptr<SvxSearchSimilarityDialog> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; +// AbstractSvxSearchSimilarityDialog_Impl +DECL_ABSTDLG_CLASS(AbstractSvxSearchSimilarityDialog,SvxSearchSimilarityDialog) virtual sal_uInt16 GetOther() override; virtual sal_uInt16 GetShorter() override; virtual sal_uInt16 GetLonger() override; virtual bool IsRelaxed() override; }; -class SvxJSearchOptionsDialog; -class AbstractSvxJSearchOptionsDialog_Impl : public AbstractSvxJSearchOptionsDialog -{ - std::unique_ptr<SvxJSearchOptionsDialog> m_xDlg; -public: - explicit AbstractSvxJSearchOptionsDialog_Impl(std::unique_ptr<SvxJSearchOptionsDialog> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; +// AbstractSvxJSearchOptionsDialog_Impl +DECL_ABSTDLG_CLASS(AbstractSvxJSearchOptionsDialog,SvxJSearchOptionsDialog) virtual TransliterationFlags GetTransliterationFlags() const override; }; -class AbstractSvxTransformTabDialog_Impl : public AbstractSvxTransformTabDialog -{ - std::shared_ptr<SvxTransformTabDialog> m_xDlg; -public: - explicit AbstractSvxTransformTabDialog_Impl(std::shared_ptr<SvxTransformTabDialog> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; - virtual bool StartExecuteAsync(AsyncContext &rCtx) override; +// AbstractSvxTransformTabDialog_Impl +DECL_ABSTDLG_CLASS_ASYNC(AbstractSvxTransformTabDialog,SvxTransformTabDialog) virtual void SetValidateFramePosLink( const Link<SvxSwFrameValidation&,void>& rLink ) override; virtual void SetCurPageId( const OString& rName ) override; virtual const SfxItemSet* GetOutputItemSet() const override; @@ -387,16 +238,8 @@ public: virtual void SetText( const OUString& rStr ) override; }; -class AbstractSvxCaptionDialog_Impl : public AbstractSvxCaptionDialog -{ - std::shared_ptr<SvxCaptionTabDialog> m_xDlg; -public: - explicit AbstractSvxCaptionDialog_Impl(std::shared_ptr<SvxCaptionTabDialog> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; - virtual bool StartExecuteAsync(AsyncContext &rCtx) override; +// AbstractSvxCaptionDialog_Impl +DECL_ABSTDLG_CLASS_ASYNC(AbstractSvxCaptionDialog,SvxCaptionTabDialog) virtual void SetValidateFramePosLink( const Link<SvxSwFrameValidation&,void>& rLink ) override; virtual void SetCurPageId( const OString& rName ) override; virtual const SfxItemSet* GetOutputItemSet() const override; @@ -405,42 +248,19 @@ public: virtual void SetText( const OUString& rStr ) override; }; -class FmInputRecordNoDialog; -class AbstractFmInputRecordNoDialog_Impl :public AbstractFmInputRecordNoDialog -{ - std::unique_ptr<FmInputRecordNoDialog> m_xDlg; -public: - explicit AbstractFmInputRecordNoDialog_Impl(std::unique_ptr<FmInputRecordNoDialog> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; +// AbstractFmInputRecordNoDialog_Impl +DECL_ABSTDLG_CLASS(AbstractFmInputRecordNoDialog,FmInputRecordNoDialog) virtual void SetValue(tools::Long nNew) override ; virtual tools::Long GetValue() const override ; }; -class SvxNewDictionaryDialog; -class AbstractSvxNewDictionaryDialog_Impl :public AbstractSvxNewDictionaryDialog -{ - std::unique_ptr<SvxNewDictionaryDialog> m_xDlg; -public: - explicit AbstractSvxNewDictionaryDialog_Impl(std::unique_ptr<SvxNewDictionaryDialog> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; +// AbstractSvxNewDictionaryDialog_Impl +DECL_ABSTDLG_CLASS(AbstractSvxNewDictionaryDialog,SvxNewDictionaryDialog) virtual css::uno::Reference< css::linguistic2::XDictionary > GetNewDictionary() override; }; -class SvxNameDialog; -class AbstractSvxNameDialog_Impl :public AbstractSvxNameDialog -{ -public: - explicit AbstractSvxNameDialog_Impl(std::unique_ptr<SvxNameDialog> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; +// AbstractSvxNameDialog_Impl +DECL_ABSTDLG_CLASS(AbstractSvxNameDialog,SvxNameDialog) virtual void GetName( OUString& rName ) override ; virtual void SetCheckNameHdl( const Link<AbstractSvxNameDialog&,bool>& rLink, bool bCheckImmediately = false ) override ; virtual void SetCheckNameTooltipHdl( const Link<AbstractSvxNameDialog&, OUString>& rLink ) override ; @@ -448,8 +268,8 @@ public: //from class Window virtual void SetHelpId( const OString& ) override ; virtual void SetText( const OUString& rStr ) override ; + private: - std::unique_ptr<SvxNameDialog> m_xDlg; Link<AbstractSvxNameDialog&,bool> aCheckNameHdl; Link<AbstractSvxNameDialog&,OUString> aCheckNameTooltipHdl; DECL_LINK(CheckNameHdl, SvxNameDialog&, bool); @@ -459,120 +279,57 @@ private: class SvxObjectNameDialog; class SvxObjectTitleDescDialog; -class AbstractSvxObjectNameDialog_Impl : public AbstractSvxObjectNameDialog -{ -public: - explicit AbstractSvxObjectNameDialog_Impl(std::unique_ptr<SvxObjectNameDialog> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; +// AbstractSvxObjectNameDialog_Impl +DECL_ABSTDLG_CLASS(AbstractSvxObjectNameDialog,SvxObjectNameDialog) virtual void GetName(OUString& rName) override ; virtual void SetCheckNameHdl(const Link<AbstractSvxObjectNameDialog&,bool>& rLink) override; private: - std::unique_ptr<SvxObjectNameDialog> m_xDlg; Link<AbstractSvxObjectNameDialog&,bool> aCheckNameHdl; DECL_LINK(CheckNameHdl, SvxObjectNameDialog&, bool); }; -class AbstractSvxObjectTitleDescDialog_Impl :public AbstractSvxObjectTitleDescDialog -{ - std::unique_ptr<SvxObjectTitleDescDialog> m_xDlg; -public: - explicit AbstractSvxObjectTitleDescDialog_Impl(std::unique_ptr<SvxObjectTitleDescDialog> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; +// AbstractSvxObjectTitleDescDialog_Impl +DECL_ABSTDLG_CLASS(AbstractSvxObjectTitleDescDialog,SvxObjectTitleDescDialog) virtual void GetTitle(OUString& rName) override; virtual void GetDescription(OUString& rName) override; }; -class AbstractSvxMultiPathDialog_Impl : public AbstractSvxMultiPathDialog -{ - std::unique_ptr<SvxMultiPathDialog> m_xDlg; -public: - explicit AbstractSvxMultiPathDialog_Impl(std::unique_ptr<SvxMultiPathDialog> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; +// AbstractSvxMultiPathDialog_Impl +DECL_ABSTDLG_CLASS(AbstractSvxMultiPathDialog,SvxMultiPathDialog) virtual OUString GetPath() const override; virtual void SetPath( const OUString& rPath ) override; virtual void SetTitle( const OUString& rNewTitle ) override; }; -class SvxPathSelectDialog; -class AbstractSvxPathSelectDialog_Impl : public AbstractSvxMultiPathDialog -{ -protected: - std::unique_ptr<SvxPathSelectDialog> m_xDlg; -public: - explicit AbstractSvxPathSelectDialog_Impl(std::unique_ptr<SvxPathSelectDialog> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; +// AbstractSvxPathSelectDialog_Impl +DECL_ABSTDLG_CLASS_UNIQUE(AbstractSvxPathSelectDialog,AbstractSvxMultiPathDialog,SvxPathSelectDialog) virtual OUString GetPath() const override; virtual void SetPath( const OUString& rPath ) override; virtual void SetTitle( const OUString& rNewTitle ) override; }; -class SvxHpLinkDlg; -class AbstractSvxHpLinkDlg_Impl : public AbstractSvxHpLinkDlg -{ -protected: - std::shared_ptr<SvxHpLinkDlg> m_xDlg; -public: - explicit AbstractSvxHpLinkDlg_Impl(std::shared_ptr<SvxHpLinkDlg> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; +// AbstractSvxHpLinkDlg_Impl +DECL_ABSTDLG_CLASS_SHARED(AbstractSvxHpLinkDlg,AbstractSvxHpLinkDlg,SvxHpLinkDlg) virtual std::shared_ptr<SfxDialogController> GetController() override; virtual bool QueryClose() override; }; -class FmSearchDialog; +// AbstractFmSearchDialog_Impl struct FmFoundRecordInformation; -class AbstractFmSearchDialog_Impl :public AbstractFmSearchDialog -{ - std::unique_ptr<FmSearchDialog> m_xDlg; -public: - explicit AbstractFmSearchDialog_Impl(std::unique_ptr<FmSearchDialog> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; +DECL_ABSTDLG_CLASS(AbstractFmSearchDialog,FmSearchDialog) virtual void SetFoundHandler(const Link<FmFoundRecordInformation&,void>& lnk) override ; virtual void SetCanceledNotFoundHdl(const Link<FmFoundRecordInformation&,void>& lnk) override; virtual void SetActiveField(const OUString& strField) override; }; -class AbstractGraphicFilterDialog_Impl : public AbstractGraphicFilterDialog -{ - std::unique_ptr<GraphicFilterDialog> m_xDlg; -public: - explicit AbstractGraphicFilterDialog_Impl(std::unique_ptr<GraphicFilterDialog> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; +// AbstractGraphicFilterDialog_Impl +DECL_ABSTDLG_CLASS(AbstractGraphicFilterDialog,GraphicFilterDialog) virtual Graphic GetFilteredGraphic( const Graphic& rGraphic, double fScaleX, double fScaleY ) override; }; -class SvxAreaTabDialog; -class AbstractSvxAreaTabDialog_Impl : public AbstractSvxAreaTabDialog -{ - std::shared_ptr<SvxAreaTabDialog> m_xDlg; -public: - explicit AbstractSvxAreaTabDialog_Impl(std::shared_ptr<SvxAreaTabDialog> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; - virtual bool StartExecuteAsync(AsyncContext &rCtx) override; +// AbstractSvxAreaTabDialog_Impl +DECL_ABSTDLG_CLASS_ASYNC(AbstractSvxAreaTabDialog,SvxAreaTabDialog) virtual void SetCurPageId(const OString& rName) override; virtual const SfxItemSet* GetOutputItemSet() const override; virtual WhichRangesContainer GetInputRanges( const SfxItemPool& pItem ) override; @@ -580,31 +337,15 @@ public: virtual void SetText(const OUString& rStr) override; }; -class AbstractInsertObjectDialog_Impl : public SfxAbstractInsertObjectDialog -{ - std::unique_ptr<InsertObjectDialog_Impl> m_xDlg; -public: - explicit AbstractInsertObjectDialog_Impl(std::unique_ptr<InsertObjectDialog_Impl> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; +// AbstractInsertObjectDialog_Impl +DECL_ABSTDLG_CLASS_UNIQUE(AbstractInsertObjectDialog,SfxAbstractInsertObjectDialog,InsertObjectDialog_Impl) virtual css::uno::Reference < css::embed::XEmbeddedObject > GetObject() override; virtual css::uno::Reference< css::io::XInputStream > GetIconIfIconified( OUString* pGraphicMediaType ) override; virtual bool IsCreateNew() override; }; -class AbstractPasteDialog_Impl : public SfxAbstractPasteDialog -{ - std::shared_ptr<SvPasteObjectDialog> m_xDlg; -public: - explicit AbstractPasteDialog_Impl(std::shared_ptr<SvPasteObjectDialog> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; - virtual bool StartExecuteAsync(AsyncContext &rCtx) override; -public: +// AbstractPasteDialog_Impl +DECL_ABSTDLG_CLASS_SHARED_ASYNC(AbstractPasteDialog,SfxAbstractPasteDialog,SvPasteObjectDialog) virtual void Insert( SotClipboardFormatId nFormat, const OUString & rFormatName ) override; virtual void InsertUno( const OUString & sCmd, const OUString& sLabel ) override; virtual void SetObjName( const SvGlobalName & rClass, const OUString & rObjName ) override; @@ -613,27 +354,12 @@ public: virtual SotClipboardFormatId GetFormat( const TransferableDataHelper& aHelper ) override; }; -class AbstractLinksDialog_Impl : public SfxAbstractLinksDialog -{ -protected: - std::unique_ptr<SvBaseLinksDlg> m_xDlg; -public: - explicit AbstractLinksDialog_Impl(std::unique_ptr<SvBaseLinksDlg> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; +// AbstractLinksDialog_Impl +DECL_ABSTDLG_CLASS_UNIQUE(AbstractLinksDialog,SfxAbstractLinksDialog,SvBaseLinksDlg) }; -class SvxPostItDialog; -class AbstractSvxPostItDialog_Impl :public AbstractSvxPostItDialog -{ -public: - AbstractSvxPostItDialog_Impl(std::unique_ptr<SvxPostItDialog> pDlg) - : m_xDlg(std::move(pDlg)) - { - } - virtual short Execute() override; +// AbstractSvxPostItDialog_Impl +DECL_ABSTDLG_CLASS(AbstractSvxPostItDialog,SvxPostItDialog) virtual void SetText( const OUString& rStr ) override; //From class Window virtual const SfxItemSet* GetOutputItemSet() const override; virtual void SetPrevHdl( const Link<AbstractSvxPostItDialog&,void>& rLink ) override; @@ -646,122 +372,47 @@ public: virtual void HideAuthor() override; virtual std::shared_ptr<weld::Dialog> GetDialog() override; private: - std::unique_ptr<SvxPostItDialog> m_xDlg; Link<AbstractSvxPostItDialog&,void> aNextHdl; Link<AbstractSvxPostItDialog&,void> aPrevHdl; DECL_LINK(NextHdl, SvxPostItDialog&, void); DECL_LINK(PrevHdl, SvxPostItDialog&, void); }; -class PasswordToOpenModifyDialog; -class AbstractPasswordToOpenModifyDialog_Impl : public AbstractPasswordToOpenModifyDialog -{ - std::unique_ptr<PasswordToOpenModifyDialog> m_xDlg; -public: - explicit AbstractPasswordToOpenModifyDialog_Impl(std::unique_ptr<PasswordToOpenModifyDialog> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; +// AbstractPasswordToOpenModifyDialog_Impl +DECL_ABSTDLG_CLASS(AbstractPasswordToOpenModifyDialog,PasswordToOpenModifyDialog) virtual OUString GetPasswordToOpen() const override; virtual OUString GetPasswordToModify() const override; virtual bool IsRecommendToOpenReadonly() const override; }; -class SvxCharacterMap; -class AbstractSvxCharacterMapDialog_Impl : public SfxAbstractDialog -{ - std::unique_ptr<SvxCharacterMap> m_xDlg; -public: - explicit AbstractSvxCharacterMapDialog_Impl(std::unique_ptr<SvxCharacterMap> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; +// AbstractSvxCharacterMapDialog_Impl +DECL_ABSTDLG_CLASS_UNIQUE(AbstractSvxCharacterMapDialog,SfxAbstractDialog,SvxCharacterMap) virtual const SfxItemSet* GetOutputItemSet() const override; virtual void SetText(const OUString& rStr) override; }; -class ScreenshotAnnotationDlg; -class AbstractScreenshotAnnotationDlg_Impl : public AbstractScreenshotAnnotationDlg -{ - std::unique_ptr<ScreenshotAnnotationDlg> m_xDlg; - -public: - explicit AbstractScreenshotAnnotationDlg_Impl(std::unique_ptr<ScreenshotAnnotationDlg> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; +// AbstractScreenshotAnnotationDlg_Impl +DECL_ABSTDLG_CLASS(AbstractScreenshotAnnotationDlg,ScreenshotAnnotationDlg) }; -class SignatureLineDialog; -class AbstractSignatureLineDialog_Impl : public AbstractSignatureLineDialog -{ - std::unique_ptr<SignatureLineDialog> m_xDlg; - -public: - explicit AbstractSignatureLineDialog_Impl(std::unique_ptr<SignatureLineDialog> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; +// AbstractSignatureLineDialog_Impl +DECL_ABSTDLG_CLASS(AbstractSignatureLineDialog,SignatureLineDialog) }; -class QrCodeGenDialog; -class AbstractQrCodeGenDialog_Impl : public AbstractQrCodeGenDialog -{ - std::unique_ptr<QrCodeGenDialog> m_xDlg; - -public: - explicit AbstractQrCodeGenDialog_Impl(std::unique_ptr<QrCodeGenDialog> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; +// AbstractQrCodeGenDialog_Impl +DECL_ABSTDLG_CLASS(AbstractQrCodeGenDialog,QrCodeGenDialog) }; -class SignSignatureLineDialog; -class AbstractSignSignatureLineDialog_Impl : public AbstractSignSignatureLineDialog -{ -protected: - std::unique_ptr<SignSignatureLineDialog> m_xDlg; - -public: - explicit AbstractSignSignatureLineDialog_Impl(std::unique_ptr<SignSignatureLineDialog> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; +// AbstractSignSignatureLineDialog_Impl +DECL_ABSTDLG_CLASS(AbstractSignSignatureLineDialog,SignSignatureLineDialog) }; -class AbstractAdditionsDialog_Impl : public AbstractAdditionsDialog -{ -protected: - std::unique_ptr<AdditionsDialog> m_xDlg; - -public: - explicit AbstractAdditionsDialog_Impl(std::unique_ptr<AdditionsDialog> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; +// AbstractAdditionsDialog_Impl +DECL_ABSTDLG_CLASS(AbstractAdditionsDialog,AdditionsDialog) }; -class DiagramDialog; - -/** Edit Diagram dialog */ -class AbstractDiagramDialog_Impl : public AbstractDiagramDialog -{ -protected: - std::unique_ptr<DiagramDialog> m_xDlg; - -public: - explicit AbstractDiagramDialog_Impl(std::unique_ptr<DiagramDialog> p) - : m_xDlg(std::move(p)) - { - } - virtual short Execute() override; +// AbstractDiagramDialog_Impl +DECL_ABSTDLG_CLASS(AbstractDiagramDialog,DiagramDialog) }; //AbstractDialogFactory_Impl implementations