summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cui/source/dialogs/insrc.cxx6
-rw-r--r--cui/source/dialogs/newtabledlg.cxx6
-rw-r--r--cui/source/dialogs/scriptdlg.cxx2
-rw-r--r--cui/source/dialogs/splitcelldlg.cxx6
-rw-r--r--cui/source/factory/dlgfact.cxx263
-rw-r--r--cui/source/factory/dlgfact.hxx134
-rw-r--r--cui/source/inc/insrc.hxx1
-rw-r--r--cui/source/inc/newtabledlg.hxx1
-rw-r--r--cui/source/inc/splitcelldlg.hxx1
-rw-r--r--dbaccess/source/ui/browser/brwctrlr.cxx4
-rw-r--r--dbaccess/source/ui/querydesign/QTableConnection.cxx3
-rw-r--r--dbaccess/source/ui/querydesign/TableConnection.cxx8
-rw-r--r--dbaccess/source/ui/relationdesign/RTableConnection.cxx2
-rw-r--r--editeng/source/misc/hangulhanja.cxx6
-rw-r--r--include/editeng/edtdlg.hxx6
-rw-r--r--include/sfx2/sfxdlg.hxx22
-rw-r--r--include/svx/SpellDialogChildWindow.hxx2
-rw-r--r--include/svx/hyperdlg.hxx2
-rw-r--r--include/svx/svxdlg.hxx96
-rw-r--r--include/vcl/abstdlg.hxx20
-rw-r--r--include/vcl/outdev.hxx7
-rw-r--r--sc/source/ui/app/scdll.cxx1
-rw-r--r--sc/source/ui/attrdlg/scdlgfact.cxx82
-rw-r--r--sc/source/ui/dbgui/csvcontrol.cxx1
-rw-r--r--sc/source/ui/docshell/arealink.cxx8
-rw-r--r--sc/source/ui/inc/cellsh.hxx6
-rw-r--r--sc/source/ui/inc/csvtablebox.hxx3
-rw-r--r--sc/source/ui/inc/redcom.hxx2
-rw-r--r--sc/source/ui/inc/validate.hxx13
-rw-r--r--sc/source/ui/miscdlgs/redcom.cxx2
-rw-r--r--sc/source/ui/view/cellsh.cxx2
-rw-r--r--sc/source/ui/view/cellsh1.cxx5
-rw-r--r--sc/source/ui/view/cellsh4.cxx1
-rw-r--r--sc/source/ui/view/gridwin.cxx1
-rw-r--r--sd/inc/sdabstdlg.hxx48
-rw-r--r--sd/source/ui/dlg/sddlgfact.cxx92
-rw-r--r--sd/source/ui/dlg/sddlgfact.hxx46
-rw-r--r--sd/source/ui/docshell/docshel2.cxx4
-rw-r--r--sfx2/source/appl/appserv.cxx8
-rw-r--r--sfx2/source/view/printer.cxx1
-rw-r--r--svx/source/dialog/SpellDialogChildWindow.cxx7
-rw-r--r--svx/source/gallery2/galbrws1.cxx4
-rw-r--r--sw/inc/swabstdlg.hxx100
-rw-r--r--sw/source/ui/dialog/swdlgfact.cxx206
-rw-r--r--sw/source/ui/dialog/swdlgfact.hxx101
-rw-r--r--sw/source/uibase/app/apphdl.cxx11
-rw-r--r--sw/source/uibase/app/docsh2.cxx5
-rw-r--r--sw/source/uibase/app/docst.cxx2
-rw-r--r--sw/source/uibase/dbui/dbmgr.cxx8
-rw-r--r--sw/source/uibase/dialog/wordcountwrapper.cxx5
-rw-r--r--sw/source/uibase/inc/fldwrap.hxx4
-rw-r--r--sw/source/uibase/inc/idxmrk.hxx4
-rw-r--r--sw/source/uibase/inc/wordcountdialog.hxx4
-rw-r--r--sw/source/uibase/wrtsh/wrtsh2.cxx2
-rw-r--r--vcl/source/window/msgbox.cxx7
-rw-r--r--vcl/source/window/window.cxx7
56 files changed, 747 insertions, 654 deletions
diff --git a/cui/source/dialogs/insrc.cxx b/cui/source/dialogs/insrc.cxx
index 13f18c3b5493..a6d6a4bd2304 100644
--- a/cui/source/dialogs/insrc.cxx
+++ b/cui/source/dialogs/insrc.cxx
@@ -47,10 +47,16 @@ SvxInsRowColDlg::SvxInsRowColDlg(vcl::Window* pParent, bool bCol, const OString&
SvxInsRowColDlg::~SvxInsRowColDlg()
{
+ disposeOnce();
+}
+
+void SvxInsRowColDlg::dispose()
+{
m_pCountEdit.clear();
m_pBeforeBtn.clear();
m_pAfterBtn.clear();
m_pDialog.disposeAndClear();
+ SvxAbstractInsRowColDlg::dispose();
}
short SvxInsRowColDlg::Execute()
diff --git a/cui/source/dialogs/newtabledlg.cxx b/cui/source/dialogs/newtabledlg.cxx
index 6c02303647f2..50e752789f95 100644
--- a/cui/source/dialogs/newtabledlg.cxx
+++ b/cui/source/dialogs/newtabledlg.cxx
@@ -30,9 +30,15 @@ SvxNewTableDialog::SvxNewTableDialog()
SvxNewTableDialog::~SvxNewTableDialog()
{
+ disposeOnce();
+}
+
+void SvxNewTableDialog::dispose()
+{
mpNumColumns.clear();
mpNumRows.clear();
m_pDialog.disposeAndClear();
+ SvxAbstractNewTableDialog::dispose();
}
short SvxNewTableDialog::Execute()
diff --git a/cui/source/dialogs/scriptdlg.cxx b/cui/source/dialogs/scriptdlg.cxx
index 8f7b433521d6..a737b9ed6a32 100644
--- a/cui/source/dialogs/scriptdlg.cxx
+++ b/cui/source/dialogs/scriptdlg.cxx
@@ -71,7 +71,7 @@ using namespace css::document;
void ShowErrorDialog( const Any& aException )
{
- std::unique_ptr<SvxScriptErrorDialog> pDlg(new SvxScriptErrorDialog( aException ));
+ ScopedVclPtrInstance<SvxScriptErrorDialog> pDlg( aException );
pDlg->Execute();
}
diff --git a/cui/source/dialogs/splitcelldlg.cxx b/cui/source/dialogs/splitcelldlg.cxx
index 3fdf3e578327..f786644b9ba6 100644
--- a/cui/source/dialogs/splitcelldlg.cxx
+++ b/cui/source/dialogs/splitcelldlg.cxx
@@ -66,11 +66,17 @@ SvxSplitTableDlg::SvxSplitTableDlg( vcl::Window *pParent, bool bIsTableVertical,
SvxSplitTableDlg::~SvxSplitTableDlg()
{
+ disposeOnce();
+}
+
+void SvxSplitTableDlg::dispose()
+{
m_pCountEdit.clear();
m_pHorzBox.clear();
m_pVertBox.clear();
m_pPropCB.clear();
m_pDialog.disposeAndClear();
+ SvxAbstractSplittTableDialog::dispose();
}
IMPL_LINK( SvxSplitTableDlg, ClickHdl, Button *, pButton, void )
diff --git a/cui/source/factory/dlgfact.cxx b/cui/source/factory/dlgfact.cxx
index 47f4f4c7e59c..01e97c794872 100644
--- a/cui/source/factory/dlgfact.cxx
+++ b/cui/source/factory/dlgfact.cxx
@@ -143,7 +143,13 @@ IMPL_ABSTDLG_BASE(AbstractScreenshotAnnotationDlg_Impl);
// virtual
VclAbstractDialog2_Impl::~VclAbstractDialog2_Impl()
{
+ disposeOnce();
+}
+
+void VclAbstractDialog2_Impl::dispose()
+{
m_pDlg.disposeAndClear();
+ VclAbstractDialog2::dispose();
}
// virtual
@@ -798,7 +804,7 @@ bool AbstractPasswordToOpenModifyDialog_Impl::IsRecommendToOpenReadonly() const
}
// Create dialogs with simplest interface
-VclAbstractDialog* AbstractDialogFactory_Impl::CreateVclDialog( vcl::Window* pParent, sal_uInt32 nResId )
+VclPtr<VclAbstractDialog> AbstractDialogFactory_Impl::CreateVclDialog( vcl::Window* pParent, sal_uInt32 nResId )
{
VclPtr<Dialog> pDlg;
switch ( nResId )
@@ -834,11 +840,11 @@ VclAbstractDialog* AbstractDialogFactory_Impl::CreateVclDialog( vcl::Window* pPa
}
if ( pDlg )
- return new CuiVclAbstractDialog_Impl( pDlg );
+ return VclPtr<CuiVclAbstractDialog_Impl>::Create( pDlg );
return nullptr;
}
-VclAbstractDialog* AbstractDialogFactory_Impl::CreateFrameDialog( const Reference< frame::XFrame >& rxFrame,
+VclPtr<VclAbstractDialog> AbstractDialogFactory_Impl::CreateFrameDialog( const Reference< frame::XFrame >& rxFrame,
sal_uInt32 nResId, const OUString& rParameter )
{
VclPtr<Dialog> pDlg;
@@ -855,19 +861,19 @@ VclAbstractDialog* AbstractDialogFactory_Impl::CreateFrameDialog( const Referenc
}
if ( pDlg )
- return new CuiVclAbstractDialog_Impl( pDlg );
+ return VclPtr<CuiVclAbstractDialog_Impl>::Create( pDlg );
else
return nullptr;
}
// TabDialog outside the drawing layer
-SfxAbstractTabDialog* AbstractDialogFactory_Impl::CreateAutoCorrTabDialog( const SfxItemSet* pAttrSet )
+VclPtr<SfxAbstractTabDialog> AbstractDialogFactory_Impl::CreateAutoCorrTabDialog( const SfxItemSet* pAttrSet )
{
VclPtrInstance<OfaAutoCorrDlg> pDlg( nullptr, pAttrSet );
- return new CuiAbstractTabDialog_Impl( pDlg );
+ return VclPtr<CuiAbstractTabDialog_Impl>::Create( pDlg );
}
-SfxAbstractTabDialog* AbstractDialogFactory_Impl::CreateCustomizeTabDialog(
+VclPtr<SfxAbstractTabDialog> AbstractDialogFactory_Impl::CreateCustomizeTabDialog(
const SfxItemSet* pAttrSet,
const Reference< frame::XFrame >& xViewFrame )
{
@@ -875,96 +881,95 @@ SfxAbstractTabDialog* AbstractDialogFactory_Impl::CreateCustomizeTabDialog(
VclPtrInstance<SvxConfigDialog> pDlg1( nullptr, pAttrSet );
pDlg1->SetFrame(xViewFrame);
pDlg.reset(pDlg1);
- return new CuiAbstractTabDialog_Impl( pDlg );
+ return VclPtr<CuiAbstractTabDialog_Impl>::Create( pDlg );
}
// TabDialog that use functionality of the drawing layer
-SfxAbstractTabDialog* AbstractDialogFactory_Impl::CreateTextTabDialog( vcl::Window* pParent,
+VclPtr<SfxAbstractTabDialog> AbstractDialogFactory_Impl::CreateTextTabDialog( vcl::Window* pParent,
const SfxItemSet* pAttrSet,
SdrView* pView )
{
VclPtrInstance<SvxTextTabDialog> pDlg( pParent, pAttrSet, pView );
- return new CuiAbstractTabDialog_Impl( pDlg );
+ return VclPtr<CuiAbstractTabDialog_Impl>::Create( pDlg );
}
// TabDialog that use functionality of the drawing layer and add AnchorTypes -- for SvxCaptionTabDialog
-AbstractSvxCaptionDialog* AbstractDialogFactory_Impl::CreateCaptionDialog( vcl::Window* pParent,
+VclPtr<AbstractSvxCaptionDialog> AbstractDialogFactory_Impl::CreateCaptionDialog( vcl::Window* pParent,
const SdrView* pView,
SvxAnchorIds nAnchorTypes )
{
VclPtrInstance<SvxCaptionTabDialog> pDlg( pParent, pView, nAnchorTypes );
- return new AbstractSvxCaptionDialog_Impl( pDlg );
+ return VclPtr<AbstractSvxCaptionDialog_Impl>::Create( pDlg );
}
-AbstractSvxDistributeDialog* AbstractDialogFactory_Impl::CreateSvxDistributeDialog(const SfxItemSet& rAttr)
+VclPtr<AbstractSvxDistributeDialog> AbstractDialogFactory_Impl::CreateSvxDistributeDialog(const SfxItemSet& rAttr)
{
VclPtrInstance<SvxDistributeDialog> pDlg( nullptr, rAttr, SvxDistributeHorizontal::NONE, SvxDistributeVertical::NONE);
- return new AbstractSvxDistributeDialog_Impl( pDlg );
+ return VclPtr<AbstractSvxDistributeDialog_Impl>::Create( pDlg );
}
-AbstractHangulHanjaConversionDialog* AbstractDialogFactory_Impl::CreateHangulHanjaConversionDialog(vcl::Window* pParent,
+VclPtr<AbstractHangulHanjaConversionDialog> AbstractDialogFactory_Impl::CreateHangulHanjaConversionDialog(vcl::Window* pParent,
editeng::HangulHanjaConversion::ConversionDirection _ePrimaryDirection )
{
VclPtrInstance<HangulHanjaConversionDialog> pDlg( pParent, _ePrimaryDirection);
- return new AbstractHangulHanjaConversionDialog_Impl( pDlg );
+ return VclPtr<AbstractHangulHanjaConversionDialog_Impl>::Create( pDlg );
}
-AbstractThesaurusDialog* AbstractDialogFactory_Impl::CreateThesaurusDialog( vcl::Window* pParent,
+VclPtr<AbstractThesaurusDialog> AbstractDialogFactory_Impl::CreateThesaurusDialog( vcl::Window* pParent,
css::uno::Reference< css::linguistic2::XThesaurus > xThesaurus,
const OUString &rWord, sal_Int16 nLanguage )
{
VclPtrInstance<SvxThesaurusDialog> pDlg( pParent, xThesaurus, rWord, nLanguage );
- return new AbstractThesaurusDialog_Impl( pDlg );
+ return VclPtr<AbstractThesaurusDialog_Impl>::Create( pDlg );
}
-AbstractHyphenWordDialog* AbstractDialogFactory_Impl::CreateHyphenWordDialog( vcl::Window* pParent,
+VclPtr<AbstractHyphenWordDialog> AbstractDialogFactory_Impl::CreateHyphenWordDialog( vcl::Window* pParent,
const OUString &rWord, LanguageType nLang,
css::uno::Reference< css::linguistic2::XHyphenator > &xHyphen,
SvxSpellWrapper* pWrapper )
{
VclPtrInstance<SvxHyphenWordDialog> pDlg( rWord, nLang, pParent, xHyphen, pWrapper );
- return new AbstractHyphenWordDialog_Impl( pDlg );
+ return VclPtr<AbstractHyphenWordDialog_Impl>::Create( pDlg );
}
-AbstractFmShowColsDialog * AbstractDialogFactory_Impl::CreateFmShowColsDialog()
+VclPtr<AbstractFmShowColsDialog> AbstractDialogFactory_Impl::CreateFmShowColsDialog()
{
VclPtrInstance<FmShowColsDialog> pDlg( nullptr );
- return new AbstractFmShowColsDialog_Impl( pDlg );
+ return VclPtr<AbstractFmShowColsDialog_Impl>::Create( pDlg );
}
-AbstractSvxZoomDialog * AbstractDialogFactory_Impl::CreateSvxZoomDialog( vcl::Window* pParent,
+
+VclPtr<AbstractSvxZoomDialog> AbstractDialogFactory_Impl::CreateSvxZoomDialog( vcl::Window* pParent,
const SfxItemSet& rCoreSet)
{
VclPtrInstance<SvxZoomDialog> pDlg( pParent, rCoreSet);
- return new AbstractSvxZoomDialog_Impl( pDlg );
+ return VclPtr<AbstractSvxZoomDialog_Impl>::Create( pDlg );
}
-AbstractSpellDialog * AbstractDialogFactory_Impl::CreateSvxSpellDialog(
+VclPtr<AbstractSpellDialog> AbstractDialogFactory_Impl::CreateSvxSpellDialog(
vcl::Window* pParent,
SfxBindings* pBindings,
svx::SpellDialogChildWindow* pSpellChildWindow )
{
VclPtrInstance<svx::SpellDialog> pDlg(pSpellChildWindow, pParent, pBindings);
- return new AbstractSpellDialog_Impl(pDlg);
+ return VclPtr<AbstractSpellDialog_Impl>::Create(pDlg);
}
-VclAbstractRefreshableDialog * AbstractDialogFactory_Impl::CreateActualizeProgressDialog( vcl::Window* pParent, GalleryTheme* pThm )
+VclPtr<VclAbstractRefreshableDialog> AbstractDialogFactory_Impl::CreateActualizeProgressDialog( vcl::Window* pParent, GalleryTheme* pThm )
{
VclPtrInstance<ActualizeProgress> pDlg(pParent, pThm);
- return new VclAbstractRefreshableDialog_Impl( pDlg );
+ return VclPtr<VclAbstractRefreshableDialog_Impl>::Create( pDlg );
}
-VclAbstractDialog*
-AbstractDialogFactory_Impl::CreateScriptErrorDialog(const css::uno::Any& rException)
+VclPtr<VclAbstractDialog> AbstractDialogFactory_Impl::CreateScriptErrorDialog(const css::uno::Any& rException)
{
- return new SvxScriptErrorDialog(rException);
+ return VclPtr<SvxScriptErrorDialog>::Create(rException);
}
-AbstractScriptSelectorDialog*
-AbstractDialogFactory_Impl::CreateScriptSelectorDialog(
+VclPtr<AbstractScriptSelectorDialog> AbstractDialogFactory_Impl::CreateScriptSelectorDialog(
vcl::Window* pParent, const Reference< frame::XFrame >& _rxFrame )
{
VclPtrInstance<SvxScriptSelectorDialog> pDlg(pParent, false/*bShowSlots*/, _rxFrame);
- return new AbstractScriptSelectorDialog_Impl(pDlg);
+ return VclPtr<AbstractScriptSelectorDialog_Impl>::Create(pDlg);
}
OUString AbstractScriptSelectorDialog_Impl::GetScriptURL() const
@@ -981,72 +986,72 @@ void AbstractScriptSelectorDialog_Impl::SetRunLabel()
return;
}
-VclAbstractDialog * AbstractDialogFactory_Impl::CreateSvxScriptOrgDialog( vcl::Window* pParent,
+VclPtr<VclAbstractDialog> AbstractDialogFactory_Impl::CreateSvxScriptOrgDialog( vcl::Window* pParent,
const OUString& rLanguage)
{
VclPtrInstance<SvxScriptOrgDialog> pDlg( pParent, rLanguage);
- return new CuiVclAbstractDialog_Impl( pDlg );
+ return VclPtr<CuiVclAbstractDialog_Impl>::Create( pDlg );
}
-AbstractTitleDialog * AbstractDialogFactory_Impl::CreateTitleDialog( vcl::Window* pParent,
+VclPtr<AbstractTitleDialog> AbstractDialogFactory_Impl::CreateTitleDialog( vcl::Window* pParent,
const OUString& rOldText)
{
VclPtrInstance<TitleDialog> pDlg( pParent, rOldText);
- return new AbstractTitleDialog_Impl( pDlg );
+ return VclPtr<AbstractTitleDialog_Impl>::Create( pDlg );
}
-AbstractGalleryIdDialog * AbstractDialogFactory_Impl::CreateGalleryIdDialog( vcl::Window* pParent,
+VclPtr<AbstractGalleryIdDialog> AbstractDialogFactory_Impl::CreateGalleryIdDialog( vcl::Window* pParent,
GalleryTheme* pThm )
{
VclPtrInstance<GalleryIdDialog> pDlg( pParent, pThm);
- return new AbstractGalleryIdDialog_Impl( pDlg );
+ return VclPtr<AbstractGalleryIdDialog_Impl>::Create( pDlg );
}
-VclAbstractDialog2 * AbstractDialogFactory_Impl::CreateGalleryThemePropertiesDialog(
+VclPtr<VclAbstractDialog2> AbstractDialogFactory_Impl::CreateGalleryThemePropertiesDialog(
ExchangeData* pData,
SfxItemSet* pItemSet)
{
VclPtrInstance<GalleryThemeProperties> pDlg( nullptr, pData, pItemSet);
- return new VclAbstractDialog2_Impl( pDlg );
+ return VclPtr<VclAbstractDialog2_Impl>::Create( pDlg );
}
-AbstractURLDlg * AbstractDialogFactory_Impl::CreateURLDialog( vcl::Window* pParent,
+VclPtr<AbstractURLDlg> AbstractDialogFactory_Impl::CreateURLDialog( vcl::Window* pParent,
const OUString& rURL, const OUString& rAltText, const OUString& rDescription,
const OUString& rTarget, const OUString& rName,
TargetList& rTargetList )
{
VclPtrInstance<URLDlg> pDlg( pParent, rURL, rAltText, rDescription,
rTarget, rName, rTargetList);
- return new AbstractURLDlg_Impl( pDlg );
+ return VclPtr<AbstractURLDlg_Impl>::Create( pDlg );
}
-SfxAbstractTabDialog* AbstractDialogFactory_Impl::CreateTabItemDialog(vcl::Window* pParent,
+VclPtr<SfxAbstractTabDialog> AbstractDialogFactory_Impl::CreateTabItemDialog(vcl::Window* pParent,
const SfxItemSet& rSet)
{
VclPtrInstance<SvxSearchFormatDialog> pDlg(pParent, rSet);
- return new CuiAbstractTabDialog_Impl(pDlg);
+ return VclPtr<CuiAbstractTabDialog_Impl>::Create(pDlg);
}
-VclAbstractDialog* AbstractDialogFactory_Impl::CreateSvxSearchAttributeDialog( vcl::Window* pParent,
+VclPtr<VclAbstractDialog> AbstractDialogFactory_Impl::CreateSvxSearchAttributeDialog( vcl::Window* pParent,
SearchAttrItemList& rLst,
const sal_uInt16* pWhRanges )
{
VclPtrInstance<SvxSearchAttributeDialog> pDlg( pParent, rLst, pWhRanges);
- return new CuiVclAbstractDialog_Impl( pDlg );
+ return VclPtr<CuiVclAbstractDialog_Impl>::Create( pDlg );
}
-AbstractSvxSearchSimilarityDialog * AbstractDialogFactory_Impl::CreateSvxSearchSimilarityDialog( vcl::Window* pParent,
+VclPtr<AbstractSvxSearchSimilarityDialog> AbstractDialogFactory_Impl::CreateSvxSearchSimilarityDialog( vcl::Window* pParent,
bool bRelax,
sal_uInt16 nOther,
sal_uInt16 nShorter,
sal_uInt16 nLonger)
{
VclPtrInstance<SvxSearchSimilarityDialog> pDlg( pParent, bRelax, nOther, nShorter, nLonger );
- return new AbstractSvxSearchSimilarityDialog_Impl( pDlg );
+ return VclPtr<AbstractSvxSearchSimilarityDialog_Impl>::Create( pDlg );
}
//UUUU
-SfxAbstractTabDialog* AbstractDialogFactory_Impl::CreateSvxBorderBackgroundDlg(
+VclPtr<SfxAbstractTabDialog> AbstractDialogFactory_Impl::CreateSvxBorderBackgroundDlg(
vcl::Window* pParent,
const SfxItemSet& rCoreSet,
bool bEnableSelector,
@@ -1058,19 +1063,19 @@ SfxAbstractTabDialog* AbstractDialogFactory_Impl::CreateSvxBorderBackgroundDlg(
bEnableSelector,
bEnableDrawingLayerFillStyles);
- return new CuiAbstractTabDialog_Impl(pDlg);
+ return VclPtr<CuiAbstractTabDialog_Impl>::Create(pDlg);
}
-AbstractSvxTransformTabDialog* AbstractDialogFactory_Impl::CreateSvxTransformTabDialog( vcl::Window* pParent,
+VclPtr<AbstractSvxTransformTabDialog> AbstractDialogFactory_Impl::CreateSvxTransformTabDialog( vcl::Window* pParent,
const SfxItemSet* pAttr,
const SdrView* pView,
SvxAnchorIds nAnchorTypes )
{
VclPtrInstance<SvxTransformTabDialog> pDlg( pParent, pAttr,pView, nAnchorTypes);
- return new AbstractSvxTransformTabDialog_Impl( pDlg );
+ return VclPtr<AbstractSvxTransformTabDialog_Impl>::Create( pDlg );
}
-SfxAbstractTabDialog* AbstractDialogFactory_Impl::CreateSchTransformTabDialog( vcl::Window* pParent,
+VclPtr<SfxAbstractTabDialog> AbstractDialogFactory_Impl::CreateSchTransformTabDialog( vcl::Window* pParent,
const SfxItemSet* pAttr,
const SdrView* pSdrView,
bool bSizeTabPage
@@ -1079,73 +1084,73 @@ SfxAbstractTabDialog* AbstractDialogFactory_Impl::CreateSchTransformTabDialog( v
VclPtrInstance<SvxTransformTabDialog> pDlg( pParent, pAttr,pSdrView, bSizeTabPage ? SvxAnchorIds::NoProtect : SvxAnchorIds::NoProtect|SvxAnchorIds::NoResize);
pDlg->RemoveTabPage( "RID_SVXPAGE_ANGLE" );
pDlg->RemoveTabPage( "RID_SVXPAGE_SLANT" );
- return new CuiAbstractTabDialog_Impl( pDlg );
+ return VclPtr<CuiAbstractTabDialog_Impl>::Create( pDlg );
}
-AbstractSvxJSearchOptionsDialog * AbstractDialogFactory_Impl::CreateSvxJSearchOptionsDialog( vcl::Window* pParent,
+VclPtr<AbstractSvxJSearchOptionsDialog> AbstractDialogFactory_Impl::CreateSvxJSearchOptionsDialog( vcl::Window* pParent,
const SfxItemSet& rOptionsSet,
sal_Int32 nInitialFlags)
{
VclPtrInstance<SvxJSearchOptionsDialog> pDlg( pParent, rOptionsSet, nInitialFlags );
- return new AbstractSvxJSearchOptionsDialog_Impl( pDlg );
+ return VclPtr<AbstractSvxJSearchOptionsDialog_Impl>::Create( pDlg );
}
-AbstractFmInputRecordNoDialog * AbstractDialogFactory_Impl::CreateFmInputRecordNoDialog( )
+VclPtr<AbstractFmInputRecordNoDialog> AbstractDialogFactory_Impl::CreateFmInputRecordNoDialog( )
{
VclPtrInstance<FmInputRecordNoDialog> pDlg( nullptr );
- return new AbstractFmInputRecordNoDialog_Impl( pDlg );
+ return VclPtr<AbstractFmInputRecordNoDialog_Impl>::Create( pDlg );
}
-AbstractSvxNewDictionaryDialog * AbstractDialogFactory_Impl::CreateSvxNewDictionaryDialog( vcl::Window* pParent )
+VclPtr<AbstractSvxNewDictionaryDialog> AbstractDialogFactory_Impl::CreateSvxNewDictionaryDialog( vcl::Window* pParent )
{
VclPtrInstance<SvxNewDictionaryDialog> pDlg( pParent );
- return new AbstractSvxNewDictionaryDialog_Impl( pDlg );
+ return VclPtr<AbstractSvxNewDictionaryDialog_Impl>::Create( pDlg );
}
-VclAbstractDialog* AbstractDialogFactory_Impl::CreateSvxEditDictionaryDialog( vcl::Window* pParent,
+VclPtr<VclAbstractDialog> AbstractDialogFactory_Impl::CreateSvxEditDictionaryDialog( vcl::Window* pParent,
const OUString& rName )
{
VclPtrInstance<SvxEditDictionaryDialog> pDlg( pParent, rName );
- return new CuiVclAbstractDialog_Impl( pDlg );
+ return VclPtr<CuiVclAbstractDialog_Impl>::Create( pDlg );
}
-AbstractSvxNameDialog * AbstractDialogFactory_Impl::CreateSvxNameDialog( vcl::Window* pParent,
+VclPtr<AbstractSvxNameDialog> AbstractDialogFactory_Impl::CreateSvxNameDialog( vcl::Window* pParent,
const OUString& rName, const OUString& rDesc )
{
VclPtrInstance<SvxNameDialog> pDlg( pParent, rName, rDesc );
- return new AbstractSvxNameDialog_Impl( pDlg );
+ return VclPtr<AbstractSvxNameDialog_Impl>::Create( pDlg );
}
-AbstractSvxObjectNameDialog* AbstractDialogFactory_Impl::CreateSvxObjectNameDialog(const OUString& rName )
+VclPtr<AbstractSvxObjectNameDialog> AbstractDialogFactory_Impl::CreateSvxObjectNameDialog(const OUString& rName )
{
- return new AbstractSvxObjectNameDialog_Impl(VclPtr<SvxObjectNameDialog>::Create(nullptr, rName));
+ return VclPtr<AbstractSvxObjectNameDialog_Impl>::Create(VclPtr<SvxObjectNameDialog>::Create(nullptr, rName));
}
-AbstractSvxObjectTitleDescDialog* AbstractDialogFactory_Impl::CreateSvxObjectTitleDescDialog(const OUString& rTitle, const OUString& rDescription)
+VclPtr<AbstractSvxObjectTitleDescDialog> AbstractDialogFactory_Impl::CreateSvxObjectTitleDescDialog(const OUString& rTitle, const OUString& rDescription)
{
- return new AbstractSvxObjectTitleDescDialog_Impl(VclPtr<SvxObjectTitleDescDialog>::Create(nullptr, rTitle, rDescription));
+ return VclPtr<AbstractSvxObjectTitleDescDialog_Impl>::Create(VclPtr<SvxObjectTitleDescDialog>::Create(nullptr, rTitle, rDescription));
}
-AbstractSvxMultiPathDialog * AbstractDialogFactory_Impl::CreateSvxMultiPathDialog(vcl::Window* pParent)
+VclPtr<AbstractSvxMultiPathDialog> AbstractDialogFactory_Impl::CreateSvxMultiPathDialog(vcl::Window* pParent)
{
VclPtrInstance<SvxMultiPathDialog> pDlg(pParent);
- return new AbstractSvxMultiPathDialog_Impl( pDlg );
+ return VclPtr<AbstractSvxMultiPathDialog_Impl>::Create( pDlg );
}
-AbstractSvxMultiPathDialog * AbstractDialogFactory_Impl::CreateSvxPathSelectDialog(vcl::Window* pParent)
+VclPtr<AbstractSvxMultiPathDialog> AbstractDialogFactory_Impl::CreateSvxPathSelectDialog(vcl::Window* pParent)
{
VclPtrInstance<SvxPathSelectDialog> pDlg(pParent);
- return new AbstractSvxPathSelectDialog_Impl( pDlg );
+ return VclPtr<AbstractSvxPathSelectDialog_Impl>::Create( pDlg );
}
-AbstractSvxHpLinkDlg * AbstractDialogFactory_Impl::CreateSvxHpLinkDlg (vcl::Window* pParent,
+VclPtr<AbstractSvxHpLinkDlg> AbstractDialogFactory_Impl::CreateSvxHpLinkDlg (vcl::Window* pParent,
SfxBindings* pBindings)
{
SvxHpLinkDlg* pDlg = VclPtr<SvxHpLinkDlg>::Create( pParent, pBindings );
- return new AbstractSvxHpLinkDlg_Impl(pDlg);
+ return VclPtr<AbstractSvxHpLinkDlg_Impl>::Create(pDlg);
}
-AbstractFmSearchDialog* AbstractDialogFactory_Impl::CreateFmSearchDialog(vcl::Window* pParent,
+VclPtr<AbstractFmSearchDialog> AbstractDialogFactory_Impl::CreateFmSearchDialog(vcl::Window* pParent,
const OUString& strInitialText,
const ::std::vector< OUString >& _rContexts,
sal_Int16 nInitialContext,
@@ -1153,70 +1158,70 @@ AbstractFmSearchDialog* AbstractDialogFactory_Impl::CreateFmSearchDialog(vcl::W
{
VclPtrInstance<FmSearchDialog> pDlg( pParent, strInitialText, _rContexts,
nInitialContext, lnkContextSupplier );
- return new AbstractFmSearchDialog_Impl( pDlg );
+ return VclPtr<AbstractFmSearchDialog_Impl>::Create( pDlg );
}
-AbstractGraphicFilterDialog * AbstractDialogFactory_Impl::CreateGraphicFilterEmboss (vcl::Window* pParent,
+VclPtr<AbstractGraphicFilterDialog> AbstractDialogFactory_Impl::CreateGraphicFilterEmboss (vcl::Window* pParent,
const Graphic& rGraphic)
{
VclPtrInstance<GraphicFilterEmboss> pDlg( pParent, rGraphic, RectPoint::MM );
- return new AbstractGraphicFilterDialog_Impl( pDlg );
+ return VclPtr<AbstractGraphicFilterDialog_Impl>::Create( pDlg );
}
-AbstractGraphicFilterDialog * AbstractDialogFactory_Impl::CreateGraphicFilterPoster(vcl::Window* pParent,
+VclPtr<AbstractGraphicFilterDialog> AbstractDialogFactory_Impl::CreateGraphicFilterPoster(vcl::Window* pParent,
const Graphic& rGraphic)
{
VclPtrInstance<GraphicFilterPoster> pDlg( pParent, rGraphic, 16 );
- return new AbstractGraphicFilterDialog_Impl( pDlg );
+ return VclPtr<AbstractGraphicFilterDialog_Impl>::Create( pDlg );
}
-AbstractGraphicFilterDialog * AbstractDialogFactory_Impl::CreateGraphicFilterSepia (vcl::Window* pParent,
+VclPtr<AbstractGraphicFilterDialog> AbstractDialogFactory_Impl::CreateGraphicFilterSepia (vcl::Window* pParent,
const Graphic& rGraphic)
{
VclPtrInstance<GraphicFilterSepia> pDlg( pParent, rGraphic, 10 );
- return new AbstractGraphicFilterDialog_Impl( pDlg );
+ return VclPtr<AbstractGraphicFilterDialog_Impl>::Create( pDlg );
}
-AbstractGraphicFilterDialog * AbstractDialogFactory_Impl::CreateGraphicFilterSmooth(vcl::Window* pParent,
+VclPtr<AbstractGraphicFilterDialog> AbstractDialogFactory_Impl::CreateGraphicFilterSmooth(vcl::Window* pParent,
const Graphic& rGraphic, double nRadius)
{
VclPtrInstance<GraphicFilterSmooth> pDlg( pParent, rGraphic, nRadius );
- return new AbstractGraphicFilterDialog_Impl( pDlg );
+ return VclPtr<AbstractGraphicFilterDialog_Impl>::Create( pDlg );
}
-AbstractGraphicFilterDialog * AbstractDialogFactory_Impl::CreateGraphicFilterSolarize (vcl::Window* pParent,
+VclPtr<AbstractGraphicFilterDialog> AbstractDialogFactory_Impl::CreateGraphicFilterSolarize (vcl::Window* pParent,
const Graphic& rGraphic)
{
VclPtrInstance<GraphicFilterSolarize> pDlg( pParent, rGraphic, 128, false/*bInvert*/ );
- return new AbstractGraphicFilterDialog_Impl( pDlg );
+ return VclPtr<AbstractGraphicFilterDialog_Impl>::Create( pDlg );
}
-AbstractGraphicFilterDialog * AbstractDialogFactory_Impl::CreateGraphicFilterMosaic (vcl::Window* pParent,
+VclPtr<AbstractGraphicFilterDialog> AbstractDialogFactory_Impl::CreateGraphicFilterMosaic (vcl::Window* pParent,
const Graphic& rGraphic)
{
VclPtrInstance<GraphicFilterMosaic> pDlg(pParent, rGraphic, 4, 4, false/*bEnhanceEdges*/);
- return new AbstractGraphicFilterDialog_Impl( pDlg );
+ return VclPtr<AbstractGraphicFilterDialog_Impl>::Create( pDlg );
}
-AbstractSvxAreaTabDialog* AbstractDialogFactory_Impl::CreateSvxAreaTabDialog( vcl::Window* pParent,
+VclPtr<AbstractSvxAreaTabDialog> AbstractDialogFactory_Impl::CreateSvxAreaTabDialog( vcl::Window* pParent,
const SfxItemSet* pAttr,
SdrModel* pModel,
bool bShadow)
{
VclPtrInstance<SvxAreaTabDialog> pDlg( pParent, pAttr, pModel, bShadow );
- return new AbstractSvxAreaTabDialog_Impl( pDlg );
+ return VclPtr<AbstractSvxAreaTabDialog_Impl>::Create( pDlg );
}
-SfxAbstractTabDialog* AbstractDialogFactory_Impl::CreateSvxLineTabDialog( vcl::Window* pParent, const SfxItemSet* pAttr, //add forSvxLineTabDialog
+VclPtr<SfxAbstractTabDialog> AbstractDialogFactory_Impl::CreateSvxLineTabDialog( vcl::Window* pParent, const SfxItemSet* pAttr, //add forSvxLineTabDialog
SdrModel* pModel,
const SdrObject* pObj ,
bool bHasObj)
{
VclPtrInstance<SvxLineTabDialog> pDlg( pParent, pAttr, pModel,pObj,bHasObj );
- return new CuiAbstractTabDialog_Impl( pDlg );
+ return VclPtr<CuiAbstractTabDialog_Impl>::Create( pDlg );
}
-SfxAbstractDialog* AbstractDialogFactory_Impl::CreateSfxDialog( vcl::Window* pParent,
+VclPtr<SfxAbstractDialog> AbstractDialogFactory_Impl::CreateSfxDialog( vcl::Window* pParent,
const SfxItemSet& rAttr,
const Reference< XFrame >& _rxDocumentFrame,
sal_uInt32 nResId
@@ -1236,11 +1241,11 @@ SfxAbstractDialog* AbstractDialogFactory_Impl::CreateSfxDialog( vcl::Window* pPa
}
if ( pDlg )
- return new CuiAbstractSfxDialog_Impl( pDlg );
+ return VclPtr<CuiAbstractSfxDialog_Impl>::Create( pDlg );
return nullptr;
}
-SfxAbstractDialog* AbstractDialogFactory_Impl::CreateSfxDialog( vcl::Window* pParent,
+VclPtr<SfxAbstractDialog> AbstractDialogFactory_Impl::CreateSfxDialog( vcl::Window* pParent,
const SfxItemSet& rAttr,
const SdrView* pView,
sal_uInt32 nResId
@@ -1264,17 +1269,17 @@ SfxAbstractDialog* AbstractDialogFactory_Impl::CreateSfxDialog( vcl::Window* pPa
}
if ( pDlg )
- return new CuiAbstractSfxDialog_Impl( pDlg );
+ return VclPtr<CuiAbstractSfxDialog_Impl>::Create( pDlg );
return nullptr;
}
-AbstractSvxPostItDialog* AbstractDialogFactory_Impl::CreateSvxPostItDialog( vcl::Window* pParent,
+VclPtr<AbstractSvxPostItDialog> AbstractDialogFactory_Impl::CreateSvxPostItDialog( vcl::Window* pParent,
const SfxItemSet& rCoreSet,
bool bPrevNext )
{
VclPtrInstance<SvxPostItDialog> pDlg( pParent, rCoreSet, bPrevNext );
- return new AbstractSvxPostItDialog_Impl( pDlg );
+ return VclPtr<AbstractSvxPostItDialog_Impl>::Create( pDlg );
}
class SvxMacroAssignDialog : public VclAbstractDialog
@@ -1290,10 +1295,11 @@ public:
virtual short Execute() override;
virtual ~SvxMacroAssignDialog() override;
+ virtual void dispose() override;
private:
SfxItemSet m_aItems;
- VclPtr< SvxMacroAssignDlg > m_pDialog;
+ VclPtr<SvxMacroAssignDlg > m_pDialog;
};
short SvxMacroAssignDialog::Execute()
@@ -1303,13 +1309,20 @@ short SvxMacroAssignDialog::Execute()
SvxMacroAssignDialog::~SvxMacroAssignDialog()
{
+ disposeOnce();
+}
+
+void SvxMacroAssignDialog::dispose()
+{
+ m_pDialog.clear();
+ VclAbstractDialog::dispose();
}
-VclAbstractDialog * AbstractDialogFactory_Impl::CreateSvxMacroAssignDlg(
+VclPtr<VclAbstractDialog> AbstractDialogFactory_Impl::CreateSvxMacroAssignDlg(
vcl::Window* _pParent, const Reference< XFrame >& _rxDocumentFrame, const bool _bUnoDialogMode,
const Reference< XNameReplace >& _rxEvents, const sal_uInt16 _nInitiallySelectedEvent )
{
- return new SvxMacroAssignDialog( _pParent, _rxDocumentFrame, _bUnoDialogMode, _rxEvents, _nInitiallySelectedEvent );
+ return VclPtr<SvxMacroAssignDialog>::Create( _pParent, _rxDocumentFrame, _bUnoDialogMode, _rxEvents, _nInitiallySelectedEvent );
}
// Factories for TabPages
@@ -1450,7 +1463,7 @@ GetTabPageRanges AbstractDialogFactory_Impl::GetTabPageRangesFunc( sal_uInt16 nI
return nullptr;
}
-SfxAbstractInsertObjectDialog* AbstractDialogFactory_Impl::CreateInsertObjectDialog( vcl::Window* pParent, const OUString& rCommand,
+VclPtr<SfxAbstractInsertObjectDialog> AbstractDialogFactory_Impl::CreateInsertObjectDialog( vcl::Window* pParent, const OUString& rCommand,
const Reference < css::embed::XStorage >& xStor,
const SvObjectServerList* pList )
{
@@ -1463,77 +1476,77 @@ SfxAbstractInsertObjectDialog* AbstractDialogFactory_Impl::CreateInsertObjectDia
if ( pDlg )
{
pDlg->SetHelpId( OUStringToOString( rCommand, RTL_TEXTENCODING_UTF8 ) );
- return new AbstractInsertObjectDialog_Impl( pDlg );
+ return VclPtr<AbstractInsertObjectDialog_Impl>::Create( pDlg );
}
return nullptr;
}
-VclAbstractDialog* AbstractDialogFactory_Impl::CreateEditObjectDialog( const OUString& rCommand,
+VclPtr<VclAbstractDialog> AbstractDialogFactory_Impl::CreateEditObjectDialog( const OUString& rCommand,
const Reference < css::embed::XEmbeddedObject >& xObj )
{
if ( rCommand == ".uno:InsertObjectFloatingFrame" )
{
VclPtrInstance<SfxInsertFloatingFrameDialog> pDlg( nullptr, xObj );
pDlg->SetHelpId( OUStringToOString( rCommand, RTL_TEXTENCODING_UTF8 ) );
- return new CuiVclAbstractDialog_Impl( pDlg );
+ return VclPtr<CuiVclAbstractDialog_Impl>::Create( pDlg );
}
return nullptr;
}
-SfxAbstractPasteDialog* AbstractDialogFactory_Impl::CreatePasteDialog( vcl::Window* pParent )
+VclPtr<SfxAbstractPasteDialog> AbstractDialogFactory_Impl::CreatePasteDialog( vcl::Window* pParent )
{
- return new AbstractPasteDialog_Impl( VclPtr<SvPasteObjectDialog>::Create( pParent ) );
+ return VclPtr<AbstractPasteDialog_Impl>::Create( VclPtr<SvPasteObjectDialog>::Create( pParent ) );
}
-SfxAbstractLinksDialog* AbstractDialogFactory_Impl::CreateLinksDialog( vcl::Window* pParent, sfx2::LinkManager* pMgr, bool bHTML, sfx2::SvBaseLink* p)
+VclPtr<SfxAbstractLinksDialog> AbstractDialogFactory_Impl::CreateLinksDialog( vcl::Window* pParent, sfx2::LinkManager* pMgr, bool bHTML, sfx2::SvBaseLink* p)
{
VclPtrInstance<SvBaseLinksDlg> pLinkDlg( pParent, pMgr, bHTML );
if ( p )
pLinkDlg->SetActLink(p);
- return new AbstractLinksDialog_Impl( pLinkDlg );
+ return VclPtr<AbstractLinksDialog_Impl>::Create( pLinkDlg );
}
-SfxAbstractTabDialog* AbstractDialogFactory_Impl::CreateSvxFormatCellsDialog( const SfxItemSet* pAttr, SdrModel* pModel, const SdrObject* /*pObj*/ )
+VclPtr<SfxAbstractTabDialog> AbstractDialogFactory_Impl::CreateSvxFormatCellsDialog( const SfxItemSet* pAttr, SdrModel* pModel, const SdrObject* /*pObj*/ )
{
- return new CuiAbstractTabDialog_Impl( VclPtr<SvxFormatCellsDialog>::Create( nullptr, pAttr, pModel ) );
+ return VclPtr<CuiAbstractTabDialog_Impl>::Create( VclPtr<SvxFormatCellsDialog>::Create( nullptr, pAttr, pModel ) );
}
-SvxAbstractSplittTableDialog* AbstractDialogFactory_Impl::CreateSvxSplittTableDialog( vcl::Window* pParent, bool bIsTableVertical, long nMaxVertical )
+VclPtr<SvxAbstractSplittTableDialog> AbstractDialogFactory_Impl::CreateSvxSplittTableDialog( vcl::Window* pParent, bool bIsTableVertical, long nMaxVertical )
{
- return new SvxSplitTableDlg( pParent, bIsTableVertical, nMaxVertical, 99 );
+ return VclPtr<SvxSplitTableDlg>::Create( pParent, bIsTableVertical, nMaxVertical, 99 );
}
-SvxAbstractNewTableDialog* AbstractDialogFactory_Impl::CreateSvxNewTableDialog()
+VclPtr<SvxAbstractNewTableDialog> AbstractDialogFactory_Impl::CreateSvxNewTableDialog()
{
- return new SvxNewTableDialog;
+ return VclPtr<SvxNewTableDialog>::Create();
}
-VclAbstractDialog* AbstractDialogFactory_Impl::CreateOptionsDialog(
+VclPtr<VclAbstractDialog> AbstractDialogFactory_Impl::CreateOptionsDialog(
vcl::Window* pParent, const OUString& rExtensionId, const OUString& /*rApplicationContext*/ )
{
- return new CuiVclAbstractDialog_Impl( VclPtr<OfaTreeOptionsDialog>::Create( pParent, rExtensionId ) );
+ return VclPtr<CuiVclAbstractDialog_Impl>::Create( VclPtr<OfaTreeOptionsDialog>::Create( pParent, rExtensionId ) );
}
-SvxAbstractInsRowColDlg* AbstractDialogFactory_Impl::CreateSvxInsRowColDlg( vcl::Window* pParent, bool bCol, const OString& sHelpId )
+VclPtr<SvxAbstractInsRowColDlg> AbstractDialogFactory_Impl::CreateSvxInsRowColDlg( vcl::Window* pParent, bool bCol, const OString& sHelpId )
{
- return new SvxInsRowColDlg( pParent, bCol, sHelpId );
+ return VclPtr<SvxInsRowColDlg>::Create( pParent, bCol, sHelpId );
}
-AbstractPasswordToOpenModifyDialog * AbstractDialogFactory_Impl::CreatePasswordToOpenModifyDialog(
+VclPtr<AbstractPasswordToOpenModifyDialog> AbstractDialogFactory_Impl::CreatePasswordToOpenModifyDialog(
vcl::Window * pParent,
sal_uInt16 nMaxPasswdLen, bool bIsPasswordToModify )
{
VclPtrInstance<PasswordToOpenModifyDialog> pDlg( pParent, 0, nMaxPasswdLen, bIsPasswordToModify );
- return new AbstractPasswordToOpenModifyDialog_Impl( pDlg );
+ return VclPtr<AbstractPasswordToOpenModifyDialog_Impl>::Create( pDlg );
}
-AbstractScreenshotAnnotationDlg* AbstractDialogFactory_Impl::CreateScreenshotAnnotationDlg(
+VclPtr<AbstractScreenshotAnnotationDlg> AbstractDialogFactory_Impl::CreateScreenshotAnnotationDlg(
vcl::Window * pParent,
Dialog& rParentDialog)
{
VclPtrInstance<ScreenshotAnnotationDlg> pDlg(pParent, rParentDialog);
- return new AbstractScreenshotAnnotationDlg_Impl(pDlg);
+ return VclPtr<AbstractScreenshotAnnotationDlg_Impl>::Create(pDlg);
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/factory/dlgfact.hxx b/cui/source/factory/dlgfact.hxx
index 510d18e49836..adf568ecaaae 100644
--- a/cui/source/factory/dlgfact.hxx
+++ b/cui/source/factory/dlgfact.hxx
@@ -82,6 +82,7 @@ class VclAbstractDialog2_Impl : public VclAbstractDialog2
public:
explicit VclAbstractDialog2_Impl( Dialog* p ) : m_pDlg( p ) {}
virtual ~VclAbstractDialog2_Impl() override;
+ virtual void dispose() override;
virtual void StartExecuteModal( const Link<Dialog&,void>& rEndDialogHdl ) override;
virtual long GetResult() override;
private:
@@ -454,137 +455,140 @@ class AbstractScreenshotAnnotationDlg_Impl : public AbstractScreenshotAnnotation
class AbstractDialogFactory_Impl : public SvxAbstractDialogFactory
{
public:
- virtual VclAbstractDialog* CreateVclDialog( vcl::Window* pParent, sal_uInt32 nResId ) override;
+ virtual VclPtr<VclAbstractDialog> CreateVclDialog( vcl::Window* pParent, sal_uInt32 nResId ) override;
- virtual SfxAbstractDialog* CreateSfxDialog( vcl::Window* pParent,
+ virtual VclPtr<SfxAbstractDialog> CreateSfxDialog( vcl::Window* pParent,
const SfxItemSet& rAttr,
const SdrView* pView,
sal_uInt32 nResId ) override;
- virtual SfxAbstractDialog* CreateSfxDialog( vcl::Window* pParent,
+ virtual VclPtr<SfxAbstractDialog> CreateSfxDialog( vcl::Window* pParent,
const SfxItemSet& rAttr,
const css::uno::Reference< css::frame::XFrame >& _rxFrame,
sal_uInt32 nResId ) override;
- virtual VclAbstractDialog* CreateFrameDialog( const css::uno::Reference< css::frame::XFrame >& rxFrame,
+ virtual VclPtr<VclAbstractDialog> CreateFrameDialog( const css::uno::Reference< css::frame::XFrame >& rxFrame,
sal_uInt32 nResId,
const OUString& rParameter ) override;
- virtual SfxAbstractTabDialog* CreateAutoCorrTabDialog( const SfxItemSet* pAttrSet ) override;
- virtual SfxAbstractTabDialog* CreateCustomizeTabDialog(
+ virtual VclPtr<SfxAbstractTabDialog> CreateAutoCorrTabDialog( const SfxItemSet* pAttrSet ) override;
+ virtual VclPtr<SfxAbstractTabDialog> CreateCustomizeTabDialog(
const SfxItemSet* pAttrSet,
const css::uno::Reference< css::frame::XFrame >& xViewFrame ) override;
- virtual SfxAbstractTabDialog* CreateTextTabDialog( vcl::Window* pParent,
+ virtual VclPtr<SfxAbstractTabDialog> CreateTextTabDialog( vcl::Window* pParent,
const SfxItemSet* pAttrSet,
SdrView* pView ) override;
- virtual SfxAbstractTabDialog* CreateTabItemDialog(vcl::Window* pParent,
+ virtual VclPtr<SfxAbstractTabDialog> CreateTabItemDialog(vcl::Window* pParent,
const SfxItemSet& rSet) override;
- virtual AbstractSvxCaptionDialog* CreateCaptionDialog( vcl::Window* pParent,
+ virtual VclPtr<AbstractSvxCaptionDialog>
+ CreateCaptionDialog( vcl::Window* pParent,
const SdrView* pView,
SvxAnchorIds nAnchorTypes = SvxAnchorIds::NONE ) override;
- virtual AbstractSvxDistributeDialog* CreateSvxDistributeDialog(const SfxItemSet& rAttr) override;
- virtual SfxAbstractInsertObjectDialog* CreateInsertObjectDialog( vcl::Window* pParent, const OUString& rCommmand,
- const css::uno::Reference < css::embed::XStorage >& xStor,
- const SvObjectServerList* pList = nullptr ) override;
- virtual VclAbstractDialog* CreateEditObjectDialog( const OUString& rCommmand,
- const css::uno::Reference < css::embed::XEmbeddedObject >& xObj ) override;
- virtual SfxAbstractPasteDialog* CreatePasteDialog( vcl::Window* pParent ) override;
- virtual SfxAbstractLinksDialog* CreateLinksDialog( vcl::Window* pParent, sfx2::LinkManager* pMgr, bool bHTML = false, sfx2::SvBaseLink* p=nullptr ) override;
-
- virtual AbstractHangulHanjaConversionDialog * CreateHangulHanjaConversionDialog( vcl::Window* _pParent,
+ virtual VclPtr<AbstractSvxDistributeDialog>
+ CreateSvxDistributeDialog(const SfxItemSet& rAttr) override;
+ virtual VclPtr<SfxAbstractInsertObjectDialog>
+ CreateInsertObjectDialog( vcl::Window* pParent, const OUString& rCommmand,
+ const css::uno::Reference < css::embed::XStorage >& xStor,
+ const SvObjectServerList* pList = nullptr ) override;
+ virtual VclPtr<VclAbstractDialog> CreateEditObjectDialog( const OUString& rCommmand,
+ const css::uno::Reference < css::embed::XEmbeddedObject >& xObj ) override;
+ virtual VclPtr<SfxAbstractPasteDialog> CreatePasteDialog( vcl::Window* pParent ) override;
+ virtual VclPtr<SfxAbstractLinksDialog> CreateLinksDialog( vcl::Window* pParent, sfx2::LinkManager* pMgr, bool bHTML = false, sfx2::SvBaseLink* p=nullptr ) override;
+
+ virtual VclPtr<AbstractHangulHanjaConversionDialog> CreateHangulHanjaConversionDialog( vcl::Window* _pParent,
editeng::HangulHanjaConversion::ConversionDirection _ePrimaryDirection ) override;
- virtual AbstractThesaurusDialog* CreateThesaurusDialog( vcl::Window*, css::uno::Reference< css::linguistic2::XThesaurus > xThesaurus,
+ virtual VclPtr<AbstractThesaurusDialog> CreateThesaurusDialog( vcl::Window*, css::uno::Reference< css::linguistic2::XThesaurus > xThesaurus,
const OUString &rWord, sal_Int16 nLanguage ) override;
- virtual AbstractHyphenWordDialog* CreateHyphenWordDialog( vcl::Window*,
+ virtual VclPtr<AbstractHyphenWordDialog> CreateHyphenWordDialog( vcl::Window*,
const OUString &rWord, LanguageType nLang,
css::uno::Reference< css::linguistic2::XHyphenator > &xHyphen,
SvxSpellWrapper* pWrapper ) override;
- virtual AbstractFmShowColsDialog * CreateFmShowColsDialog() override;
- virtual AbstractSvxZoomDialog * CreateSvxZoomDialog( vcl::Window* pParent,
+ virtual VclPtr<AbstractFmShowColsDialog> CreateFmShowColsDialog() override;
+ virtual VclPtr<AbstractSvxZoomDialog> CreateSvxZoomDialog( vcl::Window* pParent,
const SfxItemSet& rCoreSet) override;
//UUUU add for SvxBorderBackgroundDlg
- virtual SfxAbstractTabDialog* CreateSvxBorderBackgroundDlg(
+ virtual VclPtr<SfxAbstractTabDialog> CreateSvxBorderBackgroundDlg(
vcl::Window* pParent,
const SfxItemSet& rCoreSet,
bool bEnableSelector,
bool bEnableDrawingLayerFillStyles = false) override;
- virtual AbstractSvxTransformTabDialog* CreateSvxTransformTabDialog( vcl::Window* pParent,
+ virtual VclPtr<AbstractSvxTransformTabDialog> CreateSvxTransformTabDialog( vcl::Window* pParent,
const SfxItemSet* pAttr,
const SdrView* pView,
SvxAnchorIds nAnchorTypes = SvxAnchorIds::NONE) override ;
- virtual SfxAbstractTabDialog* CreateSchTransformTabDialog( vcl::Window* pParent,
+ virtual VclPtr<SfxAbstractTabDialog> CreateSchTransformTabDialog( vcl::Window* pParent,
const SfxItemSet* pAttr,
const SdrView* pSdrView,
bool bSizeTabPage
) override;
- virtual AbstractSpellDialog * CreateSvxSpellDialog(
+ virtual VclPtr<AbstractSpellDialog> CreateSvxSpellDialog(
vcl::Window* pParent,
SfxBindings* pBindings,
svx::SpellDialogChildWindow* pSpellChildWindow ) override;
- virtual VclAbstractRefreshableDialog * CreateActualizeProgressDialog( vcl::Window* pParent, GalleryTheme* pThm ) override;
- virtual AbstractTitleDialog * CreateTitleDialog( vcl::Window* pParent,
+ virtual VclPtr<VclAbstractRefreshableDialog> CreateActualizeProgressDialog( vcl::Window* pParent, GalleryTheme* pThm ) override;
+ virtual VclPtr<AbstractTitleDialog> CreateTitleDialog( vcl::Window* pParent,
const OUString& rOldText) override;
- virtual AbstractGalleryIdDialog * CreateGalleryIdDialog( vcl::Window* pParent,
+ virtual VclPtr<AbstractGalleryIdDialog> CreateGalleryIdDialog( vcl::Window* pParent,
GalleryTheme* pThm) override;
- virtual VclAbstractDialog2 * CreateGalleryThemePropertiesDialog(
+ virtual VclPtr<VclAbstractDialog2> CreateGalleryThemePropertiesDialog(
ExchangeData* pData,
SfxItemSet* pItemSet) override;
- virtual AbstractURLDlg * CreateURLDialog( vcl::Window* pParent,
+ virtual VclPtr<AbstractURLDlg> CreateURLDialog( vcl::Window* pParent,
const OUString& rURL, const OUString& rAltText, const OUString& rDescription,
const OUString& rTarget, const OUString& rName,
TargetList& rTargetList ) override;
- virtual VclAbstractDialog* CreateSvxSearchAttributeDialog( vcl::Window* pParent,
+ virtual VclPtr<VclAbstractDialog> CreateSvxSearchAttributeDialog( vcl::Window* pParent,
SearchAttrItemList& rLst,
const sal_uInt16* pWhRanges) override;
- virtual AbstractSvxSearchSimilarityDialog * CreateSvxSearchSimilarityDialog( vcl::Window* pParent,
+ virtual VclPtr<AbstractSvxSearchSimilarityDialog> CreateSvxSearchSimilarityDialog( vcl::Window* pParent,
bool bRelax,
sal_uInt16 nOther,
sal_uInt16 nShorter,
sal_uInt16 nLonger) override;
- virtual AbstractSvxJSearchOptionsDialog * CreateSvxJSearchOptionsDialog( vcl::Window* pParent,
+ virtual VclPtr<AbstractSvxJSearchOptionsDialog> CreateSvxJSearchOptionsDialog( vcl::Window* pParent,
const SfxItemSet& rOptionsSet,
sal_Int32 nInitialFlags) override;
- virtual AbstractFmInputRecordNoDialog * CreateFmInputRecordNoDialog() override;
- virtual AbstractSvxNewDictionaryDialog* CreateSvxNewDictionaryDialog( vcl::Window* pParent ) override;
- virtual VclAbstractDialog * CreateSvxEditDictionaryDialog( vcl::Window* pParent,
+ virtual VclPtr<AbstractFmInputRecordNoDialog> CreateFmInputRecordNoDialog() override;
+ virtual VclPtr<AbstractSvxNewDictionaryDialog> CreateSvxNewDictionaryDialog( vcl::Window* pParent ) override;
+ virtual VclPtr<VclAbstractDialog> CreateSvxEditDictionaryDialog( vcl::Window* pParent,
const OUString& rName) override;
- virtual AbstractSvxNameDialog * CreateSvxNameDialog( vcl::Window* pParent,
+ virtual VclPtr<AbstractSvxNameDialog> CreateSvxNameDialog( vcl::Window* pParent,
const OUString& rName, const OUString& rDesc ) override;
// #i68101#
- virtual AbstractSvxObjectNameDialog* CreateSvxObjectNameDialog(const OUString& rName ) override;
- virtual AbstractSvxObjectTitleDescDialog* CreateSvxObjectTitleDescDialog(const OUString& rTitle, const OUString& rDescription) override;
+ virtual VclPtr<AbstractSvxObjectNameDialog> CreateSvxObjectNameDialog(const OUString& rName ) override;
+ virtual VclPtr<AbstractSvxObjectTitleDescDialog> CreateSvxObjectTitleDescDialog(const OUString& rTitle, const OUString& rDescription) override;
- virtual AbstractSvxMultiPathDialog * CreateSvxMultiPathDialog(vcl::Window* pParent) override;
- virtual AbstractSvxMultiPathDialog * CreateSvxPathSelectDialog(vcl::Window* pParent) override;
- virtual AbstractSvxHpLinkDlg * CreateSvxHpLinkDlg(vcl::Window* pParent, SfxBindings* pBindings) override;
- virtual AbstractFmSearchDialog* CreateFmSearchDialog(vcl::Window* pParent,
+ virtual VclPtr<AbstractSvxMultiPathDialog> CreateSvxMultiPathDialog(vcl::Window* pParent) override;
+ virtual VclPtr<AbstractSvxMultiPathDialog> CreateSvxPathSelectDialog(vcl::Window* pParent) override;
+ virtual VclPtr<AbstractSvxHpLinkDlg> CreateSvxHpLinkDlg(vcl::Window* pParent, SfxBindings* pBindings) override;
+ virtual VclPtr<AbstractFmSearchDialog> CreateFmSearchDialog(vcl::Window* pParent,
const OUString& strInitialText,
const ::std::vector< OUString >& _rContexts,
sal_Int16 nInitialContext,
const Link<FmSearchContext&,sal_uInt32>& lnkContextSupplier) override;
- virtual AbstractGraphicFilterDialog * CreateGraphicFilterEmboss(vcl::Window* pParent,
+ virtual VclPtr<AbstractGraphicFilterDialog> CreateGraphicFilterEmboss(vcl::Window* pParent,
const Graphic& rGraphic) override;
- virtual AbstractGraphicFilterDialog * CreateGraphicFilterPoster(vcl::Window* pParent,
+ virtual VclPtr<AbstractGraphicFilterDialog> CreateGraphicFilterPoster(vcl::Window* pParent,
const Graphic& rGraphic) override;
- virtual AbstractGraphicFilterDialog * CreateGraphicFilterSepia (vcl::Window* pParent,
+ virtual VclPtr<AbstractGraphicFilterDialog> CreateGraphicFilterSepia (vcl::Window* pParent,
const Graphic& rGraphic) override;
- virtual AbstractGraphicFilterDialog * CreateGraphicFilterSmooth (vcl::Window* pParent,
+ virtual VclPtr<AbstractGraphicFilterDialog> CreateGraphicFilterSmooth (vcl::Window* pParent,
const Graphic& rGraphic, double nRadius) override;
- virtual AbstractGraphicFilterDialog * CreateGraphicFilterSolarize (vcl::Window* pParent,
+ virtual VclPtr<AbstractGraphicFilterDialog> CreateGraphicFilterSolarize (vcl::Window* pParent,
const Graphic& rGraphic) override;
- virtual AbstractGraphicFilterDialog * CreateGraphicFilterMosaic (vcl::Window* pParent,
+ virtual VclPtr<AbstractGraphicFilterDialog> CreateGraphicFilterMosaic (vcl::Window* pParent,
const Graphic& rGraphic) override;
- virtual AbstractSvxAreaTabDialog* CreateSvxAreaTabDialog( vcl::Window* pParent,
+ virtual VclPtr<AbstractSvxAreaTabDialog> CreateSvxAreaTabDialog( vcl::Window* pParent,
const SfxItemSet* pAttr,
SdrModel* pModel,
bool bShadow ) override;
- virtual SfxAbstractTabDialog* CreateSvxLineTabDialog( vcl::Window* pParent, const SfxItemSet* pAttr,
+ virtual VclPtr<SfxAbstractTabDialog> CreateSvxLineTabDialog( vcl::Window* pParent, const SfxItemSet* pAttr,
SdrModel* pModel,
const SdrObject* pObj,
bool bHasObj = true ) override;
- virtual AbstractSvxPostItDialog* CreateSvxPostItDialog( vcl::Window* pParent,
+ virtual VclPtr<AbstractSvxPostItDialog> CreateSvxPostItDialog( vcl::Window* pParent,
const SfxItemSet& rCoreSet,
bool bPrevNext = false ) override;
@@ -593,17 +597,17 @@ public:
virtual GetTabPageRanges GetTabPageRangesFunc( sal_uInt16 nId ) override;
virtual DialogGetRanges GetDialogGetRangesFunc() override;
- virtual VclAbstractDialog* CreateSvxScriptOrgDialog( vcl::Window* pParent, const OUString& rLanguage ) override;
+ virtual VclPtr<VclAbstractDialog> CreateSvxScriptOrgDialog( vcl::Window* pParent, const OUString& rLanguage ) override;
- virtual AbstractScriptSelectorDialog*
+ virtual VclPtr<AbstractScriptSelectorDialog>
CreateScriptSelectorDialog(
vcl::Window* pParent,
const css::uno::Reference< css::frame::XFrame >& _rxFrame
) override;
- virtual VclAbstractDialog* CreateScriptErrorDialog(const css::uno::Any& rException) override;
+ virtual VclPtr<VclAbstractDialog> CreateScriptErrorDialog(const css::uno::Any& rException) override;
- virtual VclAbstractDialog* CreateSvxMacroAssignDlg(
+ virtual VclPtr<VclAbstractDialog> CreateSvxMacroAssignDlg(
vcl::Window* _pParent,
const css::uno::Reference< css::frame::XFrame >& _rxDocumentFrame,
const bool _bUnoDialogMode,
@@ -611,20 +615,20 @@ public:
const sal_uInt16 _nInitiallySelectedEvent
) override;
- virtual SfxAbstractTabDialog* CreateSvxFormatCellsDialog( const SfxItemSet* pAttr, SdrModel* pModel, const SdrObject* pObj ) override;
+ virtual VclPtr<SfxAbstractTabDialog> CreateSvxFormatCellsDialog( const SfxItemSet* pAttr, SdrModel* pModel, const SdrObject* pObj ) override;
- virtual SvxAbstractSplittTableDialog* CreateSvxSplittTableDialog( vcl::Window* pParent, bool bIsTableVertical, long nMaxVertical ) override;
+ virtual VclPtr<SvxAbstractSplittTableDialog> CreateSvxSplittTableDialog( vcl::Window* pParent, bool bIsTableVertical, long nMaxVertical ) override;
- virtual SvxAbstractNewTableDialog* CreateSvxNewTableDialog() override ;
+ virtual VclPtr<SvxAbstractNewTableDialog> CreateSvxNewTableDialog() override ;
- virtual VclAbstractDialog* CreateOptionsDialog(
+ virtual VclPtr<VclAbstractDialog> CreateOptionsDialog(
vcl::Window* pParent, const OUString& rExtensionId, const OUString& rApplicationContext ) override;
- virtual SvxAbstractInsRowColDlg* CreateSvxInsRowColDlg( vcl::Window* pParent, bool bCol, const OString& sHelpId ) override;
+ virtual VclPtr<SvxAbstractInsRowColDlg> CreateSvxInsRowColDlg( vcl::Window* pParent, bool bCol, const OString& sHelpId ) override;
- virtual AbstractPasswordToOpenModifyDialog * CreatePasswordToOpenModifyDialog(vcl::Window * pParent, sal_uInt16 nMaxPasswdLen, bool bIsPasswordToModify) override;
+ virtual VclPtr<AbstractPasswordToOpenModifyDialog> CreatePasswordToOpenModifyDialog(vcl::Window * pParent, sal_uInt16 nMaxPasswdLen, bool bIsPasswordToModify) override;
- virtual AbstractScreenshotAnnotationDlg* CreateScreenshotAnnotationDlg(vcl::Window * pParent, Dialog& rParentDialog) override;
+ virtual VclPtr<AbstractScreenshotAnnotationDlg> CreateScreenshotAnnotationDlg(vcl::Window * pParent, Dialog& rParentDialog) override;
};
#endif
diff --git a/cui/source/inc/insrc.hxx b/cui/source/inc/insrc.hxx
index 9739e28f4c8f..e6fa2a01b94f 100644
--- a/cui/source/inc/insrc.hxx
+++ b/cui/source/inc/insrc.hxx
@@ -45,6 +45,7 @@ class SvxInsRowColDlg : public SvxAbstractInsRowColDlg
public:
SvxInsRowColDlg( vcl::Window* pParent, bool bCol, const OString& sHelpId );
virtual ~SvxInsRowColDlg() override;
+ virtual void dispose() override;
virtual short Execute() override;
diff --git a/cui/source/inc/newtabledlg.hxx b/cui/source/inc/newtabledlg.hxx
index 6dd1de126ae4..91de08ff6f23 100644
--- a/cui/source/inc/newtabledlg.hxx
+++ b/cui/source/inc/newtabledlg.hxx
@@ -36,6 +36,7 @@ private:
public:
SvxNewTableDialog();
virtual ~SvxNewTableDialog() override;
+ virtual void dispose() override;
virtual short Execute() override;
diff --git a/cui/source/inc/splitcelldlg.hxx b/cui/source/inc/splitcelldlg.hxx
index df85c2f73cb8..6ff4d0c9abc5 100644
--- a/cui/source/inc/splitcelldlg.hxx
+++ b/cui/source/inc/splitcelldlg.hxx
@@ -40,6 +40,7 @@ class SvxSplitTableDlg : public SvxAbstractSplittTableDialog
public:
SvxSplitTableDlg(vcl::Window *pParent, bool bIsTableVertical, long nMaxVertical, long nMaxHorizontal );
virtual ~SvxSplitTableDlg() override;
+ virtual void dispose() override;
DECL_LINK( ClickHdl, Button *, void );
diff --git a/dbaccess/source/ui/browser/brwctrlr.cxx b/dbaccess/source/ui/browser/brwctrlr.cxx
index bf6c989bb040..a09fd63a63d7 100644
--- a/dbaccess/source/ui/browser/brwctrlr.cxx
+++ b/dbaccess/source/ui/browser/brwctrlr.cxx
@@ -1837,7 +1837,7 @@ void SbaXDataBrowserController::ExecuteSearch()
Reference< css::util::XNumberFormatsSupplier > xNFS(::dbtools::getNumberFormats(::dbtools::getConnection(m_xRowSet), true, getORB()));
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
- AbstractFmSearchDialog* pDialog = nullptr;
+ VclPtr<AbstractFmSearchDialog> pDialog;
if ( pFact )
{
::std::vector< OUString > aContextNames;
@@ -1851,7 +1851,7 @@ void SbaXDataBrowserController::ExecuteSearch()
pDialog->SetFoundHandler( LINK( this, SbaXDataBrowserController, OnFoundData ) );
pDialog->SetCanceledNotFoundHdl( LINK( this, SbaXDataBrowserController, OnCanceledNotFound ) );
pDialog->Execute();
- delete pDialog;
+ pDialog.disposeAndClear();
}
// restore the grid's normal operating state
diff --git a/dbaccess/source/ui/querydesign/QTableConnection.cxx b/dbaccess/source/ui/querydesign/QTableConnection.cxx
index 0f546066be32..4a17b327f923 100644
--- a/dbaccess/source/ui/querydesign/QTableConnection.cxx
+++ b/dbaccess/source/ui/querydesign/QTableConnection.cxx
@@ -31,7 +31,8 @@ OQueryTableConnection::OQueryTableConnection(OQueryTableView* pContainer, const
}
OQueryTableConnection::OQueryTableConnection(const OQueryTableConnection& rConn)
- : OTableConnection( rConn )
+ : VclReferenceBase(),
+ OTableConnection( rConn )
, m_bVisited(false)
{
// no own members, so base class functionality is sufficient
diff --git a/dbaccess/source/ui/querydesign/TableConnection.cxx b/dbaccess/source/ui/querydesign/TableConnection.cxx
index ebf2e179ff96..5cd282fba121 100644
--- a/dbaccess/source/ui/querydesign/TableConnection.cxx
+++ b/dbaccess/source/ui/querydesign/TableConnection.cxx
@@ -42,9 +42,11 @@ namespace dbaui
Show();
}
- OTableConnection::OTableConnection( const OTableConnection& _rConn ) : Window(_rConn.m_pParent.get())
- ,m_pData(_rConn.GetData()->NewInstance())
- ,m_pParent(nullptr)
+ OTableConnection::OTableConnection( const OTableConnection& _rConn )
+ : VclReferenceBase()
+ ,Window(_rConn.m_pParent.get())
+ ,m_pData(_rConn.GetData()->NewInstance())
+ ,m_pParent(nullptr)
{
*this = _rConn;
}
diff --git a/dbaccess/source/ui/relationdesign/RTableConnection.cxx b/dbaccess/source/ui/relationdesign/RTableConnection.cxx
index 61834237b388..4b5824a0dbb0 100644
--- a/dbaccess/source/ui/relationdesign/RTableConnection.cxx
+++ b/dbaccess/source/ui/relationdesign/RTableConnection.cxx
@@ -33,7 +33,7 @@ ORelationTableConnection::ORelationTableConnection( ORelationTableView* pContain
}
ORelationTableConnection::ORelationTableConnection( const ORelationTableConnection& rConn )
- : OTableConnection( rConn )
+ : VclReferenceBase(), OTableConnection( rConn )
{
// no own members, thus the base class functionality is enough
}
diff --git a/editeng/source/misc/hangulhanja.cxx b/editeng/source/misc/hangulhanja.cxx
index 41d351af4f8b..e6deb82f51b0 100644
--- a/editeng/source/misc/hangulhanja.cxx
+++ b/editeng/source/misc/hangulhanja.cxx
@@ -67,7 +67,7 @@ namespace editeng
static StringMap m_aRecentlyUsedList;
// general
- AbstractHangulHanjaConversionDialog*
+ VclPtr<AbstractHangulHanjaConversionDialog>
m_pConversionDialog; // the dialog to display for user interaction
VclPtr<vcl::Window> m_pUIParent; // the parent window for any UI we raise
Reference< XComponentContext >
@@ -235,7 +235,7 @@ namespace editeng
sal_Int32 _nOptions,
bool _bIsInteractive,
HangulHanjaConversion* _pAntiImpl )
- : m_pConversionDialog( nullptr )
+ : m_pConversionDialog()
, m_pUIParent( _pUIParent )
, m_xContext( rxContext )
, m_aSourceLocale( _rSourceLocale )
@@ -673,7 +673,7 @@ namespace editeng
else
implUpdateData();
m_pConversionDialog->Execute();
- DELETEZ( m_pConversionDialog );
+ m_pConversionDialog.disposeAndClear();
}
else
{
diff --git a/include/editeng/edtdlg.hxx b/include/editeng/edtdlg.hxx
index ea0c5ec14bb8..c4be9fe644b4 100644
--- a/include/editeng/edtdlg.hxx
+++ b/include/editeng/edtdlg.hxx
@@ -84,14 +84,14 @@ class EDITENG_DLLPUBLIC EditAbstractDialogFactory : virtual public VclAbstractDi
public:
virtual ~EditAbstractDialogFactory() override; // needed for export of vtable
static EditAbstractDialogFactory* Create();
- virtual AbstractThesaurusDialog* CreateThesaurusDialog( vcl::Window*, css::uno::Reference< css::linguistic2::XThesaurus > xThesaurus,
+ virtual VclPtr<AbstractThesaurusDialog> CreateThesaurusDialog( vcl::Window*, css::uno::Reference< css::linguistic2::XThesaurus > xThesaurus,
const OUString &rWord, sal_Int16 nLanguage ) = 0;
- virtual AbstractHyphenWordDialog* CreateHyphenWordDialog( vcl::Window*,
+ virtual VclPtr<AbstractHyphenWordDialog> CreateHyphenWordDialog( vcl::Window*,
const OUString &rWord, LanguageType nLang,
css::uno::Reference< css::linguistic2::XHyphenator > &xHyphen,
SvxSpellWrapper* pWrapper ) = 0;
- virtual AbstractHangulHanjaConversionDialog * CreateHangulHanjaConversionDialog( vcl::Window* _pParent,
+ virtual VclPtr<AbstractHangulHanjaConversionDialog> CreateHangulHanjaConversionDialog( vcl::Window* _pParent,
editeng::HangulHanjaConversion::ConversionDirection _ePrimaryDirection ) = 0;
};
diff --git a/include/sfx2/sfxdlg.hxx b/include/sfx2/sfxdlg.hxx
index 071e3f8522c3..6b80bf842474 100644
--- a/include/sfx2/sfxdlg.hxx
+++ b/include/sfx2/sfxdlg.hxx
@@ -115,31 +115,31 @@ class SFX2_DLLPUBLIC SfxAbstractDialogFactory : virtual public VclAbstractDialog
public:
virtual ~SfxAbstractDialogFactory() override; // needed for export of vtable
static SfxAbstractDialogFactory* Create();
- virtual VclAbstractDialog* CreateFrameDialog( const css::uno::Reference< css::frame::XFrame >& rFrame, sal_uInt32 nResId, const rtl::OUString& rParameter ) = 0;
- virtual SfxAbstractTabDialog* CreateAutoCorrTabDialog( const SfxItemSet* pAttrSet ) = 0;
- virtual SfxAbstractTabDialog* CreateCustomizeTabDialog(
+ virtual VclPtr<VclAbstractDialog> CreateFrameDialog( const css::uno::Reference< css::frame::XFrame >& rFrame, sal_uInt32 nResId, const rtl::OUString& rParameter ) = 0;
+ virtual VclPtr<SfxAbstractTabDialog> CreateAutoCorrTabDialog( const SfxItemSet* pAttrSet ) = 0;
+ virtual VclPtr<SfxAbstractTabDialog> CreateCustomizeTabDialog(
const SfxItemSet* pAttrSet,
const css::uno::Reference< css::frame::XFrame >& xViewFrame ) = 0;
virtual CreateTabPage GetTabPageCreatorFunc( sal_uInt16 nId ) = 0;
virtual GetTabPageRanges GetTabPageRangesFunc( sal_uInt16 nId ) = 0;
- virtual SfxAbstractInsertObjectDialog* CreateInsertObjectDialog( vcl::Window* pParent, const OUString& rCommand,
+ virtual VclPtr<SfxAbstractInsertObjectDialog> CreateInsertObjectDialog( vcl::Window* pParent, const OUString& rCommand,
const css::uno::Reference < css::embed::XStorage >& xStor,
const SvObjectServerList* pList = nullptr )=0;
- virtual VclAbstractDialog* CreateEditObjectDialog( const OUString& rCommand,
+ virtual VclPtr<VclAbstractDialog> CreateEditObjectDialog( const OUString& rCommand,
const css::uno::Reference < css::embed::XEmbeddedObject >& xObj )=0;
- virtual SfxAbstractPasteDialog* CreatePasteDialog( vcl::Window* pParent )=0;
- virtual SfxAbstractLinksDialog* CreateLinksDialog( vcl::Window* pParent, sfx2::LinkManager* pMgr, bool bHTML=false, sfx2::SvBaseLink* p=nullptr )=0;
- virtual VclAbstractDialog * CreateSvxScriptOrgDialog( vcl::Window* pParent, const rtl::OUString& rLanguage ) = 0;
+ virtual VclPtr<SfxAbstractPasteDialog> CreatePasteDialog( vcl::Window* pParent )=0;
+ virtual VclPtr<SfxAbstractLinksDialog> CreateLinksDialog( vcl::Window* pParent, sfx2::LinkManager* pMgr, bool bHTML=false, sfx2::SvBaseLink* p=nullptr )=0;
+ virtual VclPtr<VclAbstractDialog> CreateSvxScriptOrgDialog( vcl::Window* pParent, const rtl::OUString& rLanguage ) = 0;
- virtual AbstractScriptSelectorDialog*
+ virtual VclPtr<AbstractScriptSelectorDialog>
CreateScriptSelectorDialog(
vcl::Window* pParent,
const css::uno::Reference< css::frame::XFrame >& _rxFrame
) = 0;
- virtual VclAbstractDialog* CreateScriptErrorDialog( const css::uno::Any& rException ) = 0;
+ virtual VclPtr<VclAbstractDialog> CreateScriptErrorDialog( const css::uno::Any& rException ) = 0;
- virtual VclAbstractDialog* CreateOptionsDialog(
+ virtual VclPtr<VclAbstractDialog> CreateOptionsDialog(
vcl::Window* pParent, const OUString& rExtensionId, const OUString& rApplicationContext ) = 0;
};
diff --git a/include/svx/SpellDialogChildWindow.hxx b/include/svx/SpellDialogChildWindow.hxx
index 9f1b3f20accf..b3d938c15b07 100644
--- a/include/svx/SpellDialogChildWindow.hxx
+++ b/include/svx/SpellDialogChildWindow.hxx
@@ -46,7 +46,7 @@ class SVX_DLLPUBLIC SpellDialogChildWindow
: public SfxChildWindow
{
friend class SpellDialog;
- std::unique_ptr<AbstractSpellDialog> m_xAbstractSpellDialog;
+ VclPtr<AbstractSpellDialog> m_xAbstractSpellDialog;
public:
SpellDialogChildWindow (
vcl::Window*pParent,
diff --git a/include/svx/hyperdlg.hxx b/include/svx/hyperdlg.hxx
index c42601d6c15a..c0a41a602345 100644
--- a/include/svx/hyperdlg.hxx
+++ b/include/svx/hyperdlg.hxx
@@ -34,7 +34,7 @@ class AbstractSvxHpLinkDlg;
class SVX_DLLPUBLIC SvxHlinkDlgWrapper : public SfxChildWindow
{
private:
- AbstractSvxHpLinkDlg* mpDlg;
+ VclPtr<AbstractSvxHpLinkDlg> mpDlg;
public:
SvxHlinkDlgWrapper( vcl::Window*pParent, sal_uInt16 nId,
diff --git a/include/svx/svxdlg.hxx b/include/svx/svxdlg.hxx
index 20b6b9dfddea..fcbbc43749b4 100644
--- a/include/svx/svxdlg.hxx
+++ b/include/svx/svxdlg.hxx
@@ -276,135 +276,135 @@ public:
virtual ~SvxAbstractDialogFactory() override;
- virtual SfxAbstractTabDialog* CreateTextTabDialog( vcl::Window* pParent,
+ virtual VclPtr<SfxAbstractTabDialog> CreateTextTabDialog( vcl::Window* pParent,
const SfxItemSet* pAttrSet,
SdrView* pView ) = 0 ;
- virtual AbstractSvxCaptionDialog* CreateCaptionDialog( vcl::Window* pParent,
+ virtual VclPtr<AbstractSvxCaptionDialog> CreateCaptionDialog( vcl::Window* pParent,
const SdrView* pView,
SvxAnchorIds nAnchorTypes = SvxAnchorIds::NONE ) = 0;
- virtual AbstractSvxDistributeDialog* CreateSvxDistributeDialog(
+ virtual VclPtr<AbstractSvxDistributeDialog> CreateSvxDistributeDialog(
const SfxItemSet& rAttr)= 0;
- virtual AbstractFmShowColsDialog * CreateFmShowColsDialog() = 0;
+ virtual VclPtr<AbstractFmShowColsDialog> CreateFmShowColsDialog() = 0;
- virtual AbstractSvxZoomDialog * CreateSvxZoomDialog( vcl::Window* pParent,
+ virtual VclPtr<AbstractSvxZoomDialog> CreateSvxZoomDialog( vcl::Window* pParent,
const SfxItemSet& rCoreSet )=0;
- virtual AbstractSpellDialog * CreateSvxSpellDialog(vcl::Window* pParent,
+ virtual VclPtr<AbstractSpellDialog> CreateSvxSpellDialog(vcl::Window* pParent,
SfxBindings* pBindings,
svx::SpellDialogChildWindow* pSpellChildWindow )=0;
- virtual VclAbstractRefreshableDialog * CreateActualizeProgressDialog( vcl::Window* pParent,
+ virtual VclPtr<VclAbstractRefreshableDialog> CreateActualizeProgressDialog( vcl::Window* pParent,
GalleryTheme* pThm ) = 0;
- virtual AbstractTitleDialog * CreateTitleDialog( vcl::Window* pParent,
+ virtual VclPtr<AbstractTitleDialog> CreateTitleDialog( vcl::Window* pParent,
const OUString& rOldText ) = 0;
- virtual AbstractGalleryIdDialog * CreateGalleryIdDialog( vcl::Window* pParent,
+ virtual VclPtr<AbstractGalleryIdDialog> CreateGalleryIdDialog( vcl::Window* pParent,
GalleryTheme* pThm ) = 0;
- virtual VclAbstractDialog2 * CreateGalleryThemePropertiesDialog(
+ virtual VclPtr<VclAbstractDialog2> CreateGalleryThemePropertiesDialog(
ExchangeData* pData,
SfxItemSet* pItemSet ) = 0;
- virtual AbstractURLDlg * CreateURLDialog( vcl::Window* pParent,
+ virtual VclPtr<AbstractURLDlg> CreateURLDialog( vcl::Window* pParent,
const OUString& rURL, const OUString& rAltText, const OUString& rDescription,
const OUString& rTarget, const OUString& rName,
TargetList& rTargetList ) = 0;
- virtual SfxAbstractTabDialog* CreateTabItemDialog(vcl::Window* pParent,
+ virtual VclPtr<SfxAbstractTabDialog> CreateTabItemDialog(vcl::Window* pParent,
const SfxItemSet& rSet) = 0;
- virtual VclAbstractDialog* CreateSvxSearchAttributeDialog( vcl::Window* pParent,
+ virtual VclPtr<VclAbstractDialog> CreateSvxSearchAttributeDialog( vcl::Window* pParent,
SearchAttrItemList& rLst,
const sal_uInt16* pWhRanges)=0;
- virtual AbstractSvxSearchSimilarityDialog * CreateSvxSearchSimilarityDialog( vcl::Window* pParent,
+ virtual VclPtr<AbstractSvxSearchSimilarityDialog> CreateSvxSearchSimilarityDialog( vcl::Window* pParent,
bool bRelax,
sal_uInt16 nOther,
sal_uInt16 nShorter,
sal_uInt16 nLonger ) = 0;
//UUUU add for SvxBorderBackgroundDlg
- virtual SfxAbstractTabDialog* CreateSvxBorderBackgroundDlg(
+ virtual VclPtr<SfxAbstractTabDialog> CreateSvxBorderBackgroundDlg(
vcl::Window* pParent,
const SfxItemSet& rCoreSet,
bool bEnableSelector,
bool bEnableDrawingLayerFillStyles = false) = 0;
- virtual AbstractSvxTransformTabDialog* CreateSvxTransformTabDialog( vcl::Window* pParent,
+ virtual VclPtr<AbstractSvxTransformTabDialog> CreateSvxTransformTabDialog( vcl::Window* pParent,
const SfxItemSet* pAttr,
const SdrView* pView,
SvxAnchorIds nAnchorTypes = SvxAnchorIds::NONE) = 0;
- virtual SfxAbstractTabDialog* CreateSchTransformTabDialog( vcl::Window* pParent,
+ virtual VclPtr<SfxAbstractTabDialog> CreateSchTransformTabDialog( vcl::Window* pParent,
const SfxItemSet* pAttr,
const SdrView* pSdrView,
bool bSizeTabPage
)=0;
- virtual AbstractSvxJSearchOptionsDialog * CreateSvxJSearchOptionsDialog( vcl::Window* pParent,
+ virtual VclPtr<AbstractSvxJSearchOptionsDialog> CreateSvxJSearchOptionsDialog( vcl::Window* pParent,
const SfxItemSet& rOptionsSet,
sal_Int32 nInitialFlags )=0;
- virtual AbstractFmInputRecordNoDialog * CreateFmInputRecordNoDialog() = 0;
- virtual AbstractSvxNewDictionaryDialog* CreateSvxNewDictionaryDialog( vcl::Window* pParent ) = 0;
- virtual VclAbstractDialog * CreateSvxEditDictionaryDialog( vcl::Window* pParent,
+ virtual VclPtr<AbstractFmInputRecordNoDialog> CreateFmInputRecordNoDialog() = 0;
+ virtual VclPtr<AbstractSvxNewDictionaryDialog> CreateSvxNewDictionaryDialog( vcl::Window* pParent ) = 0;
+ virtual VclPtr<VclAbstractDialog> CreateSvxEditDictionaryDialog( vcl::Window* pParent,
const OUString& rName) = 0;
- virtual AbstractSvxNameDialog * CreateSvxNameDialog( vcl::Window* pParent,
+ virtual VclPtr<AbstractSvxNameDialog> CreateSvxNameDialog( vcl::Window* pParent,
const OUString& rName, const OUString& rDesc ) = 0;
// #i68101#
- virtual AbstractSvxObjectNameDialog* CreateSvxObjectNameDialog(const OUString& rName ) = 0;
- virtual AbstractSvxObjectTitleDescDialog* CreateSvxObjectTitleDescDialog(const OUString& rTitle, const OUString& rDescription) = 0;
+ virtual VclPtr<AbstractSvxObjectNameDialog> CreateSvxObjectNameDialog(const OUString& rName ) = 0;
+ virtual VclPtr<AbstractSvxObjectTitleDescDialog> CreateSvxObjectTitleDescDialog(const OUString& rTitle, const OUString& rDescription) = 0;
- virtual AbstractSvxMultiPathDialog * CreateSvxMultiPathDialog(vcl::Window* pParent) = 0 ;
- virtual AbstractSvxMultiPathDialog * CreateSvxPathSelectDialog(vcl::Window* pParent) = 0 ;
- virtual AbstractSvxHpLinkDlg * CreateSvxHpLinkDlg(vcl::Window* pParent, SfxBindings* pBindings)=0;
- virtual AbstractFmSearchDialog* CreateFmSearchDialog(vcl::Window* pParent,
+ virtual VclPtr<AbstractSvxMultiPathDialog> CreateSvxMultiPathDialog(vcl::Window* pParent) = 0 ;
+ virtual VclPtr<AbstractSvxMultiPathDialog> CreateSvxPathSelectDialog(vcl::Window* pParent) = 0 ;
+ virtual VclPtr<AbstractSvxHpLinkDlg> CreateSvxHpLinkDlg(vcl::Window* pParent, SfxBindings* pBindings)=0;
+ virtual VclPtr<AbstractFmSearchDialog> CreateFmSearchDialog(vcl::Window* pParent,
const OUString& strInitialText,
const ::std::vector< OUString >& _rContexts,
sal_Int16 nInitialContext,
const Link<FmSearchContext&,sal_uInt32>& lnkContextSupplier)=0;
- virtual AbstractGraphicFilterDialog * CreateGraphicFilterEmboss(vcl::Window* pParent,
+ virtual VclPtr<AbstractGraphicFilterDialog> CreateGraphicFilterEmboss(vcl::Window* pParent,
const Graphic& rGraphic)=0;
- virtual AbstractGraphicFilterDialog * CreateGraphicFilterPoster(vcl::Window* pParent,
+ virtual VclPtr<AbstractGraphicFilterDialog> CreateGraphicFilterPoster(vcl::Window* pParent,
const Graphic& rGraphic)=0;
- virtual AbstractGraphicFilterDialog * CreateGraphicFilterSepia (vcl::Window* pParent,
+ virtual VclPtr<AbstractGraphicFilterDialog> CreateGraphicFilterSepia (vcl::Window* pParent,
const Graphic& rGraphic)=0;
- virtual AbstractGraphicFilterDialog * CreateGraphicFilterSmooth (vcl::Window* pParent,
+ virtual VclPtr<AbstractGraphicFilterDialog> CreateGraphicFilterSmooth (vcl::Window* pParent,
const Graphic& rGraphic,
double nRadius)=0;
- virtual AbstractGraphicFilterDialog * CreateGraphicFilterSolarize (vcl::Window* pParent,
+ virtual VclPtr<AbstractGraphicFilterDialog> CreateGraphicFilterSolarize (vcl::Window* pParent,
const Graphic& rGraphic)=0;
- virtual AbstractGraphicFilterDialog * CreateGraphicFilterMosaic (vcl::Window* pParent,
+ virtual VclPtr<AbstractGraphicFilterDialog> CreateGraphicFilterMosaic (vcl::Window* pParent,
const Graphic& rGraphic)=0;
- virtual AbstractSvxAreaTabDialog* CreateSvxAreaTabDialog( vcl::Window* pParent,
+ virtual VclPtr<AbstractSvxAreaTabDialog> CreateSvxAreaTabDialog( vcl::Window* pParent,
const SfxItemSet* pAttr,
SdrModel* pModel,
bool bShadow) = 0 ;
- virtual SfxAbstractTabDialog* CreateSvxLineTabDialog( vcl::Window* pParent, const SfxItemSet* pAttr, //add forSvxLineTabDialog
+ virtual VclPtr<SfxAbstractTabDialog> CreateSvxLineTabDialog( vcl::Window* pParent, const SfxItemSet* pAttr, //add forSvxLineTabDialog
SdrModel* pModel,
const SdrObject* pObj,
bool bHasObj = true )=0;
- virtual SfxAbstractDialog* CreateSfxDialog( vcl::Window* pParent,
+ virtual VclPtr<SfxAbstractDialog> CreateSfxDialog( vcl::Window* pParent,
const SfxItemSet& rAttr,
const SdrView* pView,
sal_uInt32 nResId
)=0;
- virtual SfxAbstractDialog* CreateSfxDialog( vcl::Window* pParent,
+ virtual VclPtr<SfxAbstractDialog> CreateSfxDialog( vcl::Window* pParent,
const SfxItemSet& rAttr,
const css::uno::Reference< css::frame::XFrame >& _rxFrame,
sal_uInt32 nResId
)=0;
- virtual AbstractSvxPostItDialog* CreateSvxPostItDialog( vcl::Window* pParent,
+ virtual VclPtr<AbstractSvxPostItDialog> CreateSvxPostItDialog( vcl::Window* pParent,
const SfxItemSet& rCoreSet,
bool bPrevNext = false) = 0;
- virtual VclAbstractDialog* CreateSvxScriptOrgDialog( vcl::Window* pParent, const OUString& rLanguage ) override = 0;
+ virtual VclPtr<VclAbstractDialog> CreateSvxScriptOrgDialog( vcl::Window* pParent, const OUString& rLanguage ) override = 0;
- virtual DialogGetRanges GetDialogGetRangesFunc() = 0;
+ virtual DialogGetRanges GetDialogGetRangesFunc() = 0;
- virtual AbstractScriptSelectorDialog*
+ virtual VclPtr<AbstractScriptSelectorDialog>
CreateScriptSelectorDialog(
vcl::Window* pParent,
const css::uno::Reference< css::frame::XFrame >& _rxFrame
) override = 0;
- virtual VclAbstractDialog* CreateScriptErrorDialog(const css::uno::Any& rException) override = 0;
+ virtual VclPtr<VclAbstractDialog> CreateScriptErrorDialog(const css::uno::Any& rException) override = 0;
- virtual VclAbstractDialog* CreateSvxMacroAssignDlg(
+ virtual VclPtr<VclAbstractDialog> CreateSvxMacroAssignDlg(
vcl::Window* _pParent,
const css::uno::Reference< css::frame::XFrame >& _rxDocumentFrame,
const bool _bUnoDialogMode,
@@ -412,13 +412,13 @@ public:
const sal_uInt16 _nInitiallySelectedEvent
) = 0;
- virtual SfxAbstractTabDialog* CreateSvxFormatCellsDialog( const SfxItemSet* pAttr, SdrModel* pModel, const SdrObject* pObj )=0;
+ virtual VclPtr<SfxAbstractTabDialog> CreateSvxFormatCellsDialog( const SfxItemSet* pAttr, SdrModel* pModel, const SdrObject* pObj )=0;
- virtual SvxAbstractSplittTableDialog* CreateSvxSplittTableDialog( vcl::Window* pParent, bool bIsTableVertical, long nMaxVertical )=0;
+ virtual VclPtr<SvxAbstractSplittTableDialog> CreateSvxSplittTableDialog( vcl::Window* pParent, bool bIsTableVertical, long nMaxVertical )=0;
- virtual SvxAbstractNewTableDialog* CreateSvxNewTableDialog() = 0;
+ virtual VclPtr<SvxAbstractNewTableDialog> CreateSvxNewTableDialog() = 0;
- virtual SvxAbstractInsRowColDlg* CreateSvxInsRowColDlg( vcl::Window* pParent, bool bCol, const OString& sHelpId ) = 0;
+ virtual VclPtr<SvxAbstractInsRowColDlg> CreateSvxInsRowColDlg( vcl::Window* pParent, bool bCol, const OString& sHelpId ) = 0;
};
#endif
diff --git a/include/vcl/abstdlg.hxx b/include/vcl/abstdlg.hxx
index 1db97cc290f5..6b89f95e7613 100644
--- a/include/vcl/abstdlg.hxx
+++ b/include/vcl/abstdlg.hxx
@@ -22,16 +22,22 @@
#include <rtl/ustring.hxx>
#include <tools/link.hxx>
#include <vcl/dllapi.h>
+#include <vcl/vclreferencebase.hxx>
#include <vector>
namespace vcl { class Window; }
class Dialog;
class Bitmap;
-class VCL_DLLPUBLIC VclAbstractDialog
+/**
+* Some things multiple-inherit from VclAbstractDialog and OutputDevice,
+* so we need to use virtual inheritance to keep the referencing counting
+* OK.
+*/
+class VCL_DLLPUBLIC VclAbstractDialog : public virtual VclReferenceBase
{
public:
- virtual ~VclAbstractDialog();
+ virtual ~VclAbstractDialog() override;
virtual short Execute() = 0;
// Screenshot interface
@@ -41,10 +47,10 @@ public:
virtual OString GetScreenshotId() const { return OString(); };
};
-class VCL_DLLPUBLIC VclAbstractDialog2
+class VCL_DLLPUBLIC VclAbstractDialog2 : public virtual VclReferenceBase
{
public:
- virtual ~VclAbstractDialog2();
+ virtual ~VclAbstractDialog2() override;
virtual void StartExecuteModal( const Link<Dialog&,void>& rEndDialogHdl ) = 0;
virtual long GetResult() = 0;
@@ -80,13 +86,13 @@ public:
virtual ~VclAbstractDialogFactory(); // needed for export of vtable
static VclAbstractDialogFactory* Create();
// The Id is an implementation detail of the factory
- virtual VclAbstractDialog* CreateVclDialog(vcl::Window* pParent, sal_uInt32 nId) = 0;
+ virtual VclPtr<VclAbstractDialog> CreateVclDialog(vcl::Window* pParent, sal_uInt32 nId) = 0;
// creates instance of PasswordToOpenModifyDialog from cui
- virtual AbstractPasswordToOpenModifyDialog* CreatePasswordToOpenModifyDialog( vcl::Window * pParent, sal_uInt16 nMaxPasswdLen, bool bIsPasswordToModify ) = 0;
+ virtual VclPtr<AbstractPasswordToOpenModifyDialog> CreatePasswordToOpenModifyDialog( vcl::Window * pParent, sal_uInt16 nMaxPasswdLen, bool bIsPasswordToModify ) = 0;
// creates instance of ScreenshotAnnotationDlg from cui
- virtual AbstractScreenshotAnnotationDlg* CreateScreenshotAnnotationDlg(
+ virtual VclPtr<AbstractScreenshotAnnotationDlg> CreateScreenshotAnnotationDlg(
vcl::Window* pParent,
Dialog& rParentDialog) = 0;
};
diff --git a/include/vcl/outdev.hxx b/include/vcl/outdev.hxx
index 7342f5266ba1..e21f0cb7647a 100644
--- a/include/vcl/outdev.hxx
+++ b/include/vcl/outdev.hxx
@@ -313,7 +313,12 @@ namespace vcl {
typedef OutputDevice RenderContext;
}
-class VCL_DLLPUBLIC OutputDevice :public VclReferenceBase
+/**
+* Some things multiple-inherit from VclAbstractDialog and OutputDevice,
+* so we need to use virtual inheritance to keep the referencing counting
+* OK.
+*/
+class VCL_DLLPUBLIC OutputDevice : public virtual VclReferenceBase
{
friend class Printer;
friend class VirtualDevice;
diff --git a/sc/source/ui/app/scdll.cxx b/sc/source/ui/app/scdll.cxx
index f001bccaa014..6bec0130bcc3 100644
--- a/sc/source/ui/app/scdll.cxx
+++ b/sc/source/ui/app/scdll.cxx
@@ -104,6 +104,7 @@
#include "dwfunctr.hxx"
#include "acredlin.hxx"
#include <o3tl/make_unique.hxx>
+#include "scabstdlg.hxx"
ScResId::ScResId( sal_uInt16 nId ) :
ResId( nId, *SC_MOD()->GetResMgr() )
diff --git a/sc/source/ui/attrdlg/scdlgfact.cxx b/sc/source/ui/attrdlg/scdlgfact.cxx
index e2bd4072ff6c..5f61a0ef0b5e 100644
--- a/sc/source/ui/attrdlg/scdlgfact.cxx
+++ b/sc/source/ui/attrdlg/scdlgfact.cxx
@@ -601,13 +601,13 @@ AbstractScImportAsciiDlg * ScAbstractDialogFactory_Impl::CreateScImportAsciiDlg
SvStream* pInStream, ScImportAsciiCall eCall )
{
VclPtr<ScImportAsciiDlg> pDlg = VclPtr<ScImportAsciiDlg>::Create( nullptr, aDatName,pInStream, eCall );
- return new AbstractScImportAsciiDlg_Impl( pDlg );
+ return VclPtr<AbstractScImportAsciiDlg_Impl>::Create( pDlg );
}
AbstractScTextImportOptionsDlg * ScAbstractDialogFactory_Impl::CreateScTextImportOptionsDlg()
{
VclPtr<ScTextImportOptionsDlg> pDlg = VclPtr<ScTextImportOptionsDlg>::Create(nullptr);
- return new AbstractScTextImportOptionsDlg_Impl(pDlg);
+ return VclPtr<AbstractScTextImportOptionsDlg_Impl>::Create(pDlg);
}
AbstractScAutoFormatDlg * ScAbstractDialogFactory_Impl::CreateScAutoFormatDlg(vcl::Window* pParent,
@@ -616,7 +616,7 @@ AbstractScAutoFormatDlg * ScAbstractDialogFactory_Impl::CreateScAutoFormatDlg(vc
ScViewData *pViewData)
{
VclPtr<ScAutoFormatDlg> pDlg = VclPtr<ScAutoFormatDlg>::Create(pParent, pAutoFormat, pSelFormatData, pViewData);
- return new AbstractScAutoFormatDlg_Impl(pDlg);
+ return VclPtr<AbstractScAutoFormatDlg_Impl>::Create(pDlg);
}
AbstractScColRowLabelDlg * ScAbstractDialogFactory_Impl::CreateScColRowLabelDlg(vcl::Window* pParent,
@@ -624,59 +624,59 @@ AbstractScColRowLabelDlg * ScAbstractDialogFactory_Impl::CreateScColRowLabelDlg
bool bRow)
{
VclPtr<ScColRowLabelDlg> pDlg = VclPtr<ScColRowLabelDlg>::Create( pParent, bCol,bRow );
- return new AbstractScColRowLabelDlg_Impl( pDlg );
+ return VclPtr<AbstractScColRowLabelDlg_Impl>::Create( pDlg );
}
AbstractScSortWarningDlg* ScAbstractDialogFactory_Impl::CreateScSortWarningDlg( vcl::Window* pParent, const OUString& rExtendText, const OUString& rCurrentText )
{
VclPtr<ScSortWarningDlg> pDlg = VclPtr<ScSortWarningDlg>::Create(pParent, rExtendText, rCurrentText );
- return new AbstractScSortWarningDlg_Impl( pDlg );
+ return VclPtr<AbstractScSortWarningDlg_Impl>::Create( pDlg );
}
AbstractScCondFormatManagerDlg* ScAbstractDialogFactory_Impl::CreateScCondFormatMgrDlg(vcl::Window* pParent, ScDocument* pDoc, const ScConditionalFormatList* pFormatList )
{
VclPtr<ScCondFormatManagerDlg> pDlg = VclPtr<ScCondFormatManagerDlg>::Create( pParent, pDoc, pFormatList );
- return new AbstractScCondFormatManagerDlg_Impl( pDlg );
+ return VclPtr<AbstractScCondFormatManagerDlg_Impl>::Create( pDlg );
}
AbstractScDataPilotDatabaseDlg * ScAbstractDialogFactory_Impl::CreateScDataPilotDatabaseDlg(vcl::Window* pParent)
{
VclPtr<ScDataPilotDatabaseDlg> pDlg = VclPtr<ScDataPilotDatabaseDlg>::Create( pParent );
- return new AbstractScDataPilotDatabaseDlg_Impl( pDlg );
+ return VclPtr<AbstractScDataPilotDatabaseDlg_Impl>::Create( pDlg );
}
AbstractScDataPilotSourceTypeDlg* ScAbstractDialogFactory_Impl::CreateScDataPilotSourceTypeDlg(
vcl::Window* pParent, bool bEnableExternal)
{
VclPtr<ScDataPilotSourceTypeDlg> pDlg = VclPtr<ScDataPilotSourceTypeDlg>::Create(pParent, bEnableExternal);
- return new AbstractScDataPilotSourceTypeDlg_Impl(pDlg);
+ return VclPtr<AbstractScDataPilotSourceTypeDlg_Impl>::Create(pDlg);
}
AbstractScDataPilotServiceDlg* ScAbstractDialogFactory_Impl::CreateScDataPilotServiceDlg( vcl::Window* pParent,
const std::vector<OUString>& rServices )
{
VclPtr<ScDataPilotServiceDlg> pDlg = VclPtr<ScDataPilotServiceDlg>::Create( pParent, rServices );
- return new AbstractScDataPilotServiceDlg_Impl( pDlg );
+ return VclPtr<AbstractScDataPilotServiceDlg_Impl>::Create( pDlg );
}
AbstractScDeleteCellDlg* ScAbstractDialogFactory_Impl::CreateScDeleteCellDlg(vcl::Window* pParent,
bool bDisallowCellMove)
{
VclPtr<ScDeleteCellDlg> pDlg = VclPtr<ScDeleteCellDlg>::Create(pParent, bDisallowCellMove);
- return new AbstractScDeleteCellDlg_Impl( pDlg );
+ return VclPtr<AbstractScDeleteCellDlg_Impl>::Create( pDlg );
}
AbstractScDataFormDlg* ScAbstractDialogFactory_Impl::CreateScDataFormDlg(vcl::Window* pParent,
ScTabViewShell* pTabViewShell)
{
VclPtr<ScDataFormDlg> pDlg = VclPtr<ScDataFormDlg>::Create(pParent, pTabViewShell);
- return new AbstractScDataFormDlg_Impl(pDlg);
+ return VclPtr<AbstractScDataFormDlg_Impl>::Create(pDlg);
}
AbstractScDeleteContentsDlg* ScAbstractDialogFactory_Impl::CreateScDeleteContentsDlg(vcl::Window* pParent)
{
VclPtr<ScDeleteContentsDlg> pDlg = VclPtr<ScDeleteContentsDlg>::Create(pParent, InsertDeleteFlags::NONE);
- return new AbstractScDeleteContentsDlg_Impl( pDlg );
+ return VclPtr<AbstractScDeleteContentsDlg_Impl>::Create( pDlg );
}
AbstractScFillSeriesDlg* ScAbstractDialogFactory_Impl::CreateScFillSeriesDlg( vcl::Window* pParent,
@@ -690,48 +690,48 @@ AbstractScFillSeriesDlg* ScAbstractDialogFactory_Impl::CreateScFillSeriesDlg( vc
sal_uInt16 nPossDir)
{
VclPtr<ScFillSeriesDlg> pDlg = VclPtr<ScFillSeriesDlg>::Create( pParent, rDocument,eFillDir, eFillCmd,eFillDateCmd, aStartStr,fStep,fMax,nPossDir);
- return new AbstractScFillSeriesDlg_Impl( pDlg );
+ return VclPtr<AbstractScFillSeriesDlg_Impl>::Create( pDlg );
}
AbstractScGroupDlg* ScAbstractDialogFactory_Impl::CreateAbstractScGroupDlg( vcl::Window* pParent,
bool bUnGroup )
{
VclPtr<ScGroupDlg> pDlg = VclPtr<ScGroupDlg>::Create( pParent, bUnGroup, true/*bRows*/);
- return new AbstractScGroupDlg_Impl( pDlg );
+ return VclPtr<AbstractScGroupDlg_Impl>::Create( pDlg );
}
AbstractScInsertCellDlg * ScAbstractDialogFactory_Impl::CreateScInsertCellDlg( vcl::Window* pParent,
bool bDisallowCellMove )
{
VclPtr<ScInsertCellDlg> pDlg = VclPtr<ScInsertCellDlg>::Create( pParent, bDisallowCellMove);
- return new AbstractScInsertCellDlg_Impl( pDlg );
+ return VclPtr<AbstractScInsertCellDlg_Impl>::Create( pDlg );
}
AbstractScInsertContentsDlg * ScAbstractDialogFactory_Impl::CreateScInsertContentsDlg( vcl::Window* pParent,
const OUString* pStrTitle )
{
VclPtr<ScInsertContentsDlg> pDlg = VclPtr<ScInsertContentsDlg>::Create(pParent, InsertDeleteFlags::NONE, pStrTitle);
- return new AbstractScInsertContentsDlg_Impl( pDlg );
+ return VclPtr<AbstractScInsertContentsDlg_Impl>::Create( pDlg );
}
AbstractScInsertTableDlg * ScAbstractDialogFactory_Impl::CreateScInsertTableDlg(vcl::Window* pParent, ScViewData& rViewData,
SCTAB nTabCount, bool bFromFile)
{
VclPtr<ScInsertTableDlg> pDlg = VclPtr<ScInsertTableDlg>::Create( pParent, rViewData,nTabCount, bFromFile );
- return new AbstractScInsertTableDlg_Impl( pDlg );
+ return VclPtr<AbstractScInsertTableDlg_Impl>::Create( pDlg );
}
AbstractScSelEntryDlg * ScAbstractDialogFactory_Impl::CreateScSelEntryDlg ( vcl::Window* pParent,
const std::vector<OUString> &rEntryList )
{
VclPtr<ScSelEntryDlg> pDlg = VclPtr<ScSelEntryDlg>::Create( pParent, rEntryList );
- return new AbstractScSelEntryDlg_Impl( pDlg );
+ return VclPtr<AbstractScSelEntryDlg_Impl>::Create( pDlg );
}
AbstractScLinkedAreaDlg * ScAbstractDialogFactory_Impl::CreateScLinkedAreaDlg(vcl::Window* pParent)
{
VclPtr<ScLinkedAreaDlg> pDlg = VclPtr<ScLinkedAreaDlg>::Create( pParent );
- return new AbstractScLinkedAreaDlg_Impl( pDlg );
+ return VclPtr<AbstractScLinkedAreaDlg_Impl>::Create( pDlg );
}
AbstractScMetricInputDlg * ScAbstractDialogFactory_Impl::CreateScMetricInputDlg ( vcl::Window* pParent,
@@ -745,33 +745,33 @@ AbstractScMetricInputDlg * ScAbstractDialogFactory_Impl::CreateScMetricInputDlg
{
VclPtr<ScMetricInputDlg> pDlg = VclPtr<ScMetricInputDlg>::Create(pParent, sDialogName, nCurrent ,nDefault, eFUnit,
nDecimals, nMaximum , nMinimum , 1, 100);
- return new AbstractScMetricInputDlg_Impl( pDlg );
+ return VclPtr<AbstractScMetricInputDlg_Impl>::Create( pDlg );
}
AbstractScMoveTableDlg * ScAbstractDialogFactory_Impl::CreateScMoveTableDlg(vcl::Window* pParent,
const OUString& rDefault)
{
VclPtr<ScMoveTableDlg> pDlg = VclPtr<ScMoveTableDlg>::Create( pParent, rDefault );
- return new AbstractScMoveTableDlg_Impl( pDlg );
+ return VclPtr<AbstractScMoveTableDlg_Impl>::Create( pDlg );
}
AbstractScNameCreateDlg * ScAbstractDialogFactory_Impl::CreateScNameCreateDlg(vcl::Window * pParent, sal_uInt16 nFlags)
{
VclPtr<ScNameCreateDlg> pDlg = VclPtr<ScNameCreateDlg>::Create( pParent, nFlags );
- return new AbstractScNameCreateDlg_Impl( pDlg );
+ return VclPtr<AbstractScNameCreateDlg_Impl>::Create( pDlg );
}
AbstractScNamePasteDlg * ScAbstractDialogFactory_Impl::CreateScNamePasteDlg ( vcl::Window * pParent, ScDocShell* pShell, bool bInsList )
{
VclPtr<ScNamePasteDlg> pDlg = VclPtr<ScNamePasteDlg>::Create( pParent, pShell, bInsList );
- return new AbstractScNamePasteDlg_Impl( pDlg );
+ return VclPtr<AbstractScNamePasteDlg_Impl>::Create( pDlg );
}
AbstractScPivotFilterDlg * ScAbstractDialogFactory_Impl::CreateScPivotFilterDlg(vcl::Window* pParent,
const SfxItemSet& rArgSet, sal_uInt16 nSourceTab)
{
VclPtr<ScPivotFilterDlg> pDlg = VclPtr<ScPivotFilterDlg>::Create(pParent, rArgSet, nSourceTab);
- return new AbstractScPivotFilterDlg_Impl(pDlg);
+ return VclPtr<AbstractScPivotFilterDlg_Impl>::Create(pDlg);
}
AbstractScDPFunctionDlg * ScAbstractDialogFactory_Impl::CreateScDPFunctionDlg ( vcl::Window* pParent,
@@ -780,7 +780,7 @@ AbstractScDPFunctionDlg * ScAbstractDialogFactory_Impl::CreateScDPFunctionDlg (
const ScPivotFuncData& rFuncData )
{
VclPtr<ScDPFunctionDlg> pDlg = VclPtr<ScDPFunctionDlg>::Create( pParent, rLabelVec, rLabelData, rFuncData );
- return new AbstractScDPFunctionDlg_Impl( pDlg );
+ return VclPtr<AbstractScDPFunctionDlg_Impl>::Create( pDlg );
}
AbstractScDPSubtotalDlg * ScAbstractDialogFactory_Impl::CreateScDPSubtotalDlg ( vcl::Window* pParent,
@@ -790,39 +790,39 @@ AbstractScDPSubtotalDlg * ScAbstractDialogFactory_Impl::CreateScDPSubtotalDlg (
const ScDPNameVec& rDataFields )
{
VclPtr<ScDPSubtotalDlg> pDlg = VclPtr<ScDPSubtotalDlg>::Create( pParent, rDPObj, rLabelData, rFuncData, rDataFields, true/*bEnableLayout*/ );
- return new AbstractScDPSubtotalDlg_Impl( pDlg );
+ return VclPtr<AbstractScDPSubtotalDlg_Impl>::Create( pDlg );
}
AbstractScDPNumGroupDlg * ScAbstractDialogFactory_Impl::CreateScDPNumGroupDlg(
vcl::Window* pParent, const ScDPNumGroupInfo& rInfo )
{
- return new AbstractScDPNumGroupDlg_Impl( VclPtr<ScDPNumGroupDlg>::Create( pParent, rInfo ) );
+ return VclPtr<AbstractScDPNumGroupDlg_Impl>::Create( VclPtr<ScDPNumGroupDlg>::Create( pParent, rInfo ) );
}
AbstractScDPDateGroupDlg * ScAbstractDialogFactory_Impl::CreateScDPDateGroupDlg(
vcl::Window* pParent,
const ScDPNumGroupInfo& rInfo, sal_Int32 nDatePart, const Date& rNullDate )
{
- return new AbstractScDPDateGroupDlg_Impl( VclPtr<ScDPDateGroupDlg>::Create( pParent, rInfo, nDatePart, rNullDate ) );
+ return VclPtr<AbstractScDPDateGroupDlg_Impl>::Create( VclPtr<ScDPDateGroupDlg>::Create( pParent, rInfo, nDatePart, rNullDate ) );
}
AbstractScDPShowDetailDlg * ScAbstractDialogFactory_Impl::CreateScDPShowDetailDlg (
vcl::Window* pParent, ScDPObject& rDPObj, sal_uInt16 nOrient )
{
- return new AbstractScDPShowDetailDlg_Impl( VclPtr<ScDPShowDetailDlg>::Create( pParent, rDPObj, nOrient ) );
+ return VclPtr<AbstractScDPShowDetailDlg_Impl>::Create( VclPtr<ScDPShowDetailDlg>::Create( pParent, rDPObj, nOrient ) );
}
AbstractScNewScenarioDlg * ScAbstractDialogFactory_Impl::CreateScNewScenarioDlg(vcl::Window* pParent, const OUString& rName,
bool bEdit, bool bSheetProtected)
{
VclPtr<ScNewScenarioDlg> pDlg = VclPtr<ScNewScenarioDlg>::Create(pParent, rName, bEdit, bSheetProtected);
- return new AbstractScNewScenarioDlg_Impl( pDlg );
+ return VclPtr<AbstractScNewScenarioDlg_Impl>::Create( pDlg );
}
AbstractScShowTabDlg * ScAbstractDialogFactory_Impl::CreateScShowTabDlg(vcl::Window* pParent)
{
VclPtr<ScShowTabDlg> pDlg = VclPtr<ScShowTabDlg>::Create( pParent);
- return new AbstractScShowTabDlg_Impl( pDlg );
+ return VclPtr<AbstractScShowTabDlg_Impl>::Create( pDlg );
}
AbstractScStringInputDlg * ScAbstractDialogFactory_Impl::CreateScStringInputDlg ( vcl::Window* pParent,
@@ -832,7 +832,7 @@ AbstractScStringInputDlg * ScAbstractDialogFactory_Impl::CreateScStringInputDlg
const OString& sHelpId, const OString& sEditHelpId )
{
VclPtr<ScStringInputDlg> pDlg = VclPtr<ScStringInputDlg>::Create( pParent, rTitle, rEditTitle, rDefault, sHelpId, sEditHelpId );
- return new AbstractScStringInputDlg_Impl( pDlg );
+ return VclPtr<AbstractScStringInputDlg_Impl>::Create( pDlg );
}
AbstractScTabBgColorDlg * ScAbstractDialogFactory_Impl::CreateScTabBgColorDlg(
@@ -842,7 +842,7 @@ AbstractScTabBgColorDlg * ScAbstractDialogFactory_Impl::CreateScTabBgColorDlg(
const Color& rDefaultColor)
{
VclPtr<ScTabBgColorDlg> pDlg = VclPtr<ScTabBgColorDlg>::Create( pParent, rTitle, rTabBgColorNoColorText, rDefaultColor );
- return new AbstractScTabBgColorDlg_Impl( pDlg );
+ return VclPtr<AbstractScTabBgColorDlg_Impl>::Create( pDlg );
}
AbstractScImportOptionsDlg * ScAbstractDialogFactory_Impl::CreateScImportOptionsDlg (
@@ -854,13 +854,13 @@ AbstractScImportOptionsDlg * ScAbstractDialogFactory_Impl::CreateScImportOptions
bool bImport )
{
VclPtr<ScImportOptionsDlg> pDlg = VclPtr<ScImportOptionsDlg>::Create( nullptr, bAscii, pOptions,pStrTitle, bMultiByte,bOnlyDbtoolsEncodings, bImport );
- return new AbstractScImportOptionsDlg_Impl( pDlg );
+ return VclPtr<AbstractScImportOptionsDlg_Impl>::Create( pDlg );
}
SfxAbstractTabDialog * ScAbstractDialogFactory_Impl::CreateScAttrDlg(vcl::Window* pParent, const SfxItemSet* pCellAttrs)
{
VclPtr<SfxTabDialog> pDlg = VclPtr<ScAttrDlg>::Create(pParent, pCellAttrs);
- return new ScAbstractTabDialog_Impl(pDlg);
+ return VclPtr<ScAbstractTabDialog_Impl>::Create(pDlg);
}
SfxAbstractTabDialog * ScAbstractDialogFactory_Impl::CreateScHFEditDlg( vcl::Window* pParent,
@@ -907,7 +907,7 @@ SfxAbstractTabDialog * ScAbstractDialogFactory_Impl::CreateScHFEditDlg( vcl::Win
break;
}
- return pDlg ? new ScAbstractTabDialog_Impl( pDlg ) : nullptr;
+ return pDlg ? VclPtr<ScAbstractTabDialog_Impl>::Create( pDlg ) : nullptr;
}
SfxAbstractTabDialog * ScAbstractDialogFactory_Impl::CreateScStyleDlg( vcl::Window* pParent,
@@ -927,34 +927,34 @@ SfxAbstractTabDialog * ScAbstractDialogFactory_Impl::CreateScStyleDlg( vcl::Wind
}
if ( pDlg )
- return new ScAbstractTabDialog_Impl( pDlg );
+ return VclPtr<ScAbstractTabDialog_Impl>::Create( pDlg );
return nullptr;
}
SfxAbstractTabDialog * ScAbstractDialogFactory_Impl::CreateScSubTotalDlg(vcl::Window* pParent, const SfxItemSet* pArgSet)
{
VclPtr<SfxTabDialog> pDlg = VclPtr<ScSubTotalDlg>::Create( pParent, pArgSet );
- return new ScAbstractTabDialog_Impl( pDlg );
+ return VclPtr<ScAbstractTabDialog_Impl>::Create( pDlg );
}
SfxAbstractTabDialog * ScAbstractDialogFactory_Impl::CreateScCharDlg(
vcl::Window* pParent, const SfxItemSet* pAttr, const SfxObjectShell* pDocShell)
{
VclPtr<SfxTabDialog> pDlg = VclPtr<ScCharDlg>::Create(pParent, pAttr, pDocShell);
- return new ScAbstractTabDialog_Impl(pDlg);
+ return VclPtr<ScAbstractTabDialog_Impl>::Create(pDlg);
}
SfxAbstractTabDialog * ScAbstractDialogFactory_Impl::CreateScParagraphDlg(
vcl::Window* pParent, const SfxItemSet* pAttr)
{
VclPtr<SfxTabDialog> pDlg = VclPtr<ScParagraphDlg>::Create(pParent, pAttr);
- return new ScAbstractTabDialog_Impl(pDlg);
+ return VclPtr<ScAbstractTabDialog_Impl>::Create(pDlg);
}
SfxAbstractTabDialog * ScAbstractDialogFactory_Impl::CreateScSortDlg(vcl::Window* pParent, const SfxItemSet* pArgSet)
{
VclPtr<SfxTabDialog> pDlg = VclPtr<ScSortDlg>::Create( pParent, pArgSet );
- return new ScAbstractTabDialog_Impl( pDlg );
+ return VclPtr<ScAbstractTabDialog_Impl>::Create( pDlg );
}
//------------------ Factories for TabPages--------------------
diff --git a/sc/source/ui/dbgui/csvcontrol.cxx b/sc/source/ui/dbgui/csvcontrol.cxx
index 666dc0f33dba..f70aec78e579 100644
--- a/sc/source/ui/dbgui/csvcontrol.cxx
+++ b/sc/source/ui/dbgui/csvcontrol.cxx
@@ -57,6 +57,7 @@ ScCsvDiff ScCsvLayoutData::GetDiff( const ScCsvLayoutData& rData ) const
}
ScCsvControl::ScCsvControl( ScCsvControl& rParent ) :
+ VclReferenceBase(),
Control( &rParent, WB_TABSTOP | WB_NODIALOGCONTROL ),
mrData( rParent.GetLayoutData() ),
mxAccessible( nullptr ),
diff --git a/sc/source/ui/docshell/arealink.cxx b/sc/source/ui/docshell/arealink.cxx
index e37a237a4eb8..10127c6e4888 100644
--- a/sc/source/ui/docshell/arealink.cxx
+++ b/sc/source/ui/docshell/arealink.cxx
@@ -49,9 +49,9 @@
struct AreaLink_Impl
{
ScDocShell* m_pDocSh;
- AbstractScLinkedAreaDlg* m_pDialog;
+ VclPtr<AbstractScLinkedAreaDlg> m_pDialog;
- AreaLink_Impl() : m_pDocSh( nullptr ), m_pDialog( nullptr ) {}
+ AreaLink_Impl() : m_pDocSh( nullptr ), m_pDialog() {}
};
@@ -88,7 +88,7 @@ void ScAreaLink::Edit(vcl::Window* pParent, const Link<SvBaseLink&,void>& /* rEn
ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
OSL_ENSURE(pFact, "ScAbstractFactory create fail!");
- AbstractScLinkedAreaDlg* pDlg = pFact->CreateScLinkedAreaDlg(pParent);
+ VclPtr<AbstractScLinkedAreaDlg> pDlg = pFact->CreateScLinkedAreaDlg(pParent);
OSL_ENSURE(pDlg, "Dialog create fail!");
pDlg->InitFromOldLink( aFileName, aFilterName, aOptions, aSourceArea, GetRefreshDelay() );
pImpl->m_pDialog = pDlg;
@@ -498,7 +498,7 @@ IMPL_LINK_NOARG(ScAreaLink, AreaEndEditHdl, Dialog&, void)
sfx2::MakeLnkName( aNewLinkName, nullptr, aFileName, aSourceArea, &aFilterName );
SetName( aNewLinkName );
}
- pImpl->m_pDialog = nullptr; // dialog is deleted with parent
+ pImpl->m_pDialog.clear(); // dialog is deleted with parent
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/inc/cellsh.hxx b/sc/source/ui/inc/cellsh.hxx
index d3fa6a0bc05a..2201e03f0bf5 100644
--- a/sc/source/ui/inc/cellsh.hxx
+++ b/sc/source/ui/inc/cellsh.hxx
@@ -38,13 +38,15 @@ class AbstractScLinkedAreaDlg;
struct CellShell_Impl
{
TransferableClipboardListener* m_pClipEvtLstnr;
- AbstractScLinkedAreaDlg* m_pLinkedDlg;
+ VclPtr<AbstractScLinkedAreaDlg> m_pLinkedDlg;
SfxRequest* m_pRequest;
CellShell_Impl() :
m_pClipEvtLstnr( nullptr ),
- m_pLinkedDlg( nullptr ),
+ m_pLinkedDlg(),
m_pRequest( nullptr ) {}
+
+ ~CellShell_Impl();
};
class ScCellShell: public ScFormatShell
diff --git a/sc/source/ui/inc/csvtablebox.hxx b/sc/source/ui/inc/csvtablebox.hxx
index abd88e133677..472ab2b51f85 100644
--- a/sc/source/ui/inc/csvtablebox.hxx
+++ b/sc/source/ui/inc/csvtablebox.hxx
@@ -66,6 +66,9 @@ public:
virtual ~ScCsvTableBox() override;
virtual void dispose() override;
+ // workaround VS2013 bug in handling virtual bases
+ ScCsvTableBox( const ScCsvTableBox& ) = delete;
+
/** Finishes initialization. Must be called after constructing a new object. */
void Init();
diff --git a/sc/source/ui/inc/redcom.hxx b/sc/source/ui/inc/redcom.hxx
index d0c4a145215a..ec9edc77efc7 100644
--- a/sc/source/ui/inc/redcom.hxx
+++ b/sc/source/ui/inc/redcom.hxx
@@ -32,7 +32,7 @@ private:
ScChangeAction *pChangeAction;
ScDocShell *pDocShell;
OUString aComment;
- AbstractSvxPostItDialog* pDlg;
+ VclPtr<AbstractSvxPostItDialog> pDlg;
DECL_LINK( PrevHdl, AbstractSvxPostItDialog&, void );
DECL_LINK( NextHdl, AbstractSvxPostItDialog&, void );
diff --git a/sc/source/ui/inc/validate.hxx b/sc/source/ui/inc/validate.hxx
index 58df264167c6..350e32a612c8 100644
--- a/sc/source/ui/inc/validate.hxx
+++ b/sc/source/ui/inc/validate.hxx
@@ -30,17 +30,24 @@
#include "anyrefdg.hxx"
-struct ScRefHandlerCaller{
- virtual ~ScRefHandlerCaller(){}
+struct ScRefHandlerCaller : public virtual VclReferenceBase {
+ virtual ~ScRefHandlerCaller() override {}
};
class ScRefHandlerHelper
{
protected:
- ScRefHandlerCaller *m_pHandler;
+ VclPtr<ScRefHandlerCaller> m_pHandler;
+// workaround VS2013 issue with pointers to things that contain virtual base class
+#ifdef SAL_W32
+ #pragma pack(push, 16)
+#endif
void (ScRefHandlerCaller::*m_pSetReferenceHdl)( const ScRange& , ScDocument* );
void (ScRefHandlerCaller::*m_pSetActiveHdl)();
void (ScRefHandlerCaller::*m_pRefInputStartPreHdl)( formula::RefEdit* pEdit, formula::RefButton* pButton );
void (ScRefHandlerCaller::*m_pRefInputDonePostHdl)();
+#if defined( SAL_W32)
+ #pragma pack(pop)
+#endif
public:
typedef void (ScRefHandlerCaller::*PFUNCSETREFHDLTYPE)( const ScRange& , ScDocument* );
diff --git a/sc/source/ui/miscdlgs/redcom.cxx b/sc/source/ui/miscdlgs/redcom.cxx
index 39b8316597c7..1831af9daee7 100644
--- a/sc/source/ui/miscdlgs/redcom.cxx
+++ b/sc/source/ui/miscdlgs/redcom.cxx
@@ -50,7 +50,7 @@ ScRedComDialog::ScRedComDialog( vcl::Window* pParent, const SfxItemSet& rCoreSet
ScRedComDialog::~ScRedComDialog()
{
- delete pDlg;
+ pDlg.disposeAndClear();
}
ScChangeAction *ScRedComDialog::FindPrev(ScChangeAction *pAction)
diff --git a/sc/source/ui/view/cellsh.cxx b/sc/source/ui/view/cellsh.cxx
index b29beaeba461..a04185d37a87 100644
--- a/sc/source/ui/view/cellsh.cxx
+++ b/sc/source/ui/view/cellsh.cxx
@@ -96,7 +96,7 @@ ScCellShell::~ScCellShell()
pImpl->m_pClipEvtLstnr->release();
}
- delete pImpl->m_pLinkedDlg;
+ pImpl->m_pLinkedDlg.disposeAndClear();
delete pImpl->m_pRequest;
}
diff --git a/sc/source/ui/view/cellsh1.cxx b/sc/source/ui/view/cellsh1.cxx
index e5c3fc206f0e..165b5ef3d0cb 100644
--- a/sc/source/ui/view/cellsh1.cxx
+++ b/sc/source/ui/view/cellsh1.cxx
@@ -2530,7 +2530,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
OSL_ENSURE(pFact, "ScAbstractFactory create fail!");
- delete pImpl->m_pLinkedDlg;
+ pImpl->m_pLinkedDlg.disposeAndClear();
pImpl->m_pLinkedDlg =
pFact->CreateScLinkedAreaDlg(pTabViewShell->GetDialogParent());
OSL_ENSURE(pImpl->m_pLinkedDlg, "Dialog create fail!");
@@ -2986,4 +2986,7 @@ IMPL_LINK_NOARG(ScCellShell, DialogClosed, Dialog&, void)
ExecuteExternalSource( sFile, sFilter, sOptions, sSource, nRefresh, *(pImpl->m_pRequest) );
}
+CellShell_Impl::~CellShell_Impl()
+{
+}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/view/cellsh4.cxx b/sc/source/ui/view/cellsh4.cxx
index 0aa9280f7154..612a6749fc28 100644
--- a/sc/source/ui/view/cellsh4.cxx
+++ b/sc/source/ui/view/cellsh4.cxx
@@ -27,6 +27,7 @@
#include "inputwin.hxx"
#include "document.hxx"
#include "sc.hrc"
+#include "scabstdlg.hxx"
#include <vcl/svapp.hxx>
diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx
index e18f5b1d7acf..4dabdef7c626 100644
--- a/sc/source/ui/view/gridwin.cxx
+++ b/sc/source/ui/view/gridwin.cxx
@@ -130,6 +130,7 @@
#include "hints.hxx"
#include "spellcheckcontext.hxx"
#include "uiobject.hxx"
+#include "scabstdlg.hxx"
#include <svx/sdrpagewindow.hxx>
#include <svx/sdr/overlay/overlaymanager.hxx>
diff --git a/sd/inc/sdabstdlg.hxx b/sd/inc/sdabstdlg.hxx
index ec5ba755fa19..51949e8e7f5f 100644
--- a/sd/inc/sdabstdlg.hxx
+++ b/sd/inc/sdabstdlg.hxx
@@ -153,33 +153,33 @@ class SdAbstractDialogFactory
public:
SD_DLLPUBLIC static SdAbstractDialogFactory* Create();
- virtual VclAbstractDialog* CreateBreakDlg(vcl::Window* pWindow, ::sd::DrawView* pDrView, ::sd::DrawDocShell* pShell, sal_uLong nSumActionCount, sal_uLong nObjCount ) = 0;
- virtual AbstractCopyDlg* CreateCopyDlg(vcl::Window* pWindow, const SfxItemSet& rInAttrs, const rtl::Reference<XColorList> &pColTab, ::sd::View* pView ) = 0;
- virtual AbstractSdCustomShowDlg* CreateSdCustomShowDlg(vcl::Window* pWindow, SdDrawDocument& rDrawDoc) = 0;
- virtual SfxAbstractTabDialog* CreateSdTabCharDialog(vcl::Window* pWindow, const SfxItemSet* pAttr, SfxObjectShell* pDocShell) = 0;
- virtual SfxAbstractTabDialog* CreateSdTabPageDialog(vcl::Window* pWindow, const SfxItemSet* pAttr, SfxObjectShell* pDocShell, bool bAreaPage) = 0;
- virtual AbstractSdModifyFieldDlg* CreateSdModifyFieldDlg(vcl::Window* pWindow, const SvxFieldData* pInField, const SfxItemSet& rSet) = 0;
- virtual AbstractSdSnapLineDlg* CreateSdSnapLineDlg(vcl::Window* pParent, const SfxItemSet& rInAttrs, ::sd::View* pView) = 0;
- virtual AbstractSdInsertLayerDlg* CreateSdInsertLayerDlg(vcl::Window* pParent, const SfxItemSet& rInAttrs, bool bDeletable, const OUString& aStr) = 0;
- virtual AbstractSdInsertPagesObjsDlg* CreateSdInsertPagesObjsDlg(vcl::Window* pParent, const SdDrawDocument* pDoc, SfxMedium* pSfxMedium, const OUString& rFileName) = 0;
- virtual AbstractMorphDlg* CreateMorphDlg(vcl::Window* pParent, const SdrObject* pObj1, const SdrObject* pObj2) = 0;
- virtual SfxAbstractTabDialog* CreateSdOutlineBulletTabDlg(vcl::Window* pParent, const SfxItemSet* pAttr, ::sd::View* pView) = 0;
- virtual SfxAbstractTabDialog* CreateSdParagraphTabDlg(vcl::Window* pWindow, const SfxItemSet* pAttr) = 0;
- virtual AbstractSdStartPresDlg* CreateSdStartPresentationDlg( vcl::Window* pWindow, const SfxItemSet& rInAttrs,
+ virtual VclPtr<VclAbstractDialog> CreateBreakDlg(vcl::Window* pWindow, ::sd::DrawView* pDrView, ::sd::DrawDocShell* pShell, sal_uLong nSumActionCount, sal_uLong nObjCount ) = 0;
+ virtual VclPtr<AbstractCopyDlg> CreateCopyDlg(vcl::Window* pWindow, const SfxItemSet& rInAttrs, const rtl::Reference<XColorList> &pColTab, ::sd::View* pView ) = 0;
+ virtual VclPtr<AbstractSdCustomShowDlg> CreateSdCustomShowDlg(vcl::Window* pWindow, SdDrawDocument& rDrawDoc) = 0;
+ virtual VclPtr<SfxAbstractTabDialog> CreateSdTabCharDialog(vcl::Window* pWindow, const SfxItemSet* pAttr, SfxObjectShell* pDocShell) = 0;
+ virtual VclPtr<SfxAbstractTabDialog> CreateSdTabPageDialog(vcl::Window* pWindow, const SfxItemSet* pAttr, SfxObjectShell* pDocShell, bool bAreaPage) = 0;
+ virtual VclPtr<AbstractSdModifyFieldDlg> CreateSdModifyFieldDlg(vcl::Window* pWindow, const SvxFieldData* pInField, const SfxItemSet& rSet) = 0;
+ virtual VclPtr<AbstractSdSnapLineDlg> CreateSdSnapLineDlg(vcl::Window* pParent, const SfxItemSet& rInAttrs, ::sd::View* pView) = 0;
+ virtual VclPtr<AbstractSdInsertLayerDlg> CreateSdInsertLayerDlg(vcl::Window* pParent, const SfxItemSet& rInAttrs, bool bDeletable, const OUString& aStr) = 0;
+ virtual VclPtr<AbstractSdInsertPagesObjsDlg> CreateSdInsertPagesObjsDlg(vcl::Window* pParent, const SdDrawDocument* pDoc, SfxMedium* pSfxMedium, const OUString& rFileName) = 0;
+ virtual VclPtr<AbstractMorphDlg> CreateMorphDlg(vcl::Window* pParent, const SdrObject* pObj1, const SdrObject* pObj2) = 0;
+ virtual VclPtr<SfxAbstractTabDialog> CreateSdOutlineBulletTabDlg(vcl::Window* pParent, const SfxItemSet* pAttr, ::sd::View* pView) = 0;
+ virtual VclPtr<SfxAbstractTabDialog> CreateSdParagraphTabDlg(vcl::Window* pWindow, const SfxItemSet* pAttr) = 0;
+ virtual VclPtr<AbstractSdStartPresDlg> CreateSdStartPresentationDlg( vcl::Window* pWindow, const SfxItemSet& rInAttrs,
const std::vector<OUString> &rPageNames, SdCustomShowList* pCSList ) = 0;
- virtual VclAbstractDialog* CreateRemoteDialog( vcl::Window* pWindow ) = 0;
- virtual SfxAbstractTabDialog* CreateSdPresLayoutTemplateDlg( SfxObjectShell* pDocSh, vcl::Window* pParent, const SdResId& DlgId, SfxStyleSheetBase& rStyleBase, PresentationObjects ePO, SfxStyleSheetBasePool* pSSPool ) = 0;
- virtual AbstractSdPresLayoutDlg* CreateSdPresLayoutDlg( ::sd::DrawDocShell* pDocShell, const SfxItemSet& rInAttrs) = 0;
- virtual SfxAbstractTabDialog* CreateSdTabTemplateDlg(vcl::Window* pParent, const SfxObjectShell* pDocShell, SfxStyleSheetBase& rStyleBase, SdrModel* pModel, SdrView* pView) = 0;
- virtual SfxAbstractDialog* CreatSdActionDialog(vcl::Window* pParent, const SfxItemSet* pAttr, ::sd::View* pView) = 0;
- virtual AbstractSdVectorizeDlg* CreateSdVectorizeDlg( vcl::Window* pParent, const Bitmap& rBmp, ::sd::DrawDocShell* pDocShell ) = 0;
- virtual AbstractSdPublishingDlg* CreateSdPublishingDlg( vcl::Window* pWindow, DocumentType eDocType) = 0;
-
- virtual VclAbstractDialog* CreateMasterLayoutDialog( vcl::Window* pParent,
+ virtual VclPtr<VclAbstractDialog> CreateRemoteDialog( vcl::Window* pWindow ) = 0;
+ virtual VclPtr<SfxAbstractTabDialog> CreateSdPresLayoutTemplateDlg( SfxObjectShell* pDocSh, vcl::Window* pParent, const SdResId& DlgId, SfxStyleSheetBase& rStyleBase, PresentationObjects ePO, SfxStyleSheetBasePool* pSSPool ) = 0;
+ virtual VclPtr<AbstractSdPresLayoutDlg> CreateSdPresLayoutDlg( ::sd::DrawDocShell* pDocShell, const SfxItemSet& rInAttrs) = 0;
+ virtual VclPtr<SfxAbstractTabDialog> CreateSdTabTemplateDlg(vcl::Window* pParent, const SfxObjectShell* pDocShell, SfxStyleSheetBase& rStyleBase, SdrModel* pModel, SdrView* pView) = 0;
+ virtual VclPtr<SfxAbstractDialog> CreatSdActionDialog(vcl::Window* pParent, const SfxItemSet* pAttr, ::sd::View* pView) = 0;
+ virtual VclPtr<AbstractSdVectorizeDlg> CreateSdVectorizeDlg( vcl::Window* pParent, const Bitmap& rBmp, ::sd::DrawDocShell* pDocShell ) = 0;
+ virtual VclPtr<AbstractSdPublishingDlg> CreateSdPublishingDlg( vcl::Window* pWindow, DocumentType eDocType) = 0;
+
+ virtual VclPtr<VclAbstractDialog> CreateMasterLayoutDialog( vcl::Window* pParent,
SdDrawDocument* pDoc,
SdPage* ) = 0;
- virtual AbstractHeaderFooterDialog* CreateHeaderFooterDialog( sd::ViewShell* pViewShell,
+ virtual VclPtr<AbstractHeaderFooterDialog> CreateHeaderFooterDialog( sd::ViewShell* pViewShell,
vcl::Window* pParent,
SdDrawDocument* pDoc,
SdPage* pCurrentPage ) = 0;
@@ -189,7 +189,7 @@ public:
virtual CreateTabPage GetSdOptionsMiscTabPageCreatorFunc() = 0;
virtual CreateTabPage GetSdOptionsSnapTabPageCreatorFunc() = 0;
- virtual VclAbstractDialog* CreateSdPhotoAlbumDialog( vcl::Window* pWindow, SdDrawDocument* pDoc) = 0;
+ virtual VclPtr<VclAbstractDialog> CreateSdPhotoAlbumDialog( vcl::Window* pWindow, SdDrawDocument* pDoc) = 0;
protected:
~SdAbstractDialogFactory() {}
diff --git a/sd/source/ui/dlg/sddlgfact.cxx b/sd/source/ui/dlg/sddlgfact.cxx
index d733f6be3321..d2041f2c7554 100644
--- a/sd/source/ui/dlg/sddlgfact.cxx
+++ b/sd/source/ui/dlg/sddlgfact.cxx
@@ -303,113 +303,113 @@ void AbstractSdPublishingDlg_Impl::GetParameterSequence( css::uno::Sequence< css
//-------------- SdAbstractDialogFactory implementation--------------
-VclAbstractDialog * SdAbstractDialogFactory_Impl::CreateBreakDlg(
+VclPtr<VclAbstractDialog> SdAbstractDialogFactory_Impl::CreateBreakDlg(
vcl::Window* pParent,
::sd::DrawView* pDrView,
::sd::DrawDocShell* pShell,
sal_uLong nSumActionCount,
sal_uLong nObjCount )
{
- return new SdVclAbstractDialog_Impl( VclPtr< ::sd::BreakDlg>::Create( pParent, pDrView, pShell, nSumActionCount, nObjCount ) );
+ return VclPtr<SdVclAbstractDialog_Impl>::Create( VclPtr<::sd::BreakDlg>::Create( pParent, pDrView, pShell, nSumActionCount, nObjCount ) );
}
-AbstractCopyDlg * SdAbstractDialogFactory_Impl::CreateCopyDlg(vcl::Window* pParent,
+VclPtr<AbstractCopyDlg> SdAbstractDialogFactory_Impl::CreateCopyDlg(vcl::Window* pParent,
const SfxItemSet& rInAttrs,
const rtl::Reference<XColorList> &pColTab,
::sd::View* pView )
{
- return new AbstractCopyDlg_Impl( VclPtr< ::sd::CopyDlg>::Create( pParent, rInAttrs, pColTab, pView ) );
+ return VclPtr<AbstractCopyDlg_Impl>::Create( VclPtr<::sd::CopyDlg>::Create( pParent, rInAttrs, pColTab, pView ) );
}
-AbstractSdCustomShowDlg * SdAbstractDialogFactory_Impl::CreateSdCustomShowDlg(vcl::Window* pParent, SdDrawDocument& rDrawDoc )
+VclPtr<AbstractSdCustomShowDlg> SdAbstractDialogFactory_Impl::CreateSdCustomShowDlg(vcl::Window* pParent, SdDrawDocument& rDrawDoc )
{
- return new AbstractSdCustomShowDlg_Impl( VclPtr<SdCustomShowDlg>::Create(pParent, rDrawDoc) );
+ return VclPtr<AbstractSdCustomShowDlg_Impl>::Create( VclPtr<SdCustomShowDlg>::Create(pParent, rDrawDoc) );
}
-SfxAbstractTabDialog * SdAbstractDialogFactory_Impl::CreateSdTabCharDialog(vcl::Window* pParent, const SfxItemSet* pAttr, SfxObjectShell* pDocShell )
+VclPtr<SfxAbstractTabDialog> SdAbstractDialogFactory_Impl::CreateSdTabCharDialog(vcl::Window* pParent, const SfxItemSet* pAttr, SfxObjectShell* pDocShell )
{
- return new SdAbstractTabDialog_Impl( VclPtr<SdCharDlg>::Create(pParent, pAttr, pDocShell) );
+ return VclPtr<SdAbstractTabDialog_Impl>::Create( VclPtr<SdCharDlg>::Create(pParent, pAttr, pDocShell) );
}
-SfxAbstractTabDialog * SdAbstractDialogFactory_Impl::CreateSdTabPageDialog(vcl::Window* pParent, const SfxItemSet* pAttr, SfxObjectShell* pDocShell, bool bAreaPage )
+VclPtr<SfxAbstractTabDialog> SdAbstractDialogFactory_Impl::CreateSdTabPageDialog(vcl::Window* pParent, const SfxItemSet* pAttr, SfxObjectShell* pDocShell, bool bAreaPage )
{
- return new SdAbstractTabDialog_Impl( VclPtr<SdPageDlg>::Create( pDocShell, pParent, pAttr, bAreaPage ) );
+ return VclPtr<SdAbstractTabDialog_Impl>::Create( VclPtr<SdPageDlg>::Create( pDocShell, pParent, pAttr, bAreaPage ) );
}
-AbstractSdModifyFieldDlg * SdAbstractDialogFactory_Impl::CreateSdModifyFieldDlg( vcl::Window* pParent, const SvxFieldData* pInField, const SfxItemSet& rSet )
+VclPtr<AbstractSdModifyFieldDlg> SdAbstractDialogFactory_Impl::CreateSdModifyFieldDlg( vcl::Window* pParent, const SvxFieldData* pInField, const SfxItemSet& rSet )
{
- return new AbstractSdModifyFieldDlg_Impl( VclPtr<SdModifyFieldDlg>::Create( pParent, pInField, rSet ) );
+ return VclPtr<AbstractSdModifyFieldDlg_Impl>::Create( VclPtr<SdModifyFieldDlg>::Create( pParent, pInField, rSet ) );
}
-AbstractSdSnapLineDlg * SdAbstractDialogFactory_Impl::CreateSdSnapLineDlg( vcl::Window* pParent, const SfxItemSet& rInAttrs, ::sd::View* pView)
+VclPtr<AbstractSdSnapLineDlg> SdAbstractDialogFactory_Impl::CreateSdSnapLineDlg( vcl::Window* pParent, const SfxItemSet& rInAttrs, ::sd::View* pView)
{
- return new AbstractSdSnapLineDlg_Impl( VclPtr<SdSnapLineDlg>::Create( pParent, rInAttrs, pView ) );
+ return VclPtr<AbstractSdSnapLineDlg_Impl>::Create( VclPtr<SdSnapLineDlg>::Create( pParent, rInAttrs, pView ) );
}
-AbstractSdInsertLayerDlg * SdAbstractDialogFactory_Impl::CreateSdInsertLayerDlg( vcl::Window* pParent, const SfxItemSet& rInAttrs, bool bDeletable, const OUString& aStr )
+VclPtr<AbstractSdInsertLayerDlg> SdAbstractDialogFactory_Impl::CreateSdInsertLayerDlg( vcl::Window* pParent, const SfxItemSet& rInAttrs, bool bDeletable, const OUString& aStr )
{
- return new AbstractSdInsertLayerDlg_Impl( VclPtr<SdInsertLayerDlg>::Create( pParent, rInAttrs, bDeletable, aStr ) );
+ return VclPtr<AbstractSdInsertLayerDlg_Impl>::Create( VclPtr<SdInsertLayerDlg>::Create( pParent, rInAttrs, bDeletable, aStr ) );
}
-AbstractSdInsertPagesObjsDlg * SdAbstractDialogFactory_Impl::CreateSdInsertPagesObjsDlg( vcl::Window* pParent, const SdDrawDocument* pDoc, SfxMedium* pSfxMedium, const OUString& rFileName )
+VclPtr<AbstractSdInsertPagesObjsDlg> SdAbstractDialogFactory_Impl::CreateSdInsertPagesObjsDlg( vcl::Window* pParent, const SdDrawDocument* pDoc, SfxMedium* pSfxMedium, const OUString& rFileName )
{
- return new AbstractSdInsertPagesObjsDlg_Impl( VclPtr<SdInsertPagesObjsDlg>::Create( pParent, pDoc, pSfxMedium, rFileName ) );
+ return VclPtr<AbstractSdInsertPagesObjsDlg_Impl>::Create( VclPtr<SdInsertPagesObjsDlg>::Create( pParent, pDoc, pSfxMedium, rFileName ) );
}
-AbstractMorphDlg * SdAbstractDialogFactory_Impl::CreateMorphDlg( vcl::Window* pParent, const SdrObject* pObj1, const SdrObject* pObj2)
+VclPtr<AbstractMorphDlg> SdAbstractDialogFactory_Impl::CreateMorphDlg( vcl::Window* pParent, const SdrObject* pObj1, const SdrObject* pObj2)
{
- return new AbstractMorphDlg_Impl( VclPtr< ::sd::MorphDlg>::Create( pParent, pObj1, pObj2 ) );
+ return VclPtr<AbstractMorphDlg_Impl>::Create( VclPtr<::sd::MorphDlg>::Create( pParent, pObj1, pObj2 ) );
}
-SfxAbstractTabDialog * SdAbstractDialogFactory_Impl::CreateSdOutlineBulletTabDlg(vcl::Window* pParent, const SfxItemSet* pAttr, ::sd::View* pView )
+VclPtr<SfxAbstractTabDialog> SdAbstractDialogFactory_Impl::CreateSdOutlineBulletTabDlg(vcl::Window* pParent, const SfxItemSet* pAttr, ::sd::View* pView )
{
- return new AbstractBulletDialog_Impl( VclPtr< ::sd::OutlineBulletDlg>::Create( pParent, pAttr, pView ) );
+ return VclPtr<AbstractBulletDialog_Impl>::Create( VclPtr<::sd::OutlineBulletDlg>::Create( pParent, pAttr, pView ) );
}
-SfxAbstractTabDialog * SdAbstractDialogFactory_Impl::CreateSdParagraphTabDlg(vcl::Window* pParent, const SfxItemSet* pAttr )
+VclPtr<SfxAbstractTabDialog> SdAbstractDialogFactory_Impl::CreateSdParagraphTabDlg(vcl::Window* pParent, const SfxItemSet* pAttr )
{
- return new SdAbstractTabDialog_Impl( VclPtr<SdParagraphDlg>::Create( pParent, pAttr ) );
+ return VclPtr<SdAbstractTabDialog_Impl>::Create( VclPtr<SdParagraphDlg>::Create( pParent, pAttr ) );
}
-AbstractSdStartPresDlg * SdAbstractDialogFactory_Impl::CreateSdStartPresentationDlg( vcl::Window* pParent, const SfxItemSet& rInAttrs,
+VclPtr<AbstractSdStartPresDlg> SdAbstractDialogFactory_Impl::CreateSdStartPresentationDlg( vcl::Window* pParent, const SfxItemSet& rInAttrs,
const std::vector<OUString> &rPageNames, SdCustomShowList* pCSList )
{
- return new AbstractSdStartPresDlg_Impl( VclPtr<SdStartPresentationDlg>::Create( pParent, rInAttrs, rPageNames, pCSList ) );
+ return VclPtr<AbstractSdStartPresDlg_Impl>::Create( VclPtr<SdStartPresentationDlg>::Create( pParent, rInAttrs, rPageNames, pCSList ) );
}
-VclAbstractDialog * SdAbstractDialogFactory_Impl::CreateRemoteDialog( vcl::Window* pParent )
+VclPtr<VclAbstractDialog> SdAbstractDialogFactory_Impl::CreateRemoteDialog( vcl::Window* pParent )
{
- return new SdVclAbstractDialog_Impl( VclPtr< ::sd::RemoteDialog>::Create( pParent ) );
+ return VclPtr<SdVclAbstractDialog_Impl>::Create( VclPtr<::sd::RemoteDialog>::Create( pParent ) );
}
-SfxAbstractTabDialog * SdAbstractDialogFactory_Impl::CreateSdPresLayoutTemplateDlg( SfxObjectShell* pDocSh, vcl::Window* pParent, const SdResId& DlgId, SfxStyleSheetBase& rStyleBase, PresentationObjects ePO, SfxStyleSheetBasePool* pSSPool )
+VclPtr<SfxAbstractTabDialog> SdAbstractDialogFactory_Impl::CreateSdPresLayoutTemplateDlg( SfxObjectShell* pDocSh, vcl::Window* pParent, const SdResId& DlgId, SfxStyleSheetBase& rStyleBase, PresentationObjects ePO, SfxStyleSheetBasePool* pSSPool )
{
- return new SdPresLayoutTemplateDlg_Impl( VclPtr<SdPresLayoutTemplateDlg>::Create( pDocSh, pParent, DlgId, rStyleBase, ePO, pSSPool ) );
+ return VclPtr<SdPresLayoutTemplateDlg_Impl>::Create( VclPtr<SdPresLayoutTemplateDlg>::Create( pDocSh, pParent, DlgId, rStyleBase, ePO, pSSPool ) );
}
-AbstractSdPresLayoutDlg * SdAbstractDialogFactory_Impl::CreateSdPresLayoutDlg( ::sd::DrawDocShell* pDocShell, const SfxItemSet& rInAttrs)
+VclPtr<AbstractSdPresLayoutDlg> SdAbstractDialogFactory_Impl::CreateSdPresLayoutDlg( ::sd::DrawDocShell* pDocShell, const SfxItemSet& rInAttrs)
{
- return new AbstractSdPresLayoutDlg_Impl( VclPtr<SdPresLayoutDlg>::Create( pDocShell, nullptr, rInAttrs ) );
+ return VclPtr<AbstractSdPresLayoutDlg_Impl>::Create( VclPtr<SdPresLayoutDlg>::Create( pDocShell, nullptr, rInAttrs ) );
}
-SfxAbstractTabDialog * SdAbstractDialogFactory_Impl::CreateSdTabTemplateDlg(vcl::Window* pParent, const SfxObjectShell* pDocShell, SfxStyleSheetBase& rStyleBase, SdrModel* pModel, SdrView* pView )
+VclPtr<SfxAbstractTabDialog> SdAbstractDialogFactory_Impl::CreateSdTabTemplateDlg(vcl::Window* pParent, const SfxObjectShell* pDocShell, SfxStyleSheetBase& rStyleBase, SdrModel* pModel, SdrView* pView )
{
- return new SdAbstractTabDialog_Impl( VclPtr<SdTabTemplateDlg>::Create( pParent, pDocShell, rStyleBase, pModel, pView ) );
+ return VclPtr<SdAbstractTabDialog_Impl>::Create( VclPtr<SdTabTemplateDlg>::Create( pParent, pDocShell, rStyleBase, pModel, pView ) );
}
-SfxAbstractDialog* SdAbstractDialogFactory_Impl::CreatSdActionDialog(vcl::Window* pParent, const SfxItemSet* pAttr, ::sd::View* pView )
+VclPtr<SfxAbstractDialog> SdAbstractDialogFactory_Impl::CreatSdActionDialog(vcl::Window* pParent, const SfxItemSet* pAttr, ::sd::View* pView )
{
- return new SdAbstractSfxDialog_Impl( VclPtr<SdActionDlg>::Create( pParent, pAttr, pView ) );
+ return VclPtr<SdAbstractSfxDialog_Impl>::Create( VclPtr<SdActionDlg>::Create( pParent, pAttr, pView ) );
}
-AbstractSdVectorizeDlg * SdAbstractDialogFactory_Impl::CreateSdVectorizeDlg( vcl::Window* pParent, const Bitmap& rBmp, ::sd::DrawDocShell* pDocShell )
+VclPtr<AbstractSdVectorizeDlg> SdAbstractDialogFactory_Impl::CreateSdVectorizeDlg( vcl::Window* pParent, const Bitmap& rBmp, ::sd::DrawDocShell* pDocShell )
{
- return new AbstractSdVectorizeDlg_Impl( VclPtr<SdVectorizeDlg>::Create( pParent, rBmp, pDocShell ) );
+ return VclPtr<AbstractSdVectorizeDlg_Impl>::Create( VclPtr<SdVectorizeDlg>::Create( pParent, rBmp, pDocShell ) );
}
-AbstractSdPublishingDlg * SdAbstractDialogFactory_Impl::CreateSdPublishingDlg( vcl::Window* pParent, DocumentType eDocType)
+VclPtr<AbstractSdPublishingDlg> SdAbstractDialogFactory_Impl::CreateSdPublishingDlg( vcl::Window* pParent, DocumentType eDocType)
{
- return new AbstractSdPublishingDlg_Impl( VclPtr<SdPublishingDlg>::Create( pParent, eDocType ) );
+ return VclPtr<AbstractSdPublishingDlg_Impl>::Create( VclPtr<SdPublishingDlg>::Create( pParent, eDocType ) );
}
// Factories for TabPages
@@ -433,21 +433,21 @@ CreateTabPage SdAbstractDialogFactory_Impl::GetSdOptionsSnapTabPageCreatorFunc()
return SdTpOptionsSnap::Create;
}
-VclAbstractDialog* SdAbstractDialogFactory_Impl::CreateMasterLayoutDialog( vcl::Window* pParent,
+VclPtr<VclAbstractDialog> SdAbstractDialogFactory_Impl::CreateMasterLayoutDialog( vcl::Window* pParent,
SdDrawDocument* pDoc, SdPage* pCurrentPage )
{
- return new SdVclAbstractDialog_Impl( VclPtr< ::sd::MasterLayoutDialog>::Create( pParent, pDoc, pCurrentPage ));
+ return VclPtr<SdVclAbstractDialog_Impl>::Create( VclPtr<::sd::MasterLayoutDialog>::Create( pParent, pDoc, pCurrentPage ));
}
-AbstractHeaderFooterDialog* SdAbstractDialogFactory_Impl::CreateHeaderFooterDialog( sd::ViewShell* pViewShell,
+VclPtr<AbstractHeaderFooterDialog> SdAbstractDialogFactory_Impl::CreateHeaderFooterDialog( sd::ViewShell* pViewShell,
vcl::Window* pParent, SdDrawDocument* pDoc, SdPage* pCurrentPage )
{
- return new AbstractHeaderFooterDialog_Impl( VclPtr< ::sd::HeaderFooterDialog>::Create( pViewShell, pParent, pDoc, pCurrentPage ));
+ return VclPtr<AbstractHeaderFooterDialog_Impl>::Create( VclPtr<::sd::HeaderFooterDialog>::Create( pViewShell, pParent, pDoc, pCurrentPage ));
}
-VclAbstractDialog * SdAbstractDialogFactory_Impl::CreateSdPhotoAlbumDialog( vcl::Window* pParent, SdDrawDocument* pDoc )
+VclPtr<VclAbstractDialog> SdAbstractDialogFactory_Impl::CreateSdPhotoAlbumDialog( vcl::Window* pParent, SdDrawDocument* pDoc )
{
- return new SdVclAbstractDialog_Impl( VclPtr< ::sd::SdPhotoAlbumDialog>::Create( pParent, pDoc ) );
+ return VclPtr<SdVclAbstractDialog_Impl>::Create( VclPtr<::sd::SdPhotoAlbumDialog>::Create( pParent, pDoc ) );
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/source/ui/dlg/sddlgfact.hxx b/sd/source/ui/dlg/sddlgfact.hxx
index 9fc9a469d193..f014c8763e27 100644
--- a/sd/source/ui/dlg/sddlgfact.hxx
+++ b/sd/source/ui/dlg/sddlgfact.hxx
@@ -214,35 +214,35 @@ class SdAbstractDialogFactory_Impl : public SdAbstractDialogFactory
public:
virtual ~SdAbstractDialogFactory_Impl() {}
- virtual VclAbstractDialog* CreateBreakDlg(vcl::Window* pWindow, ::sd::DrawView* pDrView, ::sd::DrawDocShell* pShell, sal_uLong nSumActionCount, sal_uLong nObjCount) override;
- virtual AbstractCopyDlg* CreateCopyDlg(vcl::Window* pParent, const SfxItemSet& rInAttrs, const rtl::Reference<XColorList> &pColTab, ::sd::View* pView) override;
- virtual AbstractSdCustomShowDlg* CreateSdCustomShowDlg(vcl::Window* pParent, SdDrawDocument& rDrawDoc) override;
- virtual SfxAbstractTabDialog* CreateSdTabCharDialog(vcl::Window* pWindow, const SfxItemSet* pAttr, SfxObjectShell* pDocShell) override;
- virtual SfxAbstractTabDialog* CreateSdTabPageDialog(vcl::Window* pWindow, const SfxItemSet* pAttr, SfxObjectShell* pDocShell, bool bAreaPage) override;
- virtual AbstractSdModifyFieldDlg* CreateSdModifyFieldDlg( vcl::Window* pWindow, const SvxFieldData* pInField, const SfxItemSet& rSet ) override;
- virtual AbstractSdSnapLineDlg* CreateSdSnapLineDlg(vcl::Window* pParent, const SfxItemSet& rInAttrs, ::sd::View* pView) override;
- virtual AbstractSdInsertLayerDlg* CreateSdInsertLayerDlg(vcl::Window* pParent, const SfxItemSet& rInAttrs, bool bDeletable, const OUString& aStr) override;
- virtual AbstractSdInsertPagesObjsDlg* CreateSdInsertPagesObjsDlg(vcl::Window* pParent, const SdDrawDocument* pDoc, SfxMedium* pSfxMedium, const OUString& rFileName ) override;
- virtual AbstractMorphDlg* CreateMorphDlg(vcl::Window* pParent, const SdrObject* pObj1, const SdrObject* pObj2) override;
- virtual SfxAbstractTabDialog* CreateSdOutlineBulletTabDlg(vcl::Window* pParent, const SfxItemSet* pAttr, ::sd::View* pView) override;
- virtual SfxAbstractTabDialog* CreateSdParagraphTabDlg(vcl::Window* pParent, const SfxItemSet* pAttr) override;
- virtual AbstractSdStartPresDlg* CreateSdStartPresentationDlg( vcl::Window* pWindow, const SfxItemSet& rInAttrs,
+ virtual VclPtr<VclAbstractDialog> CreateBreakDlg(vcl::Window* pWindow, ::sd::DrawView* pDrView, ::sd::DrawDocShell* pShell, sal_uLong nSumActionCount, sal_uLong nObjCount) override;
+ virtual VclPtr<AbstractCopyDlg> CreateCopyDlg(vcl::Window* pParent, const SfxItemSet& rInAttrs, const rtl::Reference<XColorList> &pColTab, ::sd::View* pView) override;
+ virtual VclPtr<AbstractSdCustomShowDlg> CreateSdCustomShowDlg(vcl::Window* pParent, SdDrawDocument& rDrawDoc) override;
+ virtual VclPtr<SfxAbstractTabDialog> CreateSdTabCharDialog(vcl::Window* pWindow, const SfxItemSet* pAttr, SfxObjectShell* pDocShell) override;
+ virtual VclPtr<SfxAbstractTabDialog> CreateSdTabPageDialog(vcl::Window* pWindow, const SfxItemSet* pAttr, SfxObjectShell* pDocShell, bool bAreaPage) override;
+ virtual VclPtr<AbstractSdModifyFieldDlg> CreateSdModifyFieldDlg( vcl::Window* pWindow, const SvxFieldData* pInField, const SfxItemSet& rSet ) override;
+ virtual VclPtr<AbstractSdSnapLineDlg> CreateSdSnapLineDlg(vcl::Window* pParent, const SfxItemSet& rInAttrs, ::sd::View* pView) override;
+ virtual VclPtr<AbstractSdInsertLayerDlg> CreateSdInsertLayerDlg(vcl::Window* pParent, const SfxItemSet& rInAttrs, bool bDeletable, const OUString& aStr) override;
+ virtual VclPtr<AbstractSdInsertPagesObjsDlg> CreateSdInsertPagesObjsDlg(vcl::Window* pParent, const SdDrawDocument* pDoc, SfxMedium* pSfxMedium, const OUString& rFileName ) override;
+ virtual VclPtr<AbstractMorphDlg> CreateMorphDlg(vcl::Window* pParent, const SdrObject* pObj1, const SdrObject* pObj2) override;
+ virtual VclPtr<SfxAbstractTabDialog> CreateSdOutlineBulletTabDlg(vcl::Window* pParent, const SfxItemSet* pAttr, ::sd::View* pView) override;
+ virtual VclPtr<SfxAbstractTabDialog> CreateSdParagraphTabDlg(vcl::Window* pParent, const SfxItemSet* pAttr) override;
+ virtual VclPtr<AbstractSdStartPresDlg> CreateSdStartPresentationDlg( vcl::Window* pWindow, const SfxItemSet& rInAttrs,
const std::vector<OUString> &rPageNames, SdCustomShowList* pCSList ) override;
- virtual VclAbstractDialog* CreateRemoteDialog( vcl::Window* pWindow ) override; // ad for RemoteDialog
- virtual SfxAbstractTabDialog* CreateSdPresLayoutTemplateDlg( SfxObjectShell* pDocSh, vcl::Window* pParent, const SdResId& DlgId, SfxStyleSheetBase& rStyleBase, PresentationObjects ePO, SfxStyleSheetBasePool* pSSPool ) override;
- virtual AbstractSdPresLayoutDlg* CreateSdPresLayoutDlg( ::sd::DrawDocShell* pDocShell, const SfxItemSet& rInAttrs) override;
- virtual SfxAbstractTabDialog* CreateSdTabTemplateDlg(vcl::Window* pParent, const SfxObjectShell* pDocShell, SfxStyleSheetBase& rStyleBase, SdrModel* pModel, SdrView* pView ) override;
- virtual SfxAbstractDialog* CreatSdActionDialog(vcl::Window* pParent, const SfxItemSet* pAttr, ::sd::View* pView) override;
- virtual AbstractSdVectorizeDlg* CreateSdVectorizeDlg(vcl::Window* pParent, const Bitmap& rBmp, ::sd::DrawDocShell* pDocShell) override;
- virtual AbstractSdPublishingDlg* CreateSdPublishingDlg(vcl::Window* pWindow, DocumentType eDocType) override;
+ virtual VclPtr<VclAbstractDialog> CreateRemoteDialog( vcl::Window* pWindow ) override; // ad for RemoteDialog
+ virtual VclPtr<SfxAbstractTabDialog> CreateSdPresLayoutTemplateDlg( SfxObjectShell* pDocSh, vcl::Window* pParent, const SdResId& DlgId, SfxStyleSheetBase& rStyleBase, PresentationObjects ePO, SfxStyleSheetBasePool* pSSPool ) override;
+ virtual VclPtr<AbstractSdPresLayoutDlg> CreateSdPresLayoutDlg( ::sd::DrawDocShell* pDocShell, const SfxItemSet& rInAttrs) override;
+ virtual VclPtr<SfxAbstractTabDialog> CreateSdTabTemplateDlg(vcl::Window* pParent, const SfxObjectShell* pDocShell, SfxStyleSheetBase& rStyleBase, SdrModel* pModel, SdrView* pView ) override;
+ virtual VclPtr<SfxAbstractDialog> CreatSdActionDialog(vcl::Window* pParent, const SfxItemSet* pAttr, ::sd::View* pView) override;
+ virtual VclPtr<AbstractSdVectorizeDlg> CreateSdVectorizeDlg(vcl::Window* pParent, const Bitmap& rBmp, ::sd::DrawDocShell* pDocShell) override;
+ virtual VclPtr<AbstractSdPublishingDlg> CreateSdPublishingDlg(vcl::Window* pWindow, DocumentType eDocType) override;
- virtual VclAbstractDialog* CreateSdPhotoAlbumDialog(vcl::Window* pWindow, SdDrawDocument* pDoc) override;
+ virtual VclPtr<VclAbstractDialog> CreateSdPhotoAlbumDialog(vcl::Window* pWindow, SdDrawDocument* pDoc) override;
- virtual VclAbstractDialog* CreateMasterLayoutDialog( vcl::Window* pParent,
+ virtual VclPtr<VclAbstractDialog> CreateMasterLayoutDialog( vcl::Window* pParent,
SdDrawDocument* pDoc,
SdPage* ) override;
- virtual AbstractHeaderFooterDialog* CreateHeaderFooterDialog( sd::ViewShell* pViewShell,
+ virtual VclPtr<AbstractHeaderFooterDialog> CreateHeaderFooterDialog( sd::ViewShell* pViewShell,
vcl::Window* pParent,
SdDrawDocument* pDoc,
SdPage* pCurrentPage ) override;
diff --git a/sd/source/ui/docshell/docshel2.cxx b/sd/source/ui/docshell/docshel2.cxx
index cb57cba42c9d..ecb95ba5fe16 100644
--- a/sd/source/ui/docshell/docshel2.cxx
+++ b/sd/source/ui/docshell/docshel2.cxx
@@ -286,7 +286,7 @@ bool DrawDocShell::CheckPageName (vcl::Window* pWin, OUString& rName )
{
OUString aDesc( SD_RESSTR( STR_WARN_PAGE_EXISTS ) );
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
- AbstractSvxNameDialog* aNameDlg = pFact ? pFact->CreateSvxNameDialog( pWin, aStrForDlg, aDesc ) : nullptr;
+ VclPtr<AbstractSvxNameDialog> aNameDlg = pFact ? pFact->CreateSvxNameDialog( pWin, aStrForDlg, aDesc ) : nullptr;
if( aNameDlg )
{
aNameDlg->SetEditHelpId( HID_SD_NAMEDIALOG_PAGE );
@@ -302,7 +302,7 @@ bool DrawDocShell::CheckPageName (vcl::Window* pWin, OUString& rName )
aNameDlg->GetName( rName );
bIsNameValid = IsNewPageNameValid( rName );
}
- delete aNameDlg;
+ aNameDlg.disposeAndClear();
}
}
diff --git a/sfx2/source/appl/appserv.cxx b/sfx2/source/appl/appserv.cxx
index 6717966125b3..b7da7a4af5e8 100644
--- a/sfx2/source/appl/appserv.cxx
+++ b/sfx2/source/appl/appserv.cxx
@@ -1332,10 +1332,10 @@ void SfxApplication::OfaExec_Impl( SfxRequest& rReq )
SfxAbstractDialogFactory* pFact = SfxAbstractDialogFactory::Create();
if ( pFact )
{
- VclAbstractDialog* pDlg =
+ VclPtr<VclAbstractDialog> pDlg =
pFact->CreateFrameDialog( xFrame, rReq.GetSlot(), sPageURL );
short nRet = pDlg->Execute();
- delete pDlg;
+ pDlg.disposeAndClear();
SfxViewFrame* pView = SfxViewFrame::GetFirst();
while ( pView )
{
@@ -1558,11 +1558,11 @@ void SfxApplication::OfaExec_Impl( SfxRequest& rReq )
OUString aLang( aLanguage );
OSL_TRACE("SfxApplication::OfaExec_Impl: about to create dialog for: %s", OUStringToOString( aLang , RTL_TEXTENCODING_ASCII_US ).pData->buffer);
// not sure about the vcl::Window*
- VclAbstractDialog* pDlg = pFact->CreateSvxScriptOrgDialog( GetTopWindow(), aLanguage );
+ VclPtr<VclAbstractDialog> pDlg = pFact->CreateSvxScriptOrgDialog( GetTopWindow(), aLanguage );
if( pDlg )
{
pDlg->Execute();
- delete pDlg;
+ pDlg.disposeAndClear();
}
else
{
diff --git a/sfx2/source/view/printer.cxx b/sfx2/source/view/printer.cxx
index 996ab8a8f0c2..45f98ad99757 100644
--- a/sfx2/source/view/printer.cxx
+++ b/sfx2/source/view/printer.cxx
@@ -136,6 +136,7 @@ SfxPrinter::SfxPrinter( SfxItemSet* pTheOptions,
SfxPrinter::SfxPrinter( const SfxPrinter& rPrinter ) :
+ VclReferenceBase(),
Printer( rPrinter.GetName() ),
pOptions( rPrinter.GetOptions().Clone() ),
pImpl( new SfxPrinter_Impl ),
diff --git a/svx/source/dialog/SpellDialogChildWindow.cxx b/svx/source/dialog/SpellDialogChildWindow.cxx
index dc586803f592..6fb2e1f6cff5 100644
--- a/svx/source/dialog/SpellDialogChildWindow.cxx
+++ b/svx/source/dialog/SpellDialogChildWindow.cxx
@@ -30,20 +30,19 @@ SpellDialogChildWindow::SpellDialogChildWindow (
SfxBindings* pBindings,
SfxChildWinInfo* /*pInfo*/)
: SfxChildWindow (_pParent, nId)
-
{
-
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
DBG_ASSERT(pFact, "SvxAbstractDialogFactory::Create() failed");
- m_xAbstractSpellDialog.reset(pFact->CreateSvxSpellDialog(_pParent,
+ m_xAbstractSpellDialog = pFact->CreateSvxSpellDialog(_pParent,
pBindings,
- this ));
+ this );
SetWindow( m_xAbstractSpellDialog->GetWindow() );
SetHideNotDelete(true);
}
SpellDialogChildWindow::~SpellDialogChildWindow()
{
+ m_xAbstractSpellDialog.disposeAndClear();
}
SfxBindings& SpellDialogChildWindow::GetBindings() const
diff --git a/svx/source/gallery2/galbrws1.cxx b/svx/source/gallery2/galbrws1.cxx
index e4316449a632..c4e4267c47f2 100644
--- a/svx/source/gallery2/galbrws1.cxx
+++ b/svx/source/gallery2/galbrws1.cxx
@@ -334,8 +334,8 @@ IMPL_LINK( GalleryBrowser1, EndThemePropertiesDlgHdl, Dialog&, rDialog, void )
IMPL_LINK( GalleryBrowser1, DestroyThemePropertiesDlgHdl, void*, p, void )
{
- VclAbstractDialog2* pDialog = static_cast<VclAbstractDialog2*>(p);
- delete pDialog;
+ VclPtr<VclAbstractDialog2> pDialog = static_cast<VclAbstractDialog2*>(p);
+ pDialog.disposeAndClear();
delete mpThemePropsDlgItemSet;
mpThemePropsDlgItemSet = nullptr;
}
diff --git a/sw/inc/swabstdlg.hxx b/sw/inc/swabstdlg.hxx
index a42b520adc76..dec00a930cf3 100644
--- a/sw/inc/swabstdlg.hxx
+++ b/sw/inc/swabstdlg.hxx
@@ -322,71 +322,71 @@ class SwAbstractDialogFactory
public:
static SwAbstractDialogFactory* Create();
- virtual SfxAbstractDialog* CreateSfxDialog( vcl::Window* pParent,
+ virtual VclPtr<SfxAbstractDialog> CreateSfxDialog( vcl::Window* pParent,
const SfxItemSet& rAttr,
const css::uno::Reference< css::frame::XFrame >& _rxFrame,
sal_uInt32 nResId
) = 0;
- virtual AbstractSwWordCountFloatDlg* CreateSwWordCountDialog(SfxBindings* pBindings,
+ virtual VclPtr<AbstractSwWordCountFloatDlg> CreateSwWordCountDialog(SfxBindings* pBindings,
SfxChildWindow* pChild, vcl::Window *pParent, SfxChildWinInfo* pInfo) = 0;
- virtual AbstractSwInsertAbstractDlg * CreateSwInsertAbstractDlg() = 0;
- virtual AbstractSwAsciiFilterDlg* CreateSwAsciiFilterDlg ( SwDocShell& rDocSh,
+ virtual VclPtr<AbstractSwInsertAbstractDlg> CreateSwInsertAbstractDlg() = 0;
+ virtual VclPtr<AbstractSwAsciiFilterDlg> CreateSwAsciiFilterDlg ( SwDocShell& rDocSh,
SvStream* pStream ) = 0;
- virtual VclAbstractDialog * CreateSwInsertBookmarkDlg( vcl::Window *pParent, SwWrtShell &rSh, SfxRequest& rReq ) = 0;
+ virtual VclPtr<VclAbstractDialog> CreateSwInsertBookmarkDlg( vcl::Window *pParent, SwWrtShell &rSh, SfxRequest& rReq ) = 0;
- virtual AbstractSwBreakDlg * CreateSwBreakDlg(vcl::Window *pParent, SwWrtShell &rSh) = 0;
- virtual VclAbstractDialog * CreateSwChangeDBDlg(SwView& rVw) = 0;
- virtual SfxAbstractTabDialog * CreateSwCharDlg(vcl::Window* pParent, SwView& pVw, const SfxItemSet& rCoreSet,
+ virtual VclPtr<AbstractSwBreakDlg> CreateSwBreakDlg(vcl::Window *pParent, SwWrtShell &rSh) = 0;
+ virtual VclPtr<VclAbstractDialog> CreateSwChangeDBDlg(SwView& rVw) = 0;
+ virtual VclPtr<SfxAbstractTabDialog> CreateSwCharDlg(vcl::Window* pParent, SwView& pVw, const SfxItemSet& rCoreSet,
SwCharDlgMode nDialogMode, const OUString* pFormatStr = nullptr) = 0;
- virtual AbstractSwConvertTableDlg* CreateSwConvertTableDlg(SwView& rView, bool bToTable) = 0;
- virtual VclAbstractDialog * CreateSwCaptionDialog ( vcl::Window *pParent, SwView &rV) = 0;
+ virtual VclPtr<AbstractSwConvertTableDlg> CreateSwConvertTableDlg(SwView& rView, bool bToTable) = 0;
+ virtual VclPtr<VclAbstractDialog> CreateSwCaptionDialog ( vcl::Window *pParent, SwView &rV) = 0;
- virtual AbstractSwInsertDBColAutoPilot* CreateSwInsertDBColAutoPilot(SwView& rView,
+ virtual VclPtr<AbstractSwInsertDBColAutoPilot> CreateSwInsertDBColAutoPilot(SwView& rView,
css::uno::Reference< css::sdbc::XDataSource> rxSource,
css::uno::Reference<css::sdbcx::XColumnsSupplier> xColSupp,
const SwDBData& rData) = 0;
- virtual SfxAbstractTabDialog * CreateSwFootNoteOptionDlg(vcl::Window *pParent, SwWrtShell &rSh) = 0;
+ virtual VclPtr<SfxAbstractTabDialog> CreateSwFootNoteOptionDlg(vcl::Window *pParent, SwWrtShell &rSh) = 0;
- virtual AbstractDropDownFieldDialog * CreateDropDownFieldDialog(SwWrtShell &rSh,
+ virtual VclPtr<AbstractDropDownFieldDialog> CreateDropDownFieldDialog(SwWrtShell &rSh,
SwField* pField, bool bNextButton) = 0;
- virtual SfxAbstractTabDialog* CreateSwEnvDlg ( vcl::Window* pParent, const SfxItemSet& rSet, SwWrtShell* pWrtSh, Printer* pPrt, bool bInsert ) = 0;
+ virtual VclPtr<SfxAbstractTabDialog> CreateSwEnvDlg ( vcl::Window* pParent, const SfxItemSet& rSet, SwWrtShell* pWrtSh, Printer* pPrt, bool bInsert ) = 0;
- virtual AbstractSwLabDlg* CreateSwLabDlg(const SfxItemSet& rSet,
+ virtual VclPtr<AbstractSwLabDlg> CreateSwLabDlg(const SfxItemSet& rSet,
SwDBManager* pDBManager, bool bLabel) = 0;
virtual SwLabDlgMethod GetSwLabDlgStaticMethod () =0;
- virtual SfxAbstractTabDialog* CreateSwParaDlg ( vcl::Window *pParent,
+ virtual VclPtr<SfxAbstractTabDialog> CreateSwParaDlg ( vcl::Window *pParent,
SwView& rVw,
const SfxItemSet& rCoreSet,
bool bDraw,
const OString& sDefPage = OString() ) = 0;
- virtual AbstractSwSelGlossaryDlg * CreateSwSelGlossaryDlg(const OUString &rShortName) = 0;
+ virtual VclPtr<AbstractSwSelGlossaryDlg> CreateSwSelGlossaryDlg(const OUString &rShortName) = 0;
- virtual VclAbstractDialog * CreateVclAbstractDialog ( vcl::Window * pParent, SwWrtShell &rSh, int nResId ) = 0;
- virtual AbstractSplitTableDialog * CreateSplitTableDialog ( vcl::Window * pParent, SwWrtShell &rSh ) = 0;
+ virtual VclPtr<VclAbstractDialog> CreateVclAbstractDialog ( vcl::Window * pParent, SwWrtShell &rSh, int nResId ) = 0;
+ virtual VclPtr<AbstractSplitTableDialog> CreateSplitTableDialog ( vcl::Window * pParent, SwWrtShell &rSh ) = 0;
- virtual AbstractSwAutoFormatDlg * CreateSwAutoFormatDlg( vcl::Window* pParent, SwWrtShell* pShell,
+ virtual VclPtr<AbstractSwAutoFormatDlg> CreateSwAutoFormatDlg( vcl::Window* pParent, SwWrtShell* pShell,
bool bSetAutoFormat = true,
const SwTableAutoFormat* pSelFormat = nullptr ) = 0;
- virtual SfxAbstractDialog * CreateSwBorderDlg ( vcl::Window* pParent, SfxItemSet& rSet, SwBorderModes nType ) = 0;
- virtual SfxAbstractDialog * CreateSwWrapDlg ( vcl::Window* pParent, SfxItemSet& rSet, SwWrtShell* pSh ) = 0;
+ virtual VclPtr<SfxAbstractDialog> CreateSwBorderDlg ( vcl::Window* pParent, SfxItemSet& rSet, SwBorderModes nType ) = 0;
+ virtual VclPtr<SfxAbstractDialog> CreateSwWrapDlg ( vcl::Window* pParent, SfxItemSet& rSet, SwWrtShell* pSh ) = 0;
- virtual VclAbstractDialog * CreateSwTableWidthDlg(vcl::Window *pParent, SwTableFUNC &rFnc) = 0;
- virtual SfxAbstractTabDialog* CreateSwTableTabDlg(vcl::Window* pParent, SfxItemPool& Pool,
+ virtual VclPtr<VclAbstractDialog> CreateSwTableWidthDlg(vcl::Window *pParent, SwTableFUNC &rFnc) = 0;
+ virtual VclPtr<SfxAbstractTabDialog> CreateSwTableTabDlg(vcl::Window* pParent, SfxItemPool& Pool,
const SfxItemSet* pItemSet, SwWrtShell* pSh) = 0;
- virtual AbstractSwFieldDlg * CreateSwFieldDlg(SfxBindings* pB, SwChildWinWrapper* pCW, vcl::Window *pParent) = 0;
- virtual SfxAbstractDialog* CreateSwFieldEditDlg ( SwView& rVw ) = 0;
- virtual AbstractSwRenameXNamedDlg * CreateSwRenameXNamedDlg(vcl::Window* pParent,
+ virtual VclPtr<AbstractSwFieldDlg> CreateSwFieldDlg(SfxBindings* pB, SwChildWinWrapper* pCW, vcl::Window *pParent) = 0;
+ virtual VclPtr<SfxAbstractDialog> CreateSwFieldEditDlg ( SwView& rVw ) = 0;
+ virtual VclPtr<AbstractSwRenameXNamedDlg> CreateSwRenameXNamedDlg(vcl::Window* pParent,
css::uno::Reference< css::container::XNamed > & xNamed,
css::uno::Reference< css::container::XNameAccess > & xNameAccess) = 0;
- virtual AbstractSwModalRedlineAcceptDlg * CreateSwModalRedlineAcceptDlg(vcl::Window *pParent) = 0;
+ virtual VclPtr<AbstractSwModalRedlineAcceptDlg> CreateSwModalRedlineAcceptDlg(vcl::Window *pParent) = 0;
- virtual VclAbstractDialog* CreateTableMergeDialog( vcl::Window* pParent, bool& rWithPrev ) = 0;
- virtual SfxAbstractTabDialog* CreateFrameTabDialog(const OUString &rDialogType,
+ virtual VclPtr<VclAbstractDialog> CreateTableMergeDialog( vcl::Window* pParent, bool& rWithPrev ) = 0;
+ virtual VclPtr<SfxAbstractTabDialog> CreateFrameTabDialog(const OUString &rDialogType,
SfxViewFrame *pFrame, vcl::Window *pParent,
const SfxItemSet& rCoreSet,
bool bNewFrame = true,
@@ -394,59 +394,59 @@ public:
/// @param nSlot
/// Identifies optional Slot by which the creation of the Template (Style) dialog is triggered.
/// Currently used, if nRegion == SfxStyleFamily::Page in order to activate certain dialog pane
- virtual SfxAbstractApplyTabDialog* CreateTemplateDialog(vcl::Window* pParent,
+ virtual VclPtr<SfxAbstractApplyTabDialog> CreateTemplateDialog(vcl::Window* pParent,
SfxStyleSheetBase& rBase,
SfxStyleFamily nRegion,
const OString& sPage,
SwWrtShell* pActShell,
bool bNew = false) = 0;
- virtual AbstractGlossaryDlg* CreateGlossaryDlg(SfxViewFrame* pViewFrame,
+ virtual VclPtr<AbstractGlossaryDlg> CreateGlossaryDlg(SfxViewFrame* pViewFrame,
SwGlossaryHdl* pGlosHdl,
SwWrtShell *pWrtShell) = 0;
- virtual AbstractFieldInputDlg* CreateFieldInputDlg(vcl::Window *pParent,
+ virtual VclPtr<AbstractFieldInputDlg> CreateFieldInputDlg(vcl::Window *pParent,
SwWrtShell &rSh, SwField* pField, bool bNextButton) = 0;
- virtual AbstractInsFootNoteDlg* CreateInsFootNoteDlg(vcl::Window * pParent,
+ virtual VclPtr<AbstractInsFootNoteDlg> CreateInsFootNoteDlg(vcl::Window * pParent,
SwWrtShell &rSh, bool bEd = false) = 0;
- virtual VclAbstractDialog* CreateTitlePageDlg ( vcl::Window * pParent ) = 0;
- virtual VclAbstractDialog * CreateVclSwViewDialog(SwView& rView) = 0;
- virtual AbstractInsTableDlg* CreateInsTableDlg(SwView& rView) = 0;
- virtual AbstractJavaEditDialog* CreateJavaEditDialog(vcl::Window* pParent,
+ virtual VclPtr<VclAbstractDialog> CreateTitlePageDlg ( vcl::Window * pParent ) = 0;
+ virtual VclPtr<VclAbstractDialog> CreateVclSwViewDialog(SwView& rView) = 0;
+ virtual VclPtr<AbstractInsTableDlg> CreateInsTableDlg(SwView& rView) = 0;
+ virtual VclPtr<AbstractJavaEditDialog> CreateJavaEditDialog(vcl::Window* pParent,
SwWrtShell* pWrtSh) = 0;
- virtual AbstractMailMergeDlg* CreateMailMergeDlg(
+ virtual VclPtr<AbstractMailMergeDlg> CreateMailMergeDlg(
vcl::Window* pParent, SwWrtShell& rSh,
const OUString& rSourceName,
const OUString& rTableName,
sal_Int32 nCommandType,
const css::uno::Reference< css::sdbc::XConnection>& xConnection ) = 0;
- virtual AbstractMailMergeCreateFromDlg* CreateMailMergeCreateFromDlg(vcl::Window* pParent) = 0;
- virtual AbstractMailMergeFieldConnectionsDlg* CreateMailMergeFieldConnectionsDlg(vcl::Window* pParent) = 0;
- virtual VclAbstractDialog* CreateMultiTOXMarkDlg(vcl::Window* pParent, SwTOXMgr &rTOXMgr) = 0;
- virtual SfxAbstractTabDialog* CreateSwTabDialog( int nResId,
+ virtual VclPtr<AbstractMailMergeCreateFromDlg> CreateMailMergeCreateFromDlg(vcl::Window* pParent) = 0;
+ virtual VclPtr<AbstractMailMergeFieldConnectionsDlg> CreateMailMergeFieldConnectionsDlg(vcl::Window* pParent) = 0;
+ virtual VclPtr<VclAbstractDialog> CreateMultiTOXMarkDlg(vcl::Window* pParent, SwTOXMgr &rTOXMgr) = 0;
+ virtual VclPtr<SfxAbstractTabDialog> CreateSwTabDialog( int nResId,
vcl::Window* pParent,
const SfxItemSet* pSwItemSet,
SwWrtShell &) = 0;
- virtual AbstractMultiTOXTabDialog* CreateMultiTOXTabDialog(
+ virtual VclPtr<AbstractMultiTOXTabDialog> CreateMultiTOXTabDialog(
vcl::Window* pParent, const SfxItemSet& rSet,
SwWrtShell &rShell,
SwTOXBase* pCurTOX,
bool bGlobal) = 0;
- virtual AbstractEditRegionDlg* CreateEditRegionDlg(vcl::Window* pParent, SwWrtShell& rWrtSh) = 0;
- virtual AbstractInsertSectionTabDialog* CreateInsertSectionTabDialog(
+ virtual VclPtr<AbstractEditRegionDlg> CreateEditRegionDlg(vcl::Window* pParent, SwWrtShell& rWrtSh) = 0;
+ virtual VclPtr<AbstractInsertSectionTabDialog> CreateInsertSectionTabDialog(
vcl::Window* pParent, const SfxItemSet& rSet, SwWrtShell& rSh) = 0;
- virtual AbstractMarkFloatDlg* CreateIndexMarkFloatDlg(
+ virtual VclPtr<AbstractMarkFloatDlg> CreateIndexMarkFloatDlg(
SfxBindings* pBindings,
SfxChildWindow* pChild,
vcl::Window *pParent,
SfxChildWinInfo* pInfo) = 0;
- virtual AbstractMarkFloatDlg* CreateAuthMarkFloatDlg(
+ virtual VclPtr<AbstractMarkFloatDlg> CreateAuthMarkFloatDlg(
SfxBindings* pBindings,
SfxChildWindow* pChild,
vcl::Window *pParent,
SfxChildWinInfo* pInfo) = 0;
- virtual VclAbstractDialog * CreateIndexMarkModalDlg(
+ virtual VclPtr<VclAbstractDialog> CreateIndexMarkModalDlg(
vcl::Window *pParent, SwWrtShell& rSh, SwTOXMark* pCurTOXMark) = 0;
- virtual AbstractMailMergeWizard* CreateMailMergeWizard(SwView& rView, std::shared_ptr<SwMailMergeConfigItem>& rConfigItem) = 0;
+ virtual VclPtr<AbstractMailMergeWizard> CreateMailMergeWizard(SwView& rView, std::shared_ptr<SwMailMergeConfigItem>& rConfigItem) = 0;
virtual GlossaryGetCurrGroup GetGlossaryCurrGroupFunc() = 0;
virtual GlossarySetActGroup SetGlossaryActGroupFunc() = 0;
diff --git a/sw/source/ui/dialog/swdlgfact.cxx b/sw/source/ui/dialog/swdlgfact.cxx
index 5efee1fc9985..d19b2e7d7d8c 100644
--- a/sw/source/ui/dialog/swdlgfact.cxx
+++ b/sw/source/ui/dialog/swdlgfact.cxx
@@ -590,7 +590,13 @@ void AbstractSwWordCountFloatDlg_Impl::SetCounts(const SwDocStat &rCurrCnt, cons
AbstractMailMergeWizard_Impl::~AbstractMailMergeWizard_Impl()
{
+ disposeOnce();
+}
+
+void AbstractMailMergeWizard_Impl::dispose()
+{
pDlg.disposeAndClear();
+ AbstractMailMergeWizard::dispose();
}
void AbstractMailMergeWizard_Impl::StartExecuteModal( const Link<Dialog&,void>& rEndDialogHdl )
@@ -629,13 +635,13 @@ sal_uInt16 AbstractMailMergeWizard_Impl::GetRestartPage() const
return pDlg->GetRestartPage();
}
-AbstractSwInsertAbstractDlg * SwAbstractDialogFactory_Impl::CreateSwInsertAbstractDlg()
+VclPtr<AbstractSwInsertAbstractDlg> SwAbstractDialogFactory_Impl::CreateSwInsertAbstractDlg()
{
VclPtr<SwInsertAbstractDlg> pDlg = VclPtr<SwInsertAbstractDlg>::Create(nullptr);
- return new AbstractSwInsertAbstractDlg_Impl(pDlg);
+ return VclPtr<AbstractSwInsertAbstractDlg_Impl>::Create(pDlg);
}
-SfxAbstractDialog* SwAbstractDialogFactory_Impl::CreateSfxDialog( vcl::Window* pParent,
+VclPtr<SfxAbstractDialog> SwAbstractDialogFactory_Impl::CreateSfxDialog( vcl::Window* pParent,
const SfxItemSet& rSet,
const css::uno::Reference< css::frame::XFrame >&,
sal_uInt32 nResId
@@ -661,92 +667,92 @@ SfxAbstractDialog* SwAbstractDialogFactory_Impl::CreateSfxDialog( vcl::Window* p
}
if ( pDlg )
- return new SwAbstractSfxDialog_Impl( pDlg );
+ VclPtr<SwAbstractSfxDialog_Impl>::Create( pDlg );
return nullptr;
}
-AbstractSwAsciiFilterDlg* SwAbstractDialogFactory_Impl::CreateSwAsciiFilterDlg( SwDocShell& rDocSh,
+VclPtr<AbstractSwAsciiFilterDlg> SwAbstractDialogFactory_Impl::CreateSwAsciiFilterDlg( SwDocShell& rDocSh,
SvStream* pStream )
{
VclPtr<SwAsciiFilterDlg> pDlg = VclPtr<SwAsciiFilterDlg>::Create( nullptr, rDocSh, pStream );
- return new AbstractSwAsciiFilterDlg_Impl( pDlg );
+ return VclPtr<AbstractSwAsciiFilterDlg_Impl>::Create( pDlg );
}
-VclAbstractDialog* SwAbstractDialogFactory_Impl::CreateSwInsertBookmarkDlg( vcl::Window *pParent,
+VclPtr<VclAbstractDialog> SwAbstractDialogFactory_Impl::CreateSwInsertBookmarkDlg( vcl::Window *pParent,
SwWrtShell &rSh,
SfxRequest& rReq )
{
VclPtr<SwInsertBookmarkDlg> pDlg = VclPtr<SwInsertBookmarkDlg>::Create( pParent, rSh, rReq );
- return new VclAbstractDialog_Impl( pDlg );
+ return VclPtr<VclAbstractDialog_Impl>::Create( pDlg );
}
-AbstractSwBreakDlg * SwAbstractDialogFactory_Impl::CreateSwBreakDlg(vcl::Window *pParent,
+VclPtr<AbstractSwBreakDlg> SwAbstractDialogFactory_Impl::CreateSwBreakDlg(vcl::Window *pParent,
SwWrtShell &rSh)
{
VclPtr<SwBreakDlg> pDlg = VclPtr<SwBreakDlg>::Create(pParent, rSh);
- return new AbstractSwBreakDlg_Impl(pDlg);
+ return VclPtr<AbstractSwBreakDlg_Impl>::Create(pDlg);
}
-VclAbstractDialog * SwAbstractDialogFactory_Impl::CreateSwChangeDBDlg(SwView& rVw)
+VclPtr<VclAbstractDialog> SwAbstractDialogFactory_Impl::CreateSwChangeDBDlg(SwView& rVw)
{
VclPtr<Dialog> pDlg = VclPtr<SwChangeDBDlg>::Create(rVw);
- return new VclAbstractDialog_Impl(pDlg);
+ return VclPtr<VclAbstractDialog_Impl>::Create(pDlg);
}
-SfxAbstractTabDialog * SwAbstractDialogFactory_Impl::CreateSwCharDlg(vcl::Window* pParent, SwView& pVw,
+VclPtr<SfxAbstractTabDialog> SwAbstractDialogFactory_Impl::CreateSwCharDlg(vcl::Window* pParent, SwView& pVw,
const SfxItemSet& rCoreSet, SwCharDlgMode nDialogMode, const OUString* pFormatStr)
{
VclPtr<SfxTabDialog> pDlg = VclPtr<SwCharDlg>::Create(pParent, pVw, rCoreSet, nDialogMode, pFormatStr);
- return new AbstractTabDialog_Impl(pDlg);
+ return VclPtr<AbstractTabDialog_Impl>::Create(pDlg);
}
-AbstractSwConvertTableDlg* SwAbstractDialogFactory_Impl::CreateSwConvertTableDlg(SwView& rView, bool bToTable)
+VclPtr<AbstractSwConvertTableDlg> SwAbstractDialogFactory_Impl::CreateSwConvertTableDlg(SwView& rView, bool bToTable)
{
VclPtr<SwConvertTableDlg> pDlg = VclPtr<SwConvertTableDlg>::Create(rView, bToTable);
- return new AbstractSwConvertTableDlg_Impl(pDlg);
+ return VclPtr<AbstractSwConvertTableDlg_Impl>::Create(pDlg);
}
-VclAbstractDialog * SwAbstractDialogFactory_Impl::CreateSwCaptionDialog ( vcl::Window *pParent, SwView &rV)
+VclPtr<VclAbstractDialog> SwAbstractDialogFactory_Impl::CreateSwCaptionDialog ( vcl::Window *pParent, SwView &rV)
{
VclPtr<Dialog> pDlg = VclPtr<SwCaptionDialog>::Create( pParent, rV );
- return new VclAbstractDialog_Impl( pDlg );
+ return VclPtr<VclAbstractDialog_Impl>::Create( pDlg );
}
-AbstractSwInsertDBColAutoPilot* SwAbstractDialogFactory_Impl::CreateSwInsertDBColAutoPilot( SwView& rView,
+VclPtr<AbstractSwInsertDBColAutoPilot> SwAbstractDialogFactory_Impl::CreateSwInsertDBColAutoPilot( SwView& rView,
uno::Reference< sdbc::XDataSource> rxSource,
uno::Reference<sdbcx::XColumnsSupplier> xColSupp,
const SwDBData& rData)
{
VclPtr<SwInsertDBColAutoPilot> pDlg = VclPtr<SwInsertDBColAutoPilot>::Create( rView, rxSource, xColSupp, rData );
- return new AbstractSwInsertDBColAutoPilot_Impl( pDlg );
+ return VclPtr<AbstractSwInsertDBColAutoPilot_Impl>::Create( pDlg );
}
-SfxAbstractTabDialog * SwAbstractDialogFactory_Impl::CreateSwFootNoteOptionDlg(vcl::Window *pParent, SwWrtShell &rSh)
+VclPtr<SfxAbstractTabDialog> SwAbstractDialogFactory_Impl::CreateSwFootNoteOptionDlg(vcl::Window *pParent, SwWrtShell &rSh)
{
VclPtr<SfxTabDialog> pDlg = VclPtr<SwFootNoteOptionDlg>::Create( pParent, rSh );
- return new AbstractTabDialog_Impl( pDlg );
+ return VclPtr<AbstractTabDialog_Impl>::Create( pDlg );
}
-AbstractDropDownFieldDialog * SwAbstractDialogFactory_Impl::CreateDropDownFieldDialog(
+VclPtr<AbstractDropDownFieldDialog> SwAbstractDialogFactory_Impl::CreateDropDownFieldDialog(
SwWrtShell &rSh, SwField* pField, bool bNextButton)
{
VclPtr<sw::DropDownFieldDialog> pDlg = VclPtr<sw::DropDownFieldDialog>::Create(nullptr, rSh, pField, bNextButton);
- return new AbstractDropDownFieldDialog_Impl( pDlg );
+ return VclPtr<AbstractDropDownFieldDialog_Impl>::Create( pDlg );
}
-SfxAbstractTabDialog* SwAbstractDialogFactory_Impl::CreateSwEnvDlg ( vcl::Window* pParent, const SfxItemSet& rSet,
+VclPtr<SfxAbstractTabDialog> SwAbstractDialogFactory_Impl::CreateSwEnvDlg ( vcl::Window* pParent, const SfxItemSet& rSet,
SwWrtShell* pWrtSh, Printer* pPrt,
bool bInsert )
{
VclPtr<SfxTabDialog> pDlg = VclPtr<SwEnvDlg>::Create( pParent, rSet, pWrtSh,pPrt, bInsert );
- return new AbstractTabDialog_Impl( pDlg );
+ return VclPtr<AbstractTabDialog_Impl>::Create( pDlg );
}
-AbstractSwLabDlg* SwAbstractDialogFactory_Impl::CreateSwLabDlg(const SfxItemSet& rSet,
+VclPtr<AbstractSwLabDlg> SwAbstractDialogFactory_Impl::CreateSwLabDlg(const SfxItemSet& rSet,
SwDBManager* pDBManager, bool bLabel)
{
VclPtr<SwLabDlg> pDlg = VclPtr<SwLabDlg>::Create(nullptr, rSet, pDBManager, bLabel);
- return new AbstractSwLabDlg_Impl(pDlg);
+ return VclPtr<AbstractSwLabDlg_Impl>::Create(pDlg);
}
SwLabDlgMethod SwAbstractDialogFactory_Impl::GetSwLabDlgStaticMethod ()
@@ -754,16 +760,16 @@ SwLabDlgMethod SwAbstractDialogFactory_Impl::GetSwLabDlgStaticMethod ()
return SwLabDlg::UpdateFieldInformation;
}
-SfxAbstractTabDialog* SwAbstractDialogFactory_Impl::CreateSwParaDlg ( vcl::Window *pParent, SwView& rVw,
+VclPtr<SfxAbstractTabDialog> SwAbstractDialogFactory_Impl::CreateSwParaDlg ( vcl::Window *pParent, SwView& rVw,
const SfxItemSet& rCoreSet ,
bool bDraw ,
const OString& sDefPage)
{
VclPtr<SfxTabDialog> pDlg = VclPtr<SwParaDlg>::Create( pParent, rVw, rCoreSet, DLG_STD, nullptr, bDraw, sDefPage );
- return new AbstractTabDialog_Impl( pDlg );
+ return VclPtr<AbstractTabDialog_Impl>::Create( pDlg );
}
-VclAbstractDialog * SwAbstractDialogFactory_Impl::CreateVclAbstractDialog ( vcl::Window *pParent, SwWrtShell &rSh, int nResId )
+VclPtr<VclAbstractDialog> SwAbstractDialogFactory_Impl::CreateVclAbstractDialog ( vcl::Window *pParent, SwWrtShell &rSh, int nResId )
{
VclPtr<Dialog> pDlg;
switch ( nResId )
@@ -785,96 +791,96 @@ VclAbstractDialog * SwAbstractDialogFactory_Impl::CreateVclAbstractDialog ( vcl:
}
if ( pDlg.get() )
- return new VclAbstractDialog_Impl( pDlg );
+ return VclPtr<VclAbstractDialog_Impl>::Create( pDlg );
return nullptr;
}
-AbstractSplitTableDialog * SwAbstractDialogFactory_Impl::CreateSplitTableDialog ( vcl::Window *pParent, SwWrtShell &rSh )
+VclPtr<AbstractSplitTableDialog> SwAbstractDialogFactory_Impl::CreateSplitTableDialog ( vcl::Window *pParent, SwWrtShell &rSh )
{
- return new AbstractSplitTableDialog_Impl( VclPtr<SwSplitTableDlg>::Create( pParent, rSh) );
+ return VclPtr<AbstractSplitTableDialog_Impl>::Create( VclPtr<SwSplitTableDlg>::Create( pParent, rSh) );
}
-AbstractSwSelGlossaryDlg * SwAbstractDialogFactory_Impl::CreateSwSelGlossaryDlg(const OUString &rShortName)
+VclPtr<AbstractSwSelGlossaryDlg> SwAbstractDialogFactory_Impl::CreateSwSelGlossaryDlg(const OUString &rShortName)
{
VclPtr<SwSelGlossaryDlg> pDlg = VclPtr<SwSelGlossaryDlg>::Create(nullptr, rShortName);
- return new AbstractSwSelGlossaryDlg_Impl(pDlg);
+ return VclPtr<AbstractSwSelGlossaryDlg_Impl>::Create(pDlg);
}
-AbstractSwAutoFormatDlg * SwAbstractDialogFactory_Impl::CreateSwAutoFormatDlg(vcl::Window* pParent,
+VclPtr<AbstractSwAutoFormatDlg> SwAbstractDialogFactory_Impl::CreateSwAutoFormatDlg(vcl::Window* pParent,
SwWrtShell* pShell, bool bSetAutoFormat, const SwTableAutoFormat* pSelFormat)
{
VclPtr<SwAutoFormatDlg> pDlg = VclPtr<SwAutoFormatDlg>::Create(pParent, pShell, bSetAutoFormat, pSelFormat);
- return new AbstractSwAutoFormatDlg_Impl(pDlg);
+ return VclPtr<AbstractSwAutoFormatDlg_Impl>::Create(pDlg);
}
-SfxAbstractDialog * SwAbstractDialogFactory_Impl::CreateSwBorderDlg(vcl::Window* pParent, SfxItemSet& rSet, SwBorderModes nType )
+VclPtr<SfxAbstractDialog> SwAbstractDialogFactory_Impl::CreateSwBorderDlg(vcl::Window* pParent, SfxItemSet& rSet, SwBorderModes nType )
{
VclPtr<SfxModalDialog> pDlg = VclPtr<SwBorderDlg>::Create( pParent, rSet, nType );
- return new SwAbstractSfxDialog_Impl( pDlg );
+ return VclPtr<SwAbstractSfxDialog_Impl>::Create( pDlg );
}
-SfxAbstractDialog* SwAbstractDialogFactory_Impl::CreateSwWrapDlg ( vcl::Window* pParent, SfxItemSet& rSet, SwWrtShell* pSh )
+VclPtr<SfxAbstractDialog> SwAbstractDialogFactory_Impl::CreateSwWrapDlg ( vcl::Window* pParent, SfxItemSet& rSet, SwWrtShell* pSh )
{
VclPtr<SfxModalDialog> pDlg = VclPtr<SwWrapDlg>::Create( pParent, rSet, pSh, true/*bDrawMode*/ );
- return new SwAbstractSfxDialog_Impl( pDlg );
+ return VclPtr<SwAbstractSfxDialog_Impl>::Create( pDlg );
}
-VclAbstractDialog * SwAbstractDialogFactory_Impl::CreateSwTableWidthDlg(vcl::Window *pParent, SwTableFUNC &rFnc)
+VclPtr<VclAbstractDialog> SwAbstractDialogFactory_Impl::CreateSwTableWidthDlg(vcl::Window *pParent, SwTableFUNC &rFnc)
{
VclPtr<Dialog> pDlg = VclPtr<SwTableWidthDlg>::Create(pParent, rFnc);
- return new VclAbstractDialog_Impl( pDlg );
+ return VclPtr<VclAbstractDialog_Impl>::Create( pDlg );
}
-SfxAbstractTabDialog* SwAbstractDialogFactory_Impl::CreateSwTableTabDlg(vcl::Window* pParent, SfxItemPool& Pool,
+VclPtr<SfxAbstractTabDialog> SwAbstractDialogFactory_Impl::CreateSwTableTabDlg(vcl::Window* pParent, SfxItemPool& Pool,
const SfxItemSet* pItemSet, SwWrtShell* pSh)
{
VclPtr<SfxTabDialog> pDlg = VclPtr<SwTableTabDlg>::Create(pParent, Pool, pItemSet, pSh);
- return new AbstractTabDialog_Impl(pDlg);
+ return VclPtr<AbstractTabDialog_Impl>::Create(pDlg);
}
-AbstractSwFieldDlg * SwAbstractDialogFactory_Impl::CreateSwFieldDlg(SfxBindings* pB, SwChildWinWrapper* pCW, vcl::Window *pParent)
+VclPtr<AbstractSwFieldDlg> SwAbstractDialogFactory_Impl::CreateSwFieldDlg(SfxBindings* pB, SwChildWinWrapper* pCW, vcl::Window *pParent)
{
VclPtr<SwFieldDlg> pDlg = VclPtr<SwFieldDlg>::Create(pB, pCW, pParent);
- return new AbstractSwFieldDlg_Impl(pDlg);
+ return VclPtr<AbstractSwFieldDlg_Impl>::Create(pDlg);
}
-SfxAbstractDialog* SwAbstractDialogFactory_Impl::CreateSwFieldEditDlg ( SwView& rVw )
+VclPtr<SfxAbstractDialog> SwAbstractDialogFactory_Impl::CreateSwFieldEditDlg ( SwView& rVw )
{
VclPtr<SfxModalDialog> pDlg = VclPtr<SwFieldEditDlg>::Create( rVw );
- return new SwAbstractSfxDialog_Impl( pDlg );
+ return VclPtr<SwAbstractSfxDialog_Impl>::Create( pDlg );
}
-AbstractSwRenameXNamedDlg * SwAbstractDialogFactory_Impl::CreateSwRenameXNamedDlg(vcl::Window* pParent,
+VclPtr<AbstractSwRenameXNamedDlg> SwAbstractDialogFactory_Impl::CreateSwRenameXNamedDlg(vcl::Window* pParent,
css::uno::Reference< css::container::XNamed > & xNamed,
css::uno::Reference< css::container::XNameAccess > & xNameAccess)
{
VclPtr<SwRenameXNamedDlg> pDlg = VclPtr<SwRenameXNamedDlg>::Create( pParent,xNamed, xNameAccess);
- return new AbstractSwRenameXNamedDlg_Impl( pDlg );
+ return VclPtr<AbstractSwRenameXNamedDlg_Impl>::Create( pDlg );
}
-AbstractSwModalRedlineAcceptDlg * SwAbstractDialogFactory_Impl::CreateSwModalRedlineAcceptDlg(vcl::Window *pParent)
+VclPtr<AbstractSwModalRedlineAcceptDlg> SwAbstractDialogFactory_Impl::CreateSwModalRedlineAcceptDlg(vcl::Window *pParent)
{
VclPtr<SwModalRedlineAcceptDlg> pDlg = VclPtr<SwModalRedlineAcceptDlg>::Create( pParent );
- return new AbstractSwModalRedlineAcceptDlg_Impl( pDlg );
+ return VclPtr<AbstractSwModalRedlineAcceptDlg_Impl>::Create( pDlg );
}
-VclAbstractDialog * SwAbstractDialogFactory_Impl::CreateTableMergeDialog(vcl::Window* pParent, bool& rWithPrev)
+VclPtr<VclAbstractDialog> SwAbstractDialogFactory_Impl::CreateTableMergeDialog(vcl::Window* pParent, bool& rWithPrev)
{
VclPtr<Dialog> pDlg = VclPtr<SwMergeTableDlg>::Create( pParent, rWithPrev );
- return new VclAbstractDialog_Impl( pDlg );
+ return VclPtr<VclAbstractDialog_Impl>::Create( pDlg );
}
-SfxAbstractTabDialog* SwAbstractDialogFactory_Impl::CreateFrameTabDialog(const OUString &rDialogType,
+VclPtr<SfxAbstractTabDialog> SwAbstractDialogFactory_Impl::CreateFrameTabDialog(const OUString &rDialogType,
SfxViewFrame *pFrame, vcl::Window *pParent,
const SfxItemSet& rCoreSet,
bool bNewFrame,
const OString& sDefPage )
{
VclPtr<SfxTabDialog> pDlg = VclPtr<SwFrameDlg>::Create(pFrame, pParent, rCoreSet, bNewFrame, rDialogType, false/*bFormat*/, sDefPage, nullptr);
- return new AbstractTabDialog_Impl(pDlg);
+ return VclPtr<AbstractTabDialog_Impl>::Create(pDlg);
}
-SfxAbstractApplyTabDialog* SwAbstractDialogFactory_Impl::CreateTemplateDialog(
+VclPtr<SfxAbstractApplyTabDialog> SwAbstractDialogFactory_Impl::CreateTemplateDialog(
vcl::Window *pParent,
SfxStyleSheetBase& rBase,
SfxStyleFamily nRegion,
@@ -883,57 +889,57 @@ SfxAbstractApplyTabDialog* SwAbstractDialogFactory_Impl::CreateTemplateDialog(
bool bNew )
{
VclPtr<SfxTabDialog> pDlg = VclPtr<SwTemplateDlg>::Create(pParent, rBase, nRegion, sPage, pActShell, bNew);
- return new AbstractApplyTabDialog_Impl(pDlg);
+ return VclPtr<AbstractApplyTabDialog_Impl>::Create(pDlg);
}
-AbstractGlossaryDlg* SwAbstractDialogFactory_Impl::CreateGlossaryDlg(SfxViewFrame* pViewFrame,
+VclPtr<AbstractGlossaryDlg> SwAbstractDialogFactory_Impl::CreateGlossaryDlg(SfxViewFrame* pViewFrame,
SwGlossaryHdl* pGlosHdl,
SwWrtShell *pWrtShell)
{
VclPtr<SwGlossaryDlg> pDlg = VclPtr<SwGlossaryDlg>::Create(pViewFrame, pGlosHdl, pWrtShell);
- return new AbstractGlossaryDlg_Impl( pDlg );
+ return VclPtr<AbstractGlossaryDlg_Impl>::Create( pDlg );
}
-AbstractFieldInputDlg* SwAbstractDialogFactory_Impl::CreateFieldInputDlg(vcl::Window *pParent,
+VclPtr<AbstractFieldInputDlg> SwAbstractDialogFactory_Impl::CreateFieldInputDlg(vcl::Window *pParent,
SwWrtShell &rSh, SwField* pField, bool bNextButton)
{
VclPtr<SwFieldInputDlg> pDlg = VclPtr<SwFieldInputDlg>::Create( pParent, rSh, pField, bNextButton );
- return new AbstractFieldInputDlg_Impl( pDlg );
+ return VclPtr<AbstractFieldInputDlg_Impl>::Create( pDlg );
}
-AbstractInsFootNoteDlg* SwAbstractDialogFactory_Impl::CreateInsFootNoteDlg(
+VclPtr<AbstractInsFootNoteDlg> SwAbstractDialogFactory_Impl::CreateInsFootNoteDlg(
vcl::Window * pParent, SwWrtShell &rSh, bool bEd )
{
VclPtr<SwInsFootNoteDlg> pDlg = VclPtr<SwInsFootNoteDlg>::Create(pParent, rSh, bEd);
- return new AbstractInsFootNoteDlg_Impl( pDlg );
+ return VclPtr<AbstractInsFootNoteDlg_Impl>::Create( pDlg );
}
-VclAbstractDialog * SwAbstractDialogFactory_Impl::CreateTitlePageDlg ( vcl::Window *pParent )
+VclPtr<VclAbstractDialog> SwAbstractDialogFactory_Impl::CreateTitlePageDlg ( vcl::Window *pParent )
{
VclPtr<Dialog> pDlg = VclPtr<SwTitlePageDlg>::Create( pParent );
- return new VclAbstractDialog_Impl( pDlg );
+ return VclPtr<VclAbstractDialog_Impl>::Create( pDlg );
}
-VclAbstractDialog * SwAbstractDialogFactory_Impl::CreateVclSwViewDialog(SwView& rView)
+VclPtr<VclAbstractDialog> SwAbstractDialogFactory_Impl::CreateVclSwViewDialog(SwView& rView)
{
VclPtr<Dialog> pDlg = VclPtr<SwLineNumberingDlg>::Create( &rView );
- return new VclAbstractDialog_Impl( pDlg );
+ return VclPtr<VclAbstractDialog_Impl>::Create( pDlg );
}
-AbstractInsTableDlg * SwAbstractDialogFactory_Impl::CreateInsTableDlg(SwView& rView)
+VclPtr<AbstractInsTableDlg> SwAbstractDialogFactory_Impl::CreateInsTableDlg(SwView& rView)
{
VclPtr<SwInsTableDlg> pDlg = VclPtr<SwInsTableDlg>::Create(rView);
- return new AbstractInsTableDlg_Impl( pDlg );
+ return VclPtr<AbstractInsTableDlg_Impl>::Create( pDlg );
}
-AbstractJavaEditDialog * SwAbstractDialogFactory_Impl::CreateJavaEditDialog(
+VclPtr<AbstractJavaEditDialog> SwAbstractDialogFactory_Impl::CreateJavaEditDialog(
vcl::Window* pParent, SwWrtShell* pWrtSh)
{
VclPtr<SwJavaEditDialog> pDlg = VclPtr<SwJavaEditDialog>::Create(pParent, pWrtSh);
- return new AbstractJavaEditDialog_Impl( pDlg );
+ return VclPtr<AbstractJavaEditDialog_Impl>::Create( pDlg );
}
-AbstractMailMergeDlg * SwAbstractDialogFactory_Impl::CreateMailMergeDlg(
+VclPtr<AbstractMailMergeDlg> SwAbstractDialogFactory_Impl::CreateMailMergeDlg(
vcl::Window* pParent, SwWrtShell& rSh,
const OUString& rSourceName,
const OUString& rTableName,
@@ -941,28 +947,28 @@ AbstractMailMergeDlg * SwAbstractDialogFactory_Impl::CreateMailMergeDlg(
const uno::Reference< sdbc::XConnection>& xConnection )
{
VclPtr<SwMailMergeDlg> pDlg = VclPtr<SwMailMergeDlg>::Create( pParent, rSh, rSourceName, rTableName, nCommandType, xConnection, nullptr );
- return new AbstractMailMergeDlg_Impl( pDlg );
+ return VclPtr<AbstractMailMergeDlg_Impl>::Create( pDlg );
}
-AbstractMailMergeCreateFromDlg * SwAbstractDialogFactory_Impl::CreateMailMergeCreateFromDlg(vcl::Window* pParent)
+VclPtr<AbstractMailMergeCreateFromDlg> SwAbstractDialogFactory_Impl::CreateMailMergeCreateFromDlg(vcl::Window* pParent)
{
VclPtr<SwMailMergeCreateFromDlg> pDlg = VclPtr<SwMailMergeCreateFromDlg>::Create(pParent);
- return new AbstractMailMergeCreateFromDlg_Impl(pDlg);
+ return VclPtr<AbstractMailMergeCreateFromDlg_Impl>::Create(pDlg);
}
-AbstractMailMergeFieldConnectionsDlg * SwAbstractDialogFactory_Impl::CreateMailMergeFieldConnectionsDlg(vcl::Window* pParent)
+VclPtr<AbstractMailMergeFieldConnectionsDlg> SwAbstractDialogFactory_Impl::CreateMailMergeFieldConnectionsDlg(vcl::Window* pParent)
{
VclPtr<SwMailMergeFieldConnectionsDlg> pDlg = VclPtr<SwMailMergeFieldConnectionsDlg>::Create( pParent );
- return new AbstractMailMergeFieldConnectionsDlg_Impl( pDlg );
+ return VclPtr<AbstractMailMergeFieldConnectionsDlg_Impl>::Create( pDlg );
}
-VclAbstractDialog * SwAbstractDialogFactory_Impl::CreateMultiTOXMarkDlg(vcl::Window* pParent, SwTOXMgr &rTOXMgr)
+VclPtr<VclAbstractDialog> SwAbstractDialogFactory_Impl::CreateMultiTOXMarkDlg(vcl::Window* pParent, SwTOXMgr &rTOXMgr)
{
VclPtr<Dialog> pDlg = VclPtr<SwMultiTOXMarkDlg>::Create(pParent, rTOXMgr);
- return new VclAbstractDialog_Impl(pDlg);
+ return VclPtr<VclAbstractDialog_Impl>::Create(pDlg);
}
-SfxAbstractTabDialog* SwAbstractDialogFactory_Impl::CreateSwTabDialog( int nResId,
+VclPtr<SfxAbstractTabDialog> SwAbstractDialogFactory_Impl::CreateSwTabDialog( int nResId,
vcl::Window* pParent,
const SfxItemSet* pSwItemSet,
SwWrtShell & rWrtSh )
@@ -981,74 +987,74 @@ SfxAbstractTabDialog* SwAbstractDialogFactory_Impl::CreateSwTabDialog( int nResI
break;
}
if ( pDlg.get() )
- return new AbstractTabDialog_Impl( pDlg );
+ return VclPtr<AbstractTabDialog_Impl>::Create( pDlg );
return nullptr;
}
-AbstractMultiTOXTabDialog * SwAbstractDialogFactory_Impl::CreateMultiTOXTabDialog(
+VclPtr<AbstractMultiTOXTabDialog> SwAbstractDialogFactory_Impl::CreateMultiTOXTabDialog(
vcl::Window* pParent, const SfxItemSet& rSet,
SwWrtShell &rShell,
SwTOXBase* pCurTOX,
bool bGlobal)
{
VclPtr<SwMultiTOXTabDialog> pDlg = VclPtr<SwMultiTOXTabDialog>::Create( pParent, rSet, rShell, pCurTOX, USHRT_MAX, bGlobal );
- return new AbstractMultiTOXTabDialog_Impl( pDlg );
+ return VclPtr<AbstractMultiTOXTabDialog_Impl>::Create( pDlg );
}
-AbstractEditRegionDlg * SwAbstractDialogFactory_Impl::CreateEditRegionDlg(vcl::Window* pParent, SwWrtShell& rWrtSh)
+VclPtr<AbstractEditRegionDlg> SwAbstractDialogFactory_Impl::CreateEditRegionDlg(vcl::Window* pParent, SwWrtShell& rWrtSh)
{
VclPtr<SwEditRegionDlg> pDlg = VclPtr<SwEditRegionDlg>::Create( pParent, rWrtSh );
- return new AbstractEditRegionDlg_Impl( pDlg );
+ return VclPtr<AbstractEditRegionDlg_Impl>::Create( pDlg );
}
-AbstractInsertSectionTabDialog * SwAbstractDialogFactory_Impl::CreateInsertSectionTabDialog(
+VclPtr<AbstractInsertSectionTabDialog> SwAbstractDialogFactory_Impl::CreateInsertSectionTabDialog(
vcl::Window* pParent, const SfxItemSet& rSet, SwWrtShell& rSh)
{
VclPtr<SwInsertSectionTabDialog> pDlg = VclPtr<SwInsertSectionTabDialog>::Create(pParent, rSet, rSh);
- return new AbstractInsertSectionTabDialog_Impl(pDlg);
+ return VclPtr<AbstractInsertSectionTabDialog_Impl>::Create(pDlg);
}
-AbstractMarkFloatDlg * SwAbstractDialogFactory_Impl::CreateIndexMarkFloatDlg(
+VclPtr<AbstractMarkFloatDlg> SwAbstractDialogFactory_Impl::CreateIndexMarkFloatDlg(
SfxBindings* pBindings,
SfxChildWindow* pChild,
vcl::Window *pParent,
SfxChildWinInfo* pInfo )
{
VclPtr<SwIndexMarkFloatDlg> pDlg = VclPtr<SwIndexMarkFloatDlg>::Create(pBindings, pChild, pParent, pInfo, true/*bNew*/);
- return new AbstractIndexMarkFloatDlg_Impl(pDlg);
+ return VclPtr<AbstractIndexMarkFloatDlg_Impl>::Create(pDlg);
}
-AbstractMarkFloatDlg * SwAbstractDialogFactory_Impl::CreateAuthMarkFloatDlg(
+VclPtr<AbstractMarkFloatDlg> SwAbstractDialogFactory_Impl::CreateAuthMarkFloatDlg(
SfxBindings* pBindings,
SfxChildWindow* pChild,
vcl::Window *pParent,
SfxChildWinInfo* pInfo)
{
VclPtr<SwAuthMarkFloatDlg> pDlg = VclPtr<SwAuthMarkFloatDlg>::Create( pBindings, pChild, pParent, pInfo, true/*bNew*/ );
- return new AbstractAuthMarkFloatDlg_Impl( pDlg );
+ return VclPtr<AbstractAuthMarkFloatDlg_Impl>::Create( pDlg );
}
-AbstractSwWordCountFloatDlg * SwAbstractDialogFactory_Impl::CreateSwWordCountDialog(
+VclPtr<AbstractSwWordCountFloatDlg> SwAbstractDialogFactory_Impl::CreateSwWordCountDialog(
SfxBindings* pBindings,
SfxChildWindow* pChild,
vcl::Window *pParent,
SfxChildWinInfo* pInfo)
{
VclPtr<SwWordCountFloatDlg> pDlg = VclPtr<SwWordCountFloatDlg>::Create( pBindings, pChild, pParent, pInfo );
- return new AbstractSwWordCountFloatDlg_Impl( pDlg );
+ return VclPtr<AbstractSwWordCountFloatDlg_Impl>::Create( pDlg );
}
-VclAbstractDialog * SwAbstractDialogFactory_Impl::CreateIndexMarkModalDlg(
+VclPtr<VclAbstractDialog> SwAbstractDialogFactory_Impl::CreateIndexMarkModalDlg(
vcl::Window *pParent, SwWrtShell& rSh, SwTOXMark* pCurTOXMark )
{
VclPtr<Dialog> pDlg = VclPtr<SwIndexMarkModalDlg>::Create( pParent, rSh, pCurTOXMark );
- return new VclAbstractDialog_Impl( pDlg );
+ return VclPtr<VclAbstractDialog_Impl>::Create( pDlg );
}
-AbstractMailMergeWizard* SwAbstractDialogFactory_Impl::CreateMailMergeWizard(
+VclPtr<AbstractMailMergeWizard> SwAbstractDialogFactory_Impl::CreateMailMergeWizard(
SwView& rView, std::shared_ptr<SwMailMergeConfigItem>& rConfigItem)
{
- return new AbstractMailMergeWizard_Impl( VclPtr<SwMailMergeWizard>::Create(rView, rConfigItem));
+ return VclPtr<AbstractMailMergeWizard_Impl>::Create( VclPtr<SwMailMergeWizard>::Create(rView, rConfigItem));
}
GlossaryGetCurrGroup SwAbstractDialogFactory_Impl::GetGlossaryCurrGroupFunc()
diff --git a/sw/source/ui/dialog/swdlgfact.hxx b/sw/source/ui/dialog/swdlgfact.hxx
index e3cc72cf7e24..63d82b707c4e 100644
--- a/sw/source/ui/dialog/swdlgfact.hxx
+++ b/sw/source/ui/dialog/swdlgfact.hxx
@@ -353,6 +353,7 @@ public:
: pDlg(p)
{}
virtual ~AbstractMailMergeWizard_Impl() override;
+ virtual void dispose() override;
virtual void StartExecuteModal( const Link<Dialog&,void>& rEndDialogHdl ) override;
virtual long GetResult() override;
@@ -368,123 +369,123 @@ class SwAbstractDialogFactory_Impl : public SwAbstractDialogFactory
public:
virtual ~SwAbstractDialogFactory_Impl() {}
- virtual SfxAbstractDialog* CreateSfxDialog( vcl::Window* pParent,
+ virtual VclPtr<SfxAbstractDialog> CreateSfxDialog( vcl::Window* pParent,
const SfxItemSet& rAttr,
const css::uno::Reference< css::frame::XFrame >& _rxFrame,
sal_uInt32 nResId
) override;
- virtual AbstractSwWordCountFloatDlg* CreateSwWordCountDialog(SfxBindings* pBindings,
+ virtual VclPtr<AbstractSwWordCountFloatDlg> CreateSwWordCountDialog(SfxBindings* pBindings,
SfxChildWindow* pChild, vcl::Window *pParent, SfxChildWinInfo* pInfo) override;
- virtual AbstractSwInsertAbstractDlg * CreateSwInsertAbstractDlg() override;
- virtual AbstractSwAsciiFilterDlg* CreateSwAsciiFilterDlg ( SwDocShell& rDocSh,
+ virtual VclPtr<AbstractSwInsertAbstractDlg> CreateSwInsertAbstractDlg() override;
+ virtual VclPtr<AbstractSwAsciiFilterDlg> CreateSwAsciiFilterDlg ( SwDocShell& rDocSh,
SvStream* pStream ) override;
- virtual VclAbstractDialog * CreateSwInsertBookmarkDlg( vcl::Window *pParent, SwWrtShell &rSh, SfxRequest& rReq ) override;
- virtual AbstractSwBreakDlg * CreateSwBreakDlg(vcl::Window *pParent, SwWrtShell &rSh) override;
- virtual VclAbstractDialog * CreateSwChangeDBDlg(SwView& rVw) override;
- virtual SfxAbstractTabDialog * CreateSwCharDlg(vcl::Window* pParent, SwView& pVw, const SfxItemSet& rCoreSet,
+ virtual VclPtr<VclAbstractDialog> CreateSwInsertBookmarkDlg( vcl::Window *pParent, SwWrtShell &rSh, SfxRequest& rReq ) override;
+ virtual VclPtr<AbstractSwBreakDlg> CreateSwBreakDlg(vcl::Window *pParent, SwWrtShell &rSh) override;
+ virtual VclPtr<VclAbstractDialog> CreateSwChangeDBDlg(SwView& rVw) override;
+ virtual VclPtr<SfxAbstractTabDialog> CreateSwCharDlg(vcl::Window* pParent, SwView& pVw, const SfxItemSet& rCoreSet,
SwCharDlgMode nDialogMode, const OUString* pFormatStr = nullptr) override;
- virtual AbstractSwConvertTableDlg* CreateSwConvertTableDlg(SwView& rView, bool bToTable) override;
- virtual VclAbstractDialog * CreateSwCaptionDialog ( vcl::Window *pParent, SwView &rV) override;
+ virtual VclPtr<AbstractSwConvertTableDlg> CreateSwConvertTableDlg(SwView& rView, bool bToTable) override;
+ virtual VclPtr<VclAbstractDialog> CreateSwCaptionDialog ( vcl::Window *pParent, SwView &rV) override;
- virtual AbstractSwInsertDBColAutoPilot* CreateSwInsertDBColAutoPilot(SwView& rView,
+ virtual VclPtr<AbstractSwInsertDBColAutoPilot> CreateSwInsertDBColAutoPilot(SwView& rView,
css::uno::Reference< css::sdbc::XDataSource> rxSource,
css::uno::Reference<css::sdbcx::XColumnsSupplier> xColSupp,
const SwDBData& rData) override;
- virtual SfxAbstractTabDialog * CreateSwFootNoteOptionDlg(vcl::Window *pParent, SwWrtShell &rSh) override;
+ virtual VclPtr<SfxAbstractTabDialog> CreateSwFootNoteOptionDlg(vcl::Window *pParent, SwWrtShell &rSh) override;
- virtual AbstractDropDownFieldDialog * CreateDropDownFieldDialog(SwWrtShell &rSh,
+ virtual VclPtr<AbstractDropDownFieldDialog> CreateDropDownFieldDialog(SwWrtShell &rSh,
SwField* pField, bool bNextButton) override;
- virtual SfxAbstractTabDialog* CreateSwEnvDlg ( vcl::Window* pParent, const SfxItemSet& rSet, SwWrtShell* pWrtSh, Printer* pPrt, bool bInsert ) override;
- virtual AbstractSwLabDlg* CreateSwLabDlg(const SfxItemSet& rSet,
+ virtual VclPtr<SfxAbstractTabDialog> CreateSwEnvDlg ( vcl::Window* pParent, const SfxItemSet& rSet, SwWrtShell* pWrtSh, Printer* pPrt, bool bInsert ) override;
+ virtual VclPtr<AbstractSwLabDlg> CreateSwLabDlg(const SfxItemSet& rSet,
SwDBManager* pDBManager, bool bLabel) override;
virtual SwLabDlgMethod GetSwLabDlgStaticMethod () override;
- virtual SfxAbstractTabDialog* CreateSwParaDlg ( vcl::Window *pParent,
+ virtual VclPtr<SfxAbstractTabDialog> CreateSwParaDlg ( vcl::Window *pParent,
SwView& rVw,
const SfxItemSet& rCoreSet,
bool bDraw,
const OString& sDefPage = OString() ) override;
- virtual AbstractSwSelGlossaryDlg * CreateSwSelGlossaryDlg(const OUString &rShortName) override;
- virtual VclAbstractDialog * CreateVclAbstractDialog ( vcl::Window * pParent, SwWrtShell &rSh, int nResId ) override;
- virtual AbstractSplitTableDialog * CreateSplitTableDialog ( vcl::Window * pParent, SwWrtShell &rSh ) override;
+ virtual VclPtr<AbstractSwSelGlossaryDlg> CreateSwSelGlossaryDlg(const OUString &rShortName) override;
+ virtual VclPtr<VclAbstractDialog> CreateVclAbstractDialog ( vcl::Window * pParent, SwWrtShell &rSh, int nResId ) override;
+ virtual VclPtr<AbstractSplitTableDialog> CreateSplitTableDialog ( vcl::Window * pParent, SwWrtShell &rSh ) override;
- virtual AbstractSwAutoFormatDlg * CreateSwAutoFormatDlg( vcl::Window* pParent, SwWrtShell* pShell,
+ virtual VclPtr<AbstractSwAutoFormatDlg> CreateSwAutoFormatDlg( vcl::Window* pParent, SwWrtShell* pShell,
bool bSetAutoFormat = true,
const SwTableAutoFormat* pSelFormat = nullptr ) override;
- virtual SfxAbstractDialog * CreateSwBorderDlg (vcl::Window* pParent, SfxItemSet& rSet, SwBorderModes nType ) override;
+ virtual VclPtr<SfxAbstractDialog> CreateSwBorderDlg (vcl::Window* pParent, SfxItemSet& rSet, SwBorderModes nType ) override;
- virtual SfxAbstractDialog * CreateSwWrapDlg ( vcl::Window* pParent, SfxItemSet& rSet, SwWrtShell* pSh ) override;
- virtual VclAbstractDialog * CreateSwTableWidthDlg(vcl::Window *pParent, SwTableFUNC &rFnc) override;
- virtual SfxAbstractTabDialog* CreateSwTableTabDlg(vcl::Window* pParent, SfxItemPool& Pool,
+ virtual VclPtr<SfxAbstractDialog> CreateSwWrapDlg ( vcl::Window* pParent, SfxItemSet& rSet, SwWrtShell* pSh ) override;
+ virtual VclPtr<VclAbstractDialog> CreateSwTableWidthDlg(vcl::Window *pParent, SwTableFUNC &rFnc) override;
+ virtual VclPtr<SfxAbstractTabDialog> CreateSwTableTabDlg(vcl::Window* pParent, SfxItemPool& Pool,
const SfxItemSet* pItemSet, SwWrtShell* pSh) override;
- virtual AbstractSwFieldDlg * CreateSwFieldDlg(SfxBindings* pB, SwChildWinWrapper* pCW, vcl::Window *pParent) override;
- virtual SfxAbstractDialog* CreateSwFieldEditDlg ( SwView& rVw ) override;
- virtual AbstractSwRenameXNamedDlg * CreateSwRenameXNamedDlg(vcl::Window* pParent,
+ virtual VclPtr<AbstractSwFieldDlg> CreateSwFieldDlg(SfxBindings* pB, SwChildWinWrapper* pCW, vcl::Window *pParent) override;
+ virtual VclPtr<SfxAbstractDialog> CreateSwFieldEditDlg ( SwView& rVw ) override;
+ virtual VclPtr<AbstractSwRenameXNamedDlg> CreateSwRenameXNamedDlg(vcl::Window* pParent,
css::uno::Reference< css::container::XNamed > & xNamed,
css::uno::Reference< css::container::XNameAccess > & xNameAccess) override;
- virtual AbstractSwModalRedlineAcceptDlg * CreateSwModalRedlineAcceptDlg(vcl::Window *pParent) override;
+ virtual VclPtr<AbstractSwModalRedlineAcceptDlg> CreateSwModalRedlineAcceptDlg(vcl::Window *pParent) override;
- virtual VclAbstractDialog* CreateTableMergeDialog(vcl::Window* pParent, bool& rWithPrev) override;
- virtual SfxAbstractTabDialog* CreateFrameTabDialog( const OUString &rDialogType,
+ virtual VclPtr<VclAbstractDialog> CreateTableMergeDialog(vcl::Window* pParent, bool& rWithPrev) override;
+ virtual VclPtr<SfxAbstractTabDialog> CreateFrameTabDialog( const OUString &rDialogType,
SfxViewFrame *pFrame, vcl::Window *pParent,
const SfxItemSet& rCoreSet,
bool bNewFrame = true,
const OString& sDefPage = OString()) override;
- virtual SfxAbstractApplyTabDialog* CreateTemplateDialog(
+ virtual VclPtr<SfxAbstractApplyTabDialog> CreateTemplateDialog(
vcl::Window *pParent,
SfxStyleSheetBase& rBase,
SfxStyleFamily nRegion,
const OString& sPage,
SwWrtShell* pActShell,
bool bNew = false) override;
- virtual AbstractGlossaryDlg* CreateGlossaryDlg(SfxViewFrame* pViewFrame,
+ virtual VclPtr<AbstractGlossaryDlg> CreateGlossaryDlg(SfxViewFrame* pViewFrame,
SwGlossaryHdl* pGlosHdl,
SwWrtShell *pWrtShell) override;
- virtual AbstractFieldInputDlg* CreateFieldInputDlg(vcl::Window *pParent,
+ virtual VclPtr<AbstractFieldInputDlg> CreateFieldInputDlg(vcl::Window *pParent,
SwWrtShell &rSh, SwField* pField, bool bNextButton) override;
- virtual AbstractInsFootNoteDlg* CreateInsFootNoteDlg(
+ virtual VclPtr<AbstractInsFootNoteDlg> CreateInsFootNoteDlg(
vcl::Window * pParent, SwWrtShell &rSh, bool bEd = false) override;
- virtual VclAbstractDialog * CreateTitlePageDlg ( vcl::Window * pParent ) override;
- virtual VclAbstractDialog * CreateVclSwViewDialog(SwView& rView) override;
- virtual AbstractInsTableDlg* CreateInsTableDlg(SwView& rView) override;
- virtual AbstractJavaEditDialog* CreateJavaEditDialog(vcl::Window* pParent,
+ virtual VclPtr<VclAbstractDialog> CreateTitlePageDlg ( vcl::Window * pParent ) override;
+ virtual VclPtr<VclAbstractDialog> CreateVclSwViewDialog(SwView& rView) override;
+ virtual VclPtr<AbstractInsTableDlg> CreateInsTableDlg(SwView& rView) override;
+ virtual VclPtr<AbstractJavaEditDialog> CreateJavaEditDialog(vcl::Window* pParent,
SwWrtShell* pWrtSh) override;
- virtual AbstractMailMergeDlg* CreateMailMergeDlg(
+ virtual VclPtr<AbstractMailMergeDlg> CreateMailMergeDlg(
vcl::Window* pParent, SwWrtShell& rSh,
const OUString& rSourceName,
const OUString& rTableName,
sal_Int32 nCommandType,
const css::uno::Reference< css::sdbc::XConnection>& xConnection ) override;
- virtual AbstractMailMergeCreateFromDlg* CreateMailMergeCreateFromDlg(vcl::Window* pParent) override;
- virtual AbstractMailMergeFieldConnectionsDlg* CreateMailMergeFieldConnectionsDlg(vcl::Window* pParent) override;
- virtual VclAbstractDialog* CreateMultiTOXMarkDlg(vcl::Window* pParent, SwTOXMgr &rTOXMgr) override;
- virtual SfxAbstractTabDialog* CreateSwTabDialog( int nResId,
+ virtual VclPtr<AbstractMailMergeCreateFromDlg> CreateMailMergeCreateFromDlg(vcl::Window* pParent) override;
+ virtual VclPtr<AbstractMailMergeFieldConnectionsDlg> CreateMailMergeFieldConnectionsDlg(vcl::Window* pParent) override;
+ virtual VclPtr<VclAbstractDialog> CreateMultiTOXMarkDlg(vcl::Window* pParent, SwTOXMgr &rTOXMgr) override;
+ virtual VclPtr<SfxAbstractTabDialog> CreateSwTabDialog( int nResId,
vcl::Window* pParent,
const SfxItemSet* pSwItemSet,
SwWrtShell &) override;
- virtual AbstractMultiTOXTabDialog* CreateMultiTOXTabDialog(
+ virtual VclPtr<AbstractMultiTOXTabDialog> CreateMultiTOXTabDialog(
vcl::Window* pParent, const SfxItemSet& rSet,
SwWrtShell &rShell,
SwTOXBase* pCurTOX,
bool bGlobal) override;
- virtual AbstractEditRegionDlg* CreateEditRegionDlg(vcl::Window* pParent, SwWrtShell& rWrtSh) override;
- virtual AbstractInsertSectionTabDialog* CreateInsertSectionTabDialog(
+ virtual VclPtr<AbstractEditRegionDlg> CreateEditRegionDlg(vcl::Window* pParent, SwWrtShell& rWrtSh) override;
+ virtual VclPtr<AbstractInsertSectionTabDialog> CreateInsertSectionTabDialog(
vcl::Window* pParent, const SfxItemSet& rSet, SwWrtShell& rSh) override;
- virtual AbstractMarkFloatDlg* CreateIndexMarkFloatDlg(
+ virtual VclPtr<AbstractMarkFloatDlg> CreateIndexMarkFloatDlg(
SfxBindings* pBindings,
SfxChildWindow* pChild,
vcl::Window *pParent,
SfxChildWinInfo* pInfo) override;
- virtual AbstractMarkFloatDlg* CreateAuthMarkFloatDlg(
+ virtual VclPtr<AbstractMarkFloatDlg> CreateAuthMarkFloatDlg(
SfxBindings* pBindings,
SfxChildWindow* pChild,
vcl::Window *pParent,
SfxChildWinInfo* pInfo) override;
- virtual VclAbstractDialog * CreateIndexMarkModalDlg(
+ virtual VclPtr<VclAbstractDialog> CreateIndexMarkModalDlg(
vcl::Window *pParent, SwWrtShell& rSh, SwTOXMark* pCurTOXMark ) override;
- virtual AbstractMailMergeWizard* CreateMailMergeWizard(SwView& rView, std::shared_ptr<SwMailMergeConfigItem>& rConfigItem) override;
+ virtual VclPtr<AbstractMailMergeWizard> CreateMailMergeWizard(SwView& rView, std::shared_ptr<SwMailMergeConfigItem>& rConfigItem) override;
virtual GlossaryGetCurrGroup GetGlossaryCurrGroupFunc() override;
virtual GlossarySetActGroup SetGlossaryActGroupFunc() override;
diff --git a/sw/source/uibase/app/apphdl.cxx b/sw/source/uibase/app/apphdl.cxx
index 8d575cc80672..00a9f81b9718 100644
--- a/sw/source/uibase/app/apphdl.cxx
+++ b/sw/source/uibase/app/apphdl.cxx
@@ -382,7 +382,7 @@ class SwMailMergeWizardExecutor : public salhelper::SimpleReferenceObject
{
SwView* m_pView; // never owner
SwView* m_pView2Close; // never owner
- AbstractMailMergeWizard* m_pWizard; // always owner
+ VclPtr<AbstractMailMergeWizard> m_pWizard; // always owner
bool m_bDestroyMMToolbarOnCancel;
DECL_LINK( EndDialogHdl, Dialog&, void );
@@ -611,15 +611,15 @@ IMPL_LINK_NOARG( SwMailMergeWizardExecutor, EndDialogHdl, Dialog&, void )
IMPL_LINK_NOARG(SwMailMergeWizardExecutor, DestroyDialogHdl, void*, void)
{
- delete m_pWizard;
- m_pWizard = nullptr;
+ m_pWizard.disposeAndClear();
release();
}
IMPL_STATIC_LINK(SwMailMergeWizardExecutor, DestroyWizardHdl, void*, pDialog, void )
{
- delete static_cast<AbstractMailMergeWizard*>(pDialog);
+ VclPtr<AbstractMailMergeWizard> p = static_cast<AbstractMailMergeWizard*>(pDialog);
+ p.disposeAndClear();
}
IMPL_LINK_NOARG(SwMailMergeWizardExecutor, CancelHdl, void*, void)
@@ -653,8 +653,7 @@ IMPL_LINK_NOARG(SwMailMergeWizardExecutor, CancelHdl, void*, void)
xMMConfig->Commit();
}
- delete m_pWizard;
- m_pWizard = nullptr;
+ m_pWizard.disposeAndClear();
release();
}
diff --git a/sw/source/uibase/app/docsh2.cxx b/sw/source/uibase/app/docsh2.cxx
index 8b5a6d95f704..28553126d76d 100644
--- a/sw/source/uibase/app/docsh2.cxx
+++ b/sw/source/uibase/app/docsh2.cxx
@@ -372,9 +372,10 @@ void SwDocShell::Execute(SfxRequest& rReq)
aSet.Put( *static_cast<const SfxBoolItem*>(pOpenSmartTagOptionsItem) );
SfxAbstractDialogFactory* pFact = SfxAbstractDialogFactory::Create();
- SfxAbstractTabDialog* pDlg = pFact->CreateAutoCorrTabDialog( &aSet );
+ VclPtr<SfxAbstractTabDialog> pDlg = pFact->CreateAutoCorrTabDialog( &aSet );
pDlg->Execute();
- delete pDlg;
+ pDlg.disposeAndClear();
+
rACW.SetLockWordLstLocked( bOldLocked );
diff --git a/sw/source/uibase/app/docst.cxx b/sw/source/uibase/app/docst.cxx
index bd551ffdc74b..cd5745715e36 100644
--- a/sw/source/uibase/app/docst.cxx
+++ b/sw/source/uibase/app/docst.cxx
@@ -554,7 +554,7 @@ private:
sal_uInt16 m_nRet;
rtl::Reference< SwDocStyleSheet > m_xTmp;
SfxStyleFamily m_nFamily;
- SfxAbstractApplyTabDialog *m_pDlg;
+ VclPtr<SfxAbstractApplyTabDialog> m_pDlg;
rtl::Reference< SfxStyleSheetBasePool > m_xBasePool;
bool m_bModified;
};
diff --git a/sw/source/uibase/dbui/dbmgr.cxx b/sw/source/uibase/dbui/dbmgr.cxx
index 55e0bcf233c0..4315cdda37d7 100644
--- a/sw/source/uibase/dbui/dbmgr.cxx
+++ b/sw/source/uibase/dbui/dbmgr.cxx
@@ -307,14 +307,14 @@ void SwDataSourceRemovedListener::Dispose()
struct SwDBManager_Impl
{
- SwDSParam* pMergeData;
- AbstractMailMergeDlg* pMergeDialog;
+ SwDSParam* pMergeData;
+ VclPtr<AbstractMailMergeDlg> pMergeDialog;
::rtl::Reference<SwConnectionDisposedListener_Impl> m_xDisposeListener;
rtl::Reference<SwDataSourceRemovedListener> m_xDataSourceRemovedListener;
explicit SwDBManager_Impl(SwDBManager& rDBManager)
:pMergeData(nullptr)
- ,pMergeDialog(nullptr)
+ ,pMergeDialog()
, m_xDisposeListener(new SwConnectionDisposedListener_Impl(rDBManager))
{}
@@ -2910,7 +2910,7 @@ void SwDBManager::ExecuteFormLetter( SwWrtShell& rSh,
//this has been done by the SwConnectionDisposedListener_Impl already
}
}
- DELETEZ(pImpl->pMergeDialog);
+ pImpl->pMergeDialog.disposeAndClear();
}
void SwDBManager::InsertText(SwWrtShell& rSh,
diff --git a/sw/source/uibase/dialog/wordcountwrapper.cxx b/sw/source/uibase/dialog/wordcountwrapper.cxx
index 2b5e963484f7..031d034e26bb 100644
--- a/sw/source/uibase/dialog/wordcountwrapper.cxx
+++ b/sw/source/uibase/dialog/wordcountwrapper.cxx
@@ -28,6 +28,11 @@ SwWordCountWrapper::SwWordCountWrapper( vcl::Window *pParentWindow,
SetWindow(xAbstDlg->GetWindow());
}
+SwWordCountWrapper::~SwWordCountWrapper()
+{
+ xAbstDlg.disposeAndClear();
+}
+
SfxChildWinInfo SwWordCountWrapper::GetInfo() const
{
SfxChildWinInfo aInfo = SfxChildWindow::GetInfo();
diff --git a/sw/source/uibase/inc/fldwrap.hxx b/sw/source/uibase/inc/fldwrap.hxx
index d7abe750b8e6..0ebd58b45a45 100644
--- a/sw/source/uibase/inc/fldwrap.hxx
+++ b/sw/source/uibase/inc/fldwrap.hxx
@@ -25,7 +25,7 @@ class AbstractSwFieldDlg;
class SwFieldDlgWrapper : public SwChildWinWrapper
{
public:
- AbstractSwFieldDlg * pDlgInterface;
+ VclPtr<AbstractSwFieldDlg> pDlgInterface;
SwFieldDlgWrapper( vcl::Window* pParent, sal_uInt16 nId,
SfxBindings* pBindings, SfxChildWinInfo* pInfo );
@@ -39,7 +39,7 @@ public:
class SwFieldDataOnlyDlgWrapper : public SwChildWinWrapper
{
public:
- AbstractSwFieldDlg * pDlgInterface;
+ VclPtr<AbstractSwFieldDlg> pDlgInterface;
SwFieldDataOnlyDlgWrapper( vcl::Window* pParent, sal_uInt16 nId,
SfxBindings* pBindings, SfxChildWinInfo* pInfo );
diff --git a/sw/source/uibase/inc/idxmrk.hxx b/sw/source/uibase/inc/idxmrk.hxx
index 99e5cbf8a32b..c29252121c09 100644
--- a/sw/source/uibase/inc/idxmrk.hxx
+++ b/sw/source/uibase/inc/idxmrk.hxx
@@ -27,7 +27,7 @@ class SwWrtShell;
class SwInsertIdxMarkWrapper : public SfxChildWindow
{
- AbstractMarkFloatDlg* pAbstDlg;
+ VclPtr<AbstractMarkFloatDlg> pAbstDlg;
protected:
SwInsertIdxMarkWrapper( vcl::Window *pParentWindow,
sal_uInt16 nId,
@@ -42,7 +42,7 @@ public:
class SwInsertAuthMarkWrapper : public SfxChildWindow
{
- AbstractMarkFloatDlg* pAbstDlg;
+ VclPtr<AbstractMarkFloatDlg> pAbstDlg;
protected:
SwInsertAuthMarkWrapper( vcl::Window *pParentWindow,
sal_uInt16 nId,
diff --git a/sw/source/uibase/inc/wordcountdialog.hxx b/sw/source/uibase/inc/wordcountdialog.hxx
index 6a2bdd66333a..b8ebc2344db4 100644
--- a/sw/source/uibase/inc/wordcountdialog.hxx
+++ b/sw/source/uibase/inc/wordcountdialog.hxx
@@ -63,16 +63,16 @@ public:
class SwWordCountWrapper : public SfxChildWindow
{
- std::unique_ptr<AbstractSwWordCountFloatDlg> xAbstDlg;
+ VclPtr<AbstractSwWordCountFloatDlg> xAbstDlg;
protected:
SwWordCountWrapper( vcl::Window *pParentWindow,
sal_uInt16 nId,
SfxBindings* pBindings,
SfxChildWinInfo* pInfo );
-
SFX_DECL_CHILDWINDOW_WITHID(SwWordCountWrapper);
public:
+ virtual ~SwWordCountWrapper() override;
void UpdateCounts();
void SetCounts(const SwDocStat &rCurrCnt, const SwDocStat &rDocStat);
};
diff --git a/sw/source/uibase/wrtsh/wrtsh2.cxx b/sw/source/uibase/wrtsh/wrtsh2.cxx
index cb9b7d3862ef..c9690a44af7e 100644
--- a/sw/source/uibase/wrtsh/wrtsh2.cxx
+++ b/sw/source/uibase/wrtsh/wrtsh2.cxx
@@ -222,7 +222,7 @@ class FieldDeletionModify : public SwModify
}
}
private:
- AbstractFieldInputDlg* mpInputFieldDlg;
+ VclPtr<AbstractFieldInputDlg> mpInputFieldDlg;
SwFormatField* mpFormatField;
};
diff --git a/vcl/source/window/msgbox.cxx b/vcl/source/window/msgbox.cxx
index d7b3bf035430..2b0328fa1c65 100644
--- a/vcl/source/window/msgbox.cxx
+++ b/vcl/source/window/msgbox.cxx
@@ -372,8 +372,13 @@ Size MessBox::GetOptimalSize() const
}
InfoBox::InfoBox( vcl::Window* pParent, const OUString& rMessage ) :
- InfoBox( pParent, WB_OK | WB_DEF_OK, rMessage )
+ MessBox( pParent, WB_OK | WB_DEF_OK, OUString(), rMessage )
{
+ // Default Text is the display title from the application
+ if ( GetText().isEmpty() )
+ SetText( Application::GetDisplayName() );
+
+ SetImage( InfoBox::GetStandardImage() );
}
InfoBox::InfoBox( vcl::Window* pParent, WinBits nStyle, const OUString& rMessage ) :
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index fdd43b81f718..2c97ee561662 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -93,8 +93,13 @@ Window::Window( WindowType nType ) :
}
Window::Window( vcl::Window* pParent, WinBits nStyle ) :
- Window(WINDOW_WINDOW)
+ mpWindowImpl(new WindowImpl( WINDOW_WINDOW ))
{
+ meOutDevType = OUTDEV_WINDOW;
+
+ // true: this outdev will be mirrored if RTL window layout (UI mirroring) is globally active
+ mbEnableRTL = AllSettings::GetLayoutRTL();
+
ImplInit( pParent, nStyle, nullptr );
}