diff options
Diffstat (limited to 'sfx2/source/dialog')
25 files changed, 357 insertions, 128 deletions
diff --git a/sfx2/source/dialog/alienwarn.cxx b/sfx2/source/dialog/alienwarn.cxx index e157e6ebfd85..81032bdd11d0 100644 --- a/sfx2/source/dialog/alienwarn.cxx +++ b/sfx2/source/dialog/alienwarn.cxx @@ -61,6 +61,8 @@ void SfxAlienWarningDialog::dispose() bool bChecked = m_pWarningOnBox->IsChecked(); if ( aSaveOpt.IsWarnAlienFormat() != bChecked ) aSaveOpt.SetWarnAlienFormat( bChecked ); + m_pKeepCurrentBtn.clear(); + m_pWarningOnBox.clear(); MessageDialog::dispose(); } diff --git a/sfx2/source/dialog/backingwindow.cxx b/sfx2/source/dialog/backingwindow.cxx index fcb9074ecfc2..39bee6d64b43 100644 --- a/sfx2/source/dialog/backingwindow.cxx +++ b/sfx2/source/dialog/backingwindow.cxx @@ -203,8 +203,7 @@ void BackingWindow::dispose() // deregister drag&drop helper if (mxDropTargetListener.is()) { - for (std::vector<vcl::Window*>::iterator aI = maDndWindows.begin(), - aEnd = maDndWindows.end(); aI != aEnd; ++aI) + for (auto aI = maDndWindows.begin(), aEnd = maDndWindows.end(); aI != aEnd; ++aI) { vcl::Window *pDndWin = *aI; css::uno::Reference< css::datatransfer::dnd::XDropTarget > xDropTarget = @@ -218,6 +217,27 @@ void BackingWindow::dispose() mxDropTargetListener = css::uno::Reference< css::datatransfer::dnd::XDropTargetListener >(); } disposeBuilder(); + mpOpenButton.clear(); + mpRecentButton.clear(); + mpTemplateButton.clear(); + mpCreateLabel.clear(); + mpWriterAllButton.clear(); + mpCalcAllButton.clear(); + mpImpressAllButton.clear(); + mpDrawAllButton.clear(); + mpDBAllButton.clear(); + mpMathAllButton.clear(); + mpHelpButton.clear(); + mpExtensionsButton.clear(); + mpAllButtonsBox.clear(); + mpButtonsBox.clear(); + mpSmallButtonsBox.clear(); + mpThinBox1.clear(); + mpThinBox2.clear(); + mpHelpBox.clear(); + mpExtensionsBox.clear(); + mpAllRecentThumbnails.clear(); + mpLocalView.clear(); vcl::Window::dispose(); } @@ -469,8 +489,7 @@ void BackingWindow::setOwningFrame( const com::sun::star::uno::Reference< com::s // establish drag&drop mode mxDropTargetListener.set(new OpenFileDropTargetListener(mxContext, mxFrame)); - for (std::vector<vcl::Window*>::iterator aI = maDndWindows.begin(), - aEnd = maDndWindows.end(); aI != aEnd; ++aI) + for (auto aI = maDndWindows.begin(), aEnd = maDndWindows.end(); aI != aEnd; ++aI) { vcl::Window *pDndWin = *aI; css::uno::Reference< css::datatransfer::dnd::XDropTarget > xDropTarget = diff --git a/sfx2/source/dialog/backingwindow.hxx b/sfx2/source/dialog/backingwindow.hxx index 023e1cb7e88b..a9a07f662e45 100644 --- a/sfx2/source/dialog/backingwindow.hxx +++ b/sfx2/source/dialog/backingwindow.hxx @@ -61,35 +61,35 @@ class BackingWindow /** helper for drag&drop. */ com::sun::star::uno::Reference< com::sun::star::datatransfer::dnd::XDropTargetListener > mxDropTargetListener; - PushButton* mpOpenButton; - PushButton* mpRecentButton; - MenuButton* mpTemplateButton; - - FixedText* mpCreateLabel; - - PushButton* mpWriterAllButton; - PushButton* mpCalcAllButton; - PushButton* mpImpressAllButton; - PushButton* mpDrawAllButton; - PushButton* mpDBAllButton; - PushButton* mpMathAllButton; - - PushButton* mpHelpButton; - PushButton* mpExtensionsButton; - - VclBox* mpAllButtonsBox; - VclBox* mpButtonsBox; - VclBox* mpSmallButtonsBox; - VclBox* mpThinBox1; - VclBox* mpThinBox2; - VclBox* mpHelpBox; - VclBox* mpExtensionsBox; - - RecentDocsView* mpAllRecentThumbnails; - TemplateDefaultView* mpLocalView; - bool mbLocalViewInitialized; - - std::vector<vcl::Window*> maDndWindows; + VclPtr<PushButton> mpOpenButton; + VclPtr<PushButton> mpRecentButton; + VclPtr<MenuButton> mpTemplateButton; + + VclPtr<FixedText> mpCreateLabel; + + VclPtr<PushButton> mpWriterAllButton; + VclPtr<PushButton> mpCalcAllButton; + VclPtr<PushButton> mpImpressAllButton; + VclPtr<PushButton> mpDrawAllButton; + VclPtr<PushButton> mpDBAllButton; + VclPtr<PushButton> mpMathAllButton; + + VclPtr<PushButton> mpHelpButton; + VclPtr<PushButton> mpExtensionsButton; + + VclPtr<VclBox> mpAllButtonsBox; + VclPtr<VclBox> mpButtonsBox; + VclPtr<VclBox> mpSmallButtonsBox; + VclPtr<VclBox> mpThinBox1; + VclPtr<VclBox> mpThinBox2; + VclPtr<VclBox> mpHelpBox; + VclPtr<VclBox> mpExtensionsBox; + + VclPtr<RecentDocsView> mpAllRecentThumbnails; + VclPtr<TemplateDefaultView> mpLocalView; + bool mbLocalViewInitialized; + + std::vector<VclPtr<vcl::Window> > maDndWindows; Rectangle maStartCentButtons; diff --git a/sfx2/source/dialog/basedlgs.cxx b/sfx2/source/dialog/basedlgs.cxx index e624ad6d8b13..3e2f0b0f2e44 100644 --- a/sfx2/source/dialog/basedlgs.cxx +++ b/sfx2/source/dialog/basedlgs.cxx @@ -45,6 +45,12 @@ using namespace ::com::sun::star::uno; #define USERITEM_NAME OUString("UserItem") +SingleTabDlgImpl::SingleTabDlgImpl() + : m_pSfxPage(NULL) + , m_pLine(NULL) + { + } + class SfxModelessDialog_Impl : public SfxListener { public: @@ -706,9 +712,10 @@ SfxSingleTabDialog::~SfxSingleTabDialog() void SfxSingleTabDialog::dispose() { - delete pImpl->m_pSfxPage; - delete pImpl->m_pLine; delete pImpl; + pOKBtn.clear(); + pCancelBtn.clear(); + pHelpBtn.clear(); SfxModalDialog::dispose(); } @@ -723,7 +730,7 @@ void SfxSingleTabDialog::SetTabPage(SfxTabPage* pTabPage, { SetUniqId(nSettingsId); - delete pImpl->m_pSfxPage; + pImpl->m_pSfxPage.clear(); pImpl->m_pSfxPage = pTabPage; fnGetRanges = pRangesFunc; diff --git a/sfx2/source/dialog/checkin.cxx b/sfx2/source/dialog/checkin.cxx index 61d963ef8a5e..b365adab07da 100644 --- a/sfx2/source/dialog/checkin.cxx +++ b/sfx2/source/dialog/checkin.cxx @@ -20,6 +20,19 @@ SfxCheckinDialog::SfxCheckinDialog( vcl::Window* pParent ) : m_pOKBtn->SetClickHdl( LINK( this, SfxCheckinDialog, OKHdl ) ); } +SfxCheckinDialog::~SfxCheckinDialog() +{ + dispose(); +} + +void SfxCheckinDialog::dispose() +{ + m_pCommentED.clear(); + m_pMajorCB.clear(); + m_pOKBtn.clear(); + ModalDialog::dispose(); +} + OUString SfxCheckinDialog::GetComment( ) { return m_pCommentED->GetText( ); diff --git a/sfx2/source/dialog/dinfdlg.cxx b/sfx2/source/dialog/dinfdlg.cxx index 03b9028ea4ba..75581c9f63e7 100644 --- a/sfx2/source/dialog/dinfdlg.cxx +++ b/sfx2/source/dialog/dinfdlg.cxx @@ -626,6 +626,20 @@ SfxDocumentDescPage::SfxDocumentDescPage( vcl::Window * pParent, const SfxItemSe m_pCommentEd->set_height_request(m_pCommentEd->GetTextHeight() * 16); } +SfxDocumentDescPage::~SfxDocumentDescPage() +{ + dispose(); +} + +void SfxDocumentDescPage::dispose() +{ + m_pTitleEd.clear(); + m_pThemaEd.clear(); + m_pKeywordsEd.clear(); + m_pCommentEd.clear(); + SfxTabPage::dispose(); +} + SfxTabPage *SfxDocumentDescPage::Create(vcl::Window *pParent, const SfxItemSet *rItemSet) { return new SfxDocumentDescPage(pParent, *rItemSet); @@ -789,6 +803,33 @@ SfxDocumentPage::SfxDocumentPage(vcl::Window* pParent, const SfxItemSet& rItemSe m_pSignatureBtn->Disable(); } +SfxDocumentPage::~SfxDocumentPage() +{ + dispose(); +} + +void SfxDocumentPage::dispose() +{ + m_pBmp.clear(); + m_pNameED.clear(); + m_pChangePassBtn.clear(); + m_pShowTypeFT.clear(); + m_pReadOnlyCB.clear(); + m_pFileValFt.clear(); + m_pShowSizeFT.clear(); + m_pCreateValFt.clear(); + m_pChangeValFt.clear(); + m_pSignedValFt.clear(); + m_pSignatureBtn.clear(); + m_pPrintValFt.clear(); + m_pTimeLogValFt.clear(); + m_pDocNoValFt.clear(); + m_pUseUserDataCB.clear(); + m_pDeleteBtn.clear(); + m_pTemplFt.clear(); + m_pTemplValFt.clear(); + SfxTabPage::dispose(); +} IMPL_LINK_NOARG(SfxDocumentPage, DeleteHdl) @@ -1209,19 +1250,20 @@ void CustomPropertiesYesNoButton::dispose() class DurationDialog_Impl : public ModalDialog { - CheckBox* m_pNegativeCB; - NumericField* m_pYearNF; - NumericField* m_pMonthNF; - NumericField* m_pDayNF; - NumericField* m_pHourNF; - NumericField* m_pMinuteNF; - NumericField* m_pSecondNF; - NumericField* m_pMSecondNF; + VclPtr<CheckBox> m_pNegativeCB; + VclPtr<NumericField> m_pYearNF; + VclPtr<NumericField> m_pMonthNF; + VclPtr<NumericField> m_pDayNF; + VclPtr<NumericField> m_pHourNF; + VclPtr<NumericField> m_pMinuteNF; + VclPtr<NumericField> m_pSecondNF; + VclPtr<NumericField> m_pMSecondNF; public: DurationDialog_Impl( vcl::Window* pParent, const util::Duration& rDuration ); - + virtual ~DurationDialog_Impl(); + virtual void dispose() SAL_OVERRIDE; util::Duration GetDuration() const; }; @@ -1249,6 +1291,24 @@ DurationDialog_Impl::DurationDialog_Impl(vcl::Window* pParent, m_pMSecondNF->SetValue(rDuration.NanoSeconds); } +DurationDialog_Impl::~DurationDialog_Impl() +{ + dispose(); +} + +void DurationDialog_Impl::dispose() +{ + m_pNegativeCB.clear(); + m_pYearNF.clear(); + m_pMonthNF.clear(); + m_pDayNF.clear(); + m_pHourNF.clear(); + m_pMinuteNF.clear(); + m_pSecondNF.clear(); + m_pMSecondNF.clear(); + ModalDialog::dispose(); +} + util::Duration DurationDialog_Impl::GetDuration() const { util::Duration aRet; @@ -1448,6 +1508,9 @@ void CustomPropertiesWindow::dispose() m_aEditButton.disposeAndClear(); m_aYesNoButton.disposeAndClear(); m_aRemoveButton.disposeAndClear(); + m_pHeaderAccName.clear(); + m_pHeaderAccType.clear(); + m_pHeaderAccValue.clear(); vcl::Window::dispose(); } @@ -2080,11 +2143,11 @@ CustomPropertiesControl::~CustomPropertiesControl() void CustomPropertiesControl::dispose() { - delete m_pVertScroll; - delete m_pPropertiesWin; - delete m_pBody; - delete m_pHeaderBar; - delete m_pVBox; + m_pVertScroll.clear(); + m_pPropertiesWin.clear(); + m_pBody.clear(); + m_pHeaderBar.clear(); + m_pVBox.clear(); vcl::Window::dispose(); } @@ -2124,6 +2187,17 @@ SfxCustomPropertiesPage::SfxCustomPropertiesPage( vcl::Window* pParent, const Sf get<PushButton>("add")->SetClickHdl(LINK(this, SfxCustomPropertiesPage, AddHdl)); } +SfxCustomPropertiesPage::~SfxCustomPropertiesPage() +{ + dispose(); +} + +void SfxCustomPropertiesPage::dispose() +{ + m_pPropertiesCtrl.clear(); + SfxTabPage::dispose(); +} + IMPL_LINK_NOARG(SfxCustomPropertiesPage, AddHdl) { Any aAny; diff --git a/sfx2/source/dialog/dockwin.cxx b/sfx2/source/dialog/dockwin.cxx index e17c3b26782a..3daafd2a5cff 100644 --- a/sfx2/source/dialog/dockwin.cxx +++ b/sfx2/source/dialog/dockwin.cxx @@ -62,7 +62,7 @@ static const int NUM_OF_DOCKINGWINDOWS = 10; class SfxTitleDockingWindow : public SfxDockingWindow { - vcl::Window* m_pWrappedWindow; + VclPtr<vcl::Window> m_pWrappedWindow; public: SfxTitleDockingWindow( @@ -208,7 +208,7 @@ SfxDockingWrapper::SfxDockingWrapper( vcl::Window* pParentWnd , pWindow->SetOutputSizePixel( Size( 270, 240 ) ); - static_cast<SfxDockingWindow*>( pWindow )->Initialize( pInfo ); + static_cast<SfxDockingWindow*>( pWindow.get() )->Initialize( pInfo ); SetHideNotDelete( true ); } @@ -258,9 +258,7 @@ SfxTitleDockingWindow::~SfxTitleDockingWindow() void SfxTitleDockingWindow::dispose() { - delete m_pWrappedWindow; - m_pWrappedWindow = NULL; - + m_pWrappedWindow.clear(); SfxDockingWindow::dispose(); } @@ -411,7 +409,7 @@ friend class SfxDockingWindow; SfxChildAlignment eDockAlignment; bool bConstructed; Size aMinSize; - SfxSplitWindow* pSplitWin; + VclPtr<SfxSplitWindow> pSplitWin; bool bSplitable; Idle aMoveIdle; diff --git a/sfx2/source/dialog/documentfontsdialog.cxx b/sfx2/source/dialog/documentfontsdialog.cxx index c942fd25c059..6f0fab8bade5 100644 --- a/sfx2/source/dialog/documentfontsdialog.cxx +++ b/sfx2/source/dialog/documentfontsdialog.cxx @@ -34,6 +34,17 @@ SfxDocumentFontsPage::SfxDocumentFontsPage( vcl::Window* parent, const SfxItemSe get( embedFontsCheckbox, "embedFonts" ); } +SfxDocumentFontsPage::~SfxDocumentFontsPage() +{ + dispose(); +} + +void SfxDocumentFontsPage::dispose() +{ + embedFontsCheckbox.clear(); + SfxTabPage::dispose(); +} + void SfxDocumentFontsPage::Reset( const SfxItemSet* ) { bool bVal = false; diff --git a/sfx2/source/dialog/filedlgimpl.hxx b/sfx2/source/dialog/filedlgimpl.hxx index b947ca9adecd..cac4cb268b56 100644 --- a/sfx2/source/dialog/filedlgimpl.hxx +++ b/sfx2/source/dialog/filedlgimpl.hxx @@ -54,7 +54,7 @@ namespace sfx2 SfxFilterMatcher* mpMatcher; GraphicFilter* mpGraphicFilter; FileDialogHelper* mpAntiImpl; - vcl::Window* mpPreferredParentWindow; + VclPtr<vcl::Window> mpPreferredParentWindow; ::std::vector< OUString > mlLastURLs; diff --git a/sfx2/source/dialog/infobar.cxx b/sfx2/source/dialog/infobar.cxx index 777b3fec6cc8..639bd4baca93 100644 --- a/sfx2/source/dialog/infobar.cxx +++ b/sfx2/source/dialog/infobar.cxx @@ -150,14 +150,8 @@ SfxInfoBarWindow::~SfxInfoBarWindow() void SfxInfoBarWindow::dispose() { - delete m_pMessage; - delete m_pCloseBtn; - - for ( vector< PushButton* >::iterator it = m_aActionBtns.begin( ); - it != m_aActionBtns.end( ); ++it ) - { - delete *it; - } + m_pMessage.clear(); + m_pCloseBtn.clear(); m_aActionBtns.clear( ); vcl::Window::dispose(); } @@ -219,8 +213,7 @@ void SfxInfoBarWindow::Resize() long nX = m_pCloseBtn->GetPosPixel().getX() - 15 * nScaleFactor; long nButtonGap = 5 * nScaleFactor; - boost::ptr_vector<PushButton>::iterator it; - for (it = m_aActionBtns.begin(); it != m_aActionBtns.end(); ++it) + for (auto it = m_aActionBtns.begin(); it != m_aActionBtns.end(); ++it) { long nButtonWidth = it->GetSizePixel().getWidth(); nX -= nButtonWidth; @@ -254,11 +247,6 @@ SfxInfoBarContainerWindow::~SfxInfoBarContainerWindow() void SfxInfoBarContainerWindow::dispose() { - for ( vector< SfxInfoBarWindow* >::iterator it = m_pInfoBars.begin( ); - it != m_pInfoBars.end( ); ++it ) - { - delete *it; - } m_pInfoBars.clear( ); Window::dispose(); } @@ -267,7 +255,7 @@ SfxInfoBarWindow* SfxInfoBarContainerWindow::appendInfoBar(const OUString& sId, { Size aSize = GetSizePixel(); - SfxInfoBarWindow* pInfoBar = new SfxInfoBarWindow(this, sId, sMessage); + VclPtrInstance<SfxInfoBarWindow> pInfoBar(this, sId, sMessage); pInfoBar->SetPosPixel(Point(0, aSize.getHeight())); pInfoBar->Show(); m_pInfoBars.push_back(pInfoBar); @@ -280,8 +268,7 @@ SfxInfoBarWindow* SfxInfoBarContainerWindow::appendInfoBar(const OUString& sId, SfxInfoBarWindow* SfxInfoBarContainerWindow::getInfoBar(const OUString& sId) { - boost::ptr_vector<SfxInfoBarWindow>::iterator it; - for (it = m_pInfoBars.begin(); it != m_pInfoBars.end(); ++it) + for (auto it = m_pInfoBars.begin(); it != m_pInfoBars.end(); ++it) { if (it->getId() == sId) return &(*it); @@ -291,8 +278,7 @@ SfxInfoBarWindow* SfxInfoBarContainerWindow::getInfoBar(const OUString& sId) void SfxInfoBarContainerWindow::removeInfoBar(SfxInfoBarWindow* pInfoBar) { - boost::ptr_vector<SfxInfoBarWindow>::iterator it; - for (it = m_pInfoBars.begin(); it != m_pInfoBars.end(); ++it) + for (auto it = m_pInfoBars.begin(); it != m_pInfoBars.end(); ++it) { if (pInfoBar == &(*it)) { @@ -302,7 +288,7 @@ void SfxInfoBarContainerWindow::removeInfoBar(SfxInfoBarWindow* pInfoBar) } long nY = 0; - for (it = m_pInfoBars.begin(); it != m_pInfoBars.end(); ++it) + for (auto it = m_pInfoBars.begin(); it != m_pInfoBars.end(); ++it) { it->SetPosPixel(Point(0, nY)); nY += it->GetSizePixel().getHeight(); @@ -320,8 +306,7 @@ void SfxInfoBarContainerWindow::Resize() // Only need to change the width of the infobars long nWidth = GetSizePixel().getWidth(); - boost::ptr_vector<SfxInfoBarWindow>::iterator it; - for (it = m_pInfoBars.begin(); it != m_pInfoBars.end(); ++it) + for (auto it = m_pInfoBars.begin(); it != m_pInfoBars.end(); ++it) { Size aSize = it->GetSizePixel(); aSize.setWidth(nWidth); diff --git a/sfx2/source/dialog/inputdlg.cxx b/sfx2/source/dialog/inputdlg.cxx index 6f1ab9288205..a49a412be52a 100644 --- a/sfx2/source/dialog/inputdlg.cxx +++ b/sfx2/source/dialog/inputdlg.cxx @@ -26,6 +26,20 @@ InputDialog::InputDialog(const OUString &rLabelText, vcl::Window *pParent) m_pCancel->SetClickHdl(LINK(this,InputDialog,ClickHdl)); } +InputDialog::~InputDialog() +{ + dispose(); +} + +void InputDialog::dispose() +{ + m_pEntry.clear(); + m_pLabel.clear(); + m_pOK.clear(); + m_pCancel.clear(); + ModalDialog::dispose(); +} + OUString InputDialog::getEntryText() const { return m_pEntry->GetText(); diff --git a/sfx2/source/dialog/mgetempl.cxx b/sfx2/source/dialog/mgetempl.cxx index c1a713d4f651..0a8a5b26210e 100644 --- a/sfx2/source/dialog/mgetempl.cxx +++ b/sfx2/source/dialog/mgetempl.cxx @@ -260,6 +260,18 @@ void SfxManageStyleSheetPage::dispose() delete pFamilies; pItem = 0; pStyle = 0; + m_pNameRo.clear(); + m_pNameRw.clear(); + m_pAutoCB.clear(); + m_pFollowFt.clear(); + m_pFollowLb.clear(); + m_pEditStyleBtn.clear(); + m_pBaseFt.clear(); + m_pBaseLb.clear(); + m_pEditLinkStyleBtn.clear(); + m_pFilterFt.clear(); + m_pFilterLb.clear(); + m_pDescFt.clear(); SfxTabPage::dispose(); } diff --git a/sfx2/source/dialog/navigat.cxx b/sfx2/source/dialog/navigat.cxx index 415c347d4970..48a30206b94c 100644 --- a/sfx2/source/dialog/navigat.cxx +++ b/sfx2/source/dialog/navigat.cxx @@ -41,7 +41,7 @@ SfxNavigatorWrapper::SfxNavigatorWrapper( vcl::Window* pParentWnd , pWindow->SetHelpId ( HID_NAVIGATOR_WINDOW ); pWindow->SetOutputSizePixel( Size( 270, 240 ) ); - static_cast<SfxDockingWindow*>( pWindow )->Initialize( pInfo ); + static_cast<SfxDockingWindow*>( pWindow.get() )->Initialize( pInfo ); SetHideNotDelete( true ); } diff --git a/sfx2/source/dialog/newstyle.cxx b/sfx2/source/dialog/newstyle.cxx index b8ec5b1a83e5..8fe73b084c61 100644 --- a/sfx2/source/dialog/newstyle.cxx +++ b/sfx2/source/dialog/newstyle.cxx @@ -88,6 +88,8 @@ SfxNewStyleDlg::~SfxNewStyleDlg() void SfxNewStyleDlg::dispose() { aQueryOverwriteBox.disposeAndClear(); + m_pColBox.clear(); + m_pOKBtn.clear(); ModalDialog::dispose(); } diff --git a/sfx2/source/dialog/partwnd.cxx b/sfx2/source/dialog/partwnd.cxx index 40fabdb1f624..0292b83640f9 100644 --- a/sfx2/source/dialog/partwnd.cxx +++ b/sfx2/source/dialog/partwnd.cxx @@ -65,10 +65,10 @@ SfxPartChildWnd_Impl::SfxPartChildWnd_Impl assert(pInfo); pInfo->nFlags |= SfxChildWindowFlags::FORCEDOCK; - static_cast<SfxDockingWindow*>(pWindow)->SetFloatingSize( Size( 175, 175 ) ); + static_cast<SfxDockingWindow*>(pWindow.get())->SetFloatingSize( Size( 175, 175 ) ); pWindow->SetSizePixel( Size( 175, 175 ) ); - static_cast<SfxDockingWindow*>(pWindow)->Initialize( pInfo ); + static_cast<SfxDockingWindow*>(pWindow.get())->Initialize( pInfo ); SetHideNotDelete( true ); } @@ -82,7 +82,7 @@ SfxPartChildWnd_Impl::~SfxPartChildWnd_Impl() // But don't do it, if xFrame already exist. Then dispose() must come from inside ... // and we need a valid pMgr for further operations ... - SfxPartDockWnd_Impl* pWin = static_cast<SfxPartDockWnd_Impl*>(pWindow); + SfxPartDockWnd_Impl* pWin = static_cast<SfxPartDockWnd_Impl*>(pWindow.get()); if ( pWin && xFrame == pWin->GetBindings().GetActiveFrame() ) pWin->GetBindings().SetActiveFrame( NULL ); @@ -90,7 +90,7 @@ SfxPartChildWnd_Impl::~SfxPartChildWnd_Impl() bool SfxPartChildWnd_Impl::QueryClose() { - return static_cast<SfxPartDockWnd_Impl*>(pWindow)->QueryClose(); + return static_cast<SfxPartDockWnd_Impl*>(pWindow.get())->QueryClose(); } diff --git a/sfx2/source/dialog/passwd.cxx b/sfx2/source/dialog/passwd.cxx index 56ba1282f617..1db877fbc258 100644 --- a/sfx2/source/dialog/passwd.cxx +++ b/sfx2/source/dialog/passwd.cxx @@ -125,7 +125,29 @@ SfxPasswordDialog::SfxPasswordDialog(vcl::Window* pParent, const OUString* pGrou SetPasswdText(); } +SfxPasswordDialog::~SfxPasswordDialog() +{ + dispose(); +} +void SfxPasswordDialog::dispose() +{ + mpPassword1Box.clear(); + mpUserFT.clear(); + mpUserED.clear(); + mpPassword1FT.clear(); + mpPassword1ED.clear(); + mpConfirm1FT.clear(); + mpConfirm1ED.clear(); + mpPassword2Box.clear(); + mpPassword2FT.clear(); + mpPassword2ED.clear(); + mpConfirm2FT.clear(); + mpConfirm2ED.clear(); + mpMinLengthFT.clear(); + mpOKBtn.clear(); + ModalDialog::dispose(); +} void SfxPasswordDialog::SetPasswdText( ) { diff --git a/sfx2/source/dialog/printopt.cxx b/sfx2/source/dialog/printopt.cxx index 0daebad48a52..b5e5d49ee7c9 100644 --- a/sfx2/source/dialog/printopt.cxx +++ b/sfx2/source/dialog/printopt.cxx @@ -85,6 +85,36 @@ SfxCommonPrintOptionsTabPage::SfxCommonPrintOptionsTabPage( vcl::Window* pParent m_pReduceBitmapsResolutionRB->SetToggleHdl( LINK( this, SfxCommonPrintOptionsTabPage, ToggleReduceBitmapsResolutionRBHdl ) ); } +SfxCommonPrintOptionsTabPage::~SfxCommonPrintOptionsTabPage() +{ + dispose(); +} + +void SfxCommonPrintOptionsTabPage::dispose() +{ + m_pPrinterOutputRB.clear(); + m_pPrintFileOutputRB.clear(); + m_pReduceTransparencyCB.clear(); + m_pReduceTransparencyAutoRB.clear(); + m_pReduceTransparencyNoneRB.clear(); + m_pReduceGradientsCB.clear(); + m_pReduceGradientsStripesRB.clear(); + m_pReduceGradientsColorRB.clear(); + m_pReduceGradientsStepCountNF.clear(); + m_pReduceBitmapsCB.clear(); + m_pReduceBitmapsOptimalRB.clear(); + m_pReduceBitmapsNormalRB.clear(); + m_pReduceBitmapsResolutionRB.clear(); + m_pReduceBitmapsResolutionLB.clear(); + m_pReduceBitmapsTransparencyCB.clear(); + m_pConvertToGreyscalesCB.clear(); + m_pPDFCB.clear(); + m_pPaperSizeCB.clear(); + m_pPaperOrientationCB.clear(); + m_pTransparencyCB.clear(); + SfxTabPage::dispose(); +} + SfxTabPage* SfxCommonPrintOptionsTabPage::Create( vcl::Window* pParent, const SfxItemSet* rAttrSet ) { return( new SfxCommonPrintOptionsTabPage( pParent, *rAttrSet ) ); diff --git a/sfx2/source/dialog/recfloat.cxx b/sfx2/source/dialog/recfloat.cxx index d63d1df4eff4..c674d9823ac1 100644 --- a/sfx2/source/dialog/recfloat.cxx +++ b/sfx2/source/dialog/recfloat.cxx @@ -134,7 +134,7 @@ SfxRecordingFloatWrapper_Impl::SfxRecordingFloatWrapper_Impl( vcl::Window* pPare pWindow = new SfxRecordingFloat_Impl( pBindings, this, pParentWnd ); SetWantsFocus( false ); eChildAlignment = SfxChildAlignment::NOALIGNMENT; - static_cast<SfxFloatingWindow*>(pWindow)->Initialize( pInfo ); + static_cast<SfxFloatingWindow*>(pWindow.get())->Initialize( pInfo ); } SfxRecordingFloatWrapper_Impl::~SfxRecordingFloatWrapper_Impl() @@ -216,6 +216,7 @@ void SfxRecordingFloat_Impl::dispose() catch ( uno::Exception& ) { } + m_pTbx.clear(); SfxFloatingWindow::dispose(); } diff --git a/sfx2/source/dialog/securitypage.cxx b/sfx2/source/dialog/securitypage.cxx index b70ca3c4fab2..81e54371aa19 100644 --- a/sfx2/source/dialog/securitypage.cxx +++ b/sfx2/source/dialog/securitypage.cxx @@ -136,10 +136,10 @@ struct SfxSecurityPage_Impl { SfxSecurityPage & m_rMyTabPage; - CheckBox* m_pOpenReadonlyCB; - CheckBox* m_pRecordChangesCB; // for record changes - PushButton* m_pProtectPB; // for record changes - PushButton* m_pUnProtectPB; // for record changes + VclPtr<CheckBox> m_pOpenReadonlyCB; + VclPtr<CheckBox> m_pRecordChangesCB; // for record changes + VclPtr<PushButton> m_pProtectPB; // for record changes + VclPtr<PushButton> m_pUnProtectPB; // for record changes RedliningMode m_eRedlingMode; // for record changes bool m_bOrigPasswordIsConfirmed; diff --git a/sfx2/source/dialog/splitwin.cxx b/sfx2/source/dialog/splitwin.cxx index 036a578c166d..4a7d42377a39 100644 --- a/sfx2/source/dialog/splitwin.cxx +++ b/sfx2/source/dialog/splitwin.cxx @@ -87,15 +87,16 @@ class SfxEmptySplitWin_Impl : public SplitWindow */ friend class SfxSplitWindow; - SfxSplitWindow* pOwner; - bool bFadeIn; - bool bAutoHide; - bool bSplit; - bool bEndAutoHide; - Timer aTimer; - Point aLastPos; + VclPtr<SfxSplitWindow> pOwner; + bool bFadeIn; + bool bAutoHide; + bool bSplit; + bool bEndAutoHide; + Timer aTimer; + Point aLastPos; sal_uInt16 nState; +public: SfxEmptySplitWin_Impl( SfxSplitWindow *pParent ) : SplitWindow( pParent->GetParent(), WinBits( WB_BORDER | WB_3DLOOK ) ) , pOwner( pParent ) @@ -119,6 +120,7 @@ friend class SfxSplitWindow; virtual void dispose() SAL_OVERRIDE { aTimer.Stop(); + pOwner.clear(); SplitWindow::dispose(); } @@ -315,10 +317,11 @@ void SfxSplitWindow::dispose() // Set pOwner to NULL, otherwise try to delete pEmptyWin once more. The // window that is just being docked is always deleted from the outside. pEmptyWin->pOwner = NULL; - delete pEmptyWin; } + pEmptyWin.clear(); delete pDockArr; + pActive.clear(); SplitWindow::dispose(); } diff --git a/sfx2/source/dialog/srchdlg.cxx b/sfx2/source/dialog/srchdlg.cxx index d933c0224f26..7fd8ec70aff2 100644 --- a/sfx2/source/dialog/srchdlg.cxx +++ b/sfx2/source/dialog/srchdlg.cxx @@ -69,6 +69,12 @@ void SearchDialog::dispose() { SaveConfig(); m_aCloseHdl.Call( NULL ); + m_pSearchEdit.clear(); + m_pWholeWordsBox.clear(); + m_pMatchCaseBox.clear(); + m_pWrapAroundBox.clear(); + m_pBackwardsBox.clear(); + m_pFindBtn.clear(); ModelessDialog::dispose(); } diff --git a/sfx2/source/dialog/tabdlg.cxx b/sfx2/source/dialog/tabdlg.cxx index 1af64784fe14..b8f63d54c85e 100644 --- a/sfx2/source/dialog/tabdlg.cxx +++ b/sfx2/source/dialog/tabdlg.cxx @@ -60,7 +60,7 @@ struct Data_Impl sal_uInt16 nId; // The ID CreateTabPage fnCreatePage; // Pointer to Factory GetTabPageRanges fnGetRanges; // Pointer to Ranges-Function - SfxTabPage* pTabPage; // The TabPage itself + VclPtr<SfxTabPage> pTabPage; // The TabPage itself bool bOnDemand; // Flag: ItemSet onDemand bool bRefresh; // Flag: Page must be re-initialized @@ -398,7 +398,7 @@ void SfxTabDialog::dispose() if ( pDataObject->bOnDemand ) delete &pDataObject->pTabPage->GetItemSet(); - delete pDataObject->pTabPage; + pDataObject->pTabPage.disposeAndClear(); } delete pDataObject; } @@ -409,16 +409,16 @@ void SfxTabDialog::dispose() delete pExampleSet; delete [] pRanges; - if (m_bOwnsBaseFmtBtn) - delete m_pBaseFmtBtn; - if (m_bOwnsResetBtn) - delete m_pResetBtn; - if (m_bOwnsHelpBtn) - delete m_pHelpBtn; - if (m_bOwnsCancelBtn) - delete m_pCancelBtn; - if (m_bOwnsOKBtn) - delete m_pOKBtn; + m_pBox.clear(); + m_pTabCtrl.clear(); + m_pOKBtn.clear(); + m_pApplyBtn.clear(); + m_pUserBtn.clear(); + m_pCancelBtn.clear(); + m_pHelpBtn.clear(); + m_pResetBtn.clear(); + m_pBaseFmtBtn.clear(); + m_pActionArea.clear(); TabDialog::dispose(); } @@ -438,33 +438,33 @@ void SfxTabDialog::Init_Impl(bool bFmtFlag) assert(m_pActionArea); m_pOKBtn = m_pUIBuilder->get<PushButton>("ok"); - m_bOwnsOKBtn = m_pOKBtn == NULL; + m_bOwnsOKBtn = m_pOKBtn == nullptr; if (m_bOwnsOKBtn) m_pOKBtn = new OKButton(m_pActionArea); m_pApplyBtn = m_pUIBuilder->get<PushButton>("apply"); m_pUserBtn = m_pUIBuilder->get<PushButton>("user"); m_pCancelBtn = m_pUIBuilder->get<CancelButton>("cancel"); - m_bOwnsCancelBtn = m_pCancelBtn == NULL; + m_bOwnsCancelBtn = m_pCancelBtn == nullptr; if (m_bOwnsCancelBtn) m_pCancelBtn = new CancelButton(m_pActionArea); m_pHelpBtn = m_pUIBuilder->get<HelpButton>("help"); - m_bOwnsHelpBtn = m_pHelpBtn == NULL; + m_bOwnsHelpBtn = m_pHelpBtn == nullptr; if (m_bOwnsHelpBtn) m_pHelpBtn = new HelpButton(m_pActionArea); m_pResetBtn = m_pUIBuilder->get<PushButton>("reset"); - m_bOwnsResetBtn = m_pResetBtn == NULL; + m_bOwnsResetBtn = m_pResetBtn == nullptr; if (m_bOwnsResetBtn) - m_pResetBtn = new PushButton(m_pActionArea); + m_pResetBtn = new PushButton(m_pActionArea.get()); else pImpl->bHideResetBtn = !m_pResetBtn->IsVisible(); m_pBaseFmtBtn = m_pUIBuilder->get<PushButton>("standard"); - m_bOwnsBaseFmtBtn = m_pBaseFmtBtn == NULL; + m_bOwnsBaseFmtBtn = m_pBaseFmtBtn == nullptr; if (m_bOwnsBaseFmtBtn) - m_pBaseFmtBtn = new PushButton(m_pActionArea); + m_pBaseFmtBtn = new PushButton(m_pActionArea.get()); m_pOKBtn->SetClickHdl( LINK( this, SfxTabDialog, OkHdl ) ); m_pCancelBtn->SetClickHdl( LINK( this, SfxTabDialog, CancelHdl ) ); @@ -698,7 +698,7 @@ void SfxTabDialog::RemoveTabPage( sal_uInt16 nId ) if ( pDataObject->bOnDemand ) delete &pDataObject->pTabPage->GetItemSet(); - delete pDataObject->pTabPage; + pDataObject->pTabPage.disposeAndClear(); } delete pDataObject; @@ -1135,7 +1135,7 @@ IMPL_LINK( SfxTabDialog, ActivatePageHdl, TabControl *, pTabCtrl ) else pTabPage = (pDataObject->fnCreatePage) ( pTabCtrl, CreateInputItemSet( nId ) ); - DBG_ASSERT( NULL == pDataObject->pTabPage, "create TabPage more than once" ); + DBG_ASSERT( nullptr == pDataObject->pTabPage, "create TabPage more than once" ); pDataObject->pTabPage = pTabPage; OUString sConfigId = OStringToOUString(pTabPage->GetConfigId(), RTL_TEXTENCODING_UTF8); @@ -1255,7 +1255,7 @@ IMPL_LINK( SfxTabDialog, DeactivatePageHdl, TabControl *, pTabCtrl ) { Data_Impl* pObj = *it; - if ( pObj->pTabPage != pPage ) // Do not refresh own Page anymore + if ( pObj->pTabPage.get() != pPage ) // Do not refresh own Page anymore pObj->bRefresh = true; else pObj->bRefresh = false; diff --git a/sfx2/source/dialog/templateinfodlg.cxx b/sfx2/source/dialog/templateinfodlg.cxx index a1779d6fefc9..e16db6db0f95 100644 --- a/sfx2/source/dialog/templateinfodlg.cxx +++ b/sfx2/source/dialog/templateinfodlg.cxx @@ -38,7 +38,7 @@ SfxTemplateInfoDlg::SfxTemplateInfoDlg (vcl::Window *pParent) get(mpBtnClose, "close"); get(mpBox, "box"); get(mpInfoView, "infoDrawingArea"); - mpPreviewView = new vcl::Window(mpBox); + mpPreviewView = new vcl::Window(mpBox.get()); Size aSize(LogicToPixel(Size(250, 160), MAP_APPFONT)); mpBox->set_width_request(aSize.Width()); @@ -60,6 +60,10 @@ SfxTemplateInfoDlg::~SfxTemplateInfoDlg() void SfxTemplateInfoDlg::dispose() { m_xFrame->dispose(); + mpBtnClose.clear(); + mpBox.clear(); + mpPreviewView.clear(); + mpInfoView.clear(); ModalDialog::dispose(); } diff --git a/sfx2/source/dialog/templdlg.cxx b/sfx2/source/dialog/templdlg.cxx index 34097725d091..72fde222b23c 100644 --- a/sfx2/source/dialog/templdlg.cxx +++ b/sfx2/source/dialog/templdlg.cxx @@ -765,7 +765,6 @@ SfxCommonTemplateDialog_Impl::~SfxCommonTemplateDialog_Impl() if ( pStyleSheetPool ) EndListening(*pStyleSheetPool); pStyleSheetPool = NULL; - delete pTreeBox; delete pIdle; if ( m_pDeletionWatcher ) m_pDeletionWatcher->signal(); @@ -1532,7 +1531,7 @@ void SfxCommonTemplateDialog_Impl::EnableHierarchical(bool const bEnable) } else { - DELETEZ(pTreeBox); + pTreeBox.clear(); aFmtLb->Show(); // If bHierarchical, then the family can have changed // minus one since hierarchical is inserted at the start @@ -2173,7 +2172,7 @@ void SfxTemplateDialog_Impl::LoadedFamilies() // The size of the Listboxen is adjusted void SfxTemplateDialog_Impl::Resize() { - SfxDockingWindow* pDockingWindow = dynamic_cast<SfxDockingWindow*>(m_pFloat); + SfxDockingWindow* pDockingWindow = dynamic_cast<SfxDockingWindow*>(m_pFloat.get()); FloatingWindow *pF = pDockingWindow!=NULL ? pDockingWindow->GetFloatingWindow() : NULL; if ( pF ) { @@ -2182,7 +2181,7 @@ void SfxTemplateDialog_Impl::Resize() return; } - if (m_pFloat == NULL) + if (m_pFloat == nullptr) return; Size aDlgSize=m_pFloat->PixelToLogic(m_pFloat->GetOutputSizePixel()); Size aSizeATL=m_pFloat->PixelToLogic(m_aActionTbL->CalcWindowSizePixel()); @@ -2242,7 +2241,7 @@ void SfxTemplateDialog_Impl::Resize() Size SfxTemplateDialog_Impl::GetMinOutputSizePixel() { - if (m_pFloat != NULL) + if (m_pFloat != nullptr) { Size aSizeATL=m_pFloat->PixelToLogic(m_aActionTbL->CalcWindowSizePixel()); Size aSizeATR=m_pFloat->PixelToLogic(m_aActionTbR->CalcWindowSizePixel()); diff --git a/sfx2/source/dialog/versdlg.cxx b/sfx2/source/dialog/versdlg.cxx index 797c89342f28..f74654602fdc 100644 --- a/sfx2/source/dialog/versdlg.cxx +++ b/sfx2/source/dialog/versdlg.cxx @@ -335,7 +335,14 @@ SfxVersionDialog::~SfxVersionDialog() void SfxVersionDialog::dispose() { delete m_pTable; - delete m_pVersionBox; + m_pVersionBox.clear(); + m_pSaveButton.clear(); + m_pSaveCheckBox.clear(); + m_pOpenButton.clear(); + m_pViewButton.clear(); + m_pDeleteButton.clear(); + m_pCompareButton.clear(); + m_pCmisButton.clear(); SfxModalDialog::dispose(); } @@ -499,6 +506,22 @@ SfxViewVersionDialog_Impl::SfxViewVersionDialog_Impl(vcl::Window *pParent, SfxVe } } +SfxViewVersionDialog_Impl::~SfxViewVersionDialog_Impl() +{ + dispose(); +} + +void SfxViewVersionDialog_Impl::dispose() +{ + m_pDateTimeText.clear(); + m_pSavedByText.clear(); + m_pEdit.clear(); + m_pOKButton.clear(); + m_pCancelButton.clear(); + m_pCloseButton.clear(); + SfxModalDialog::dispose(); +} + IMPL_LINK(SfxViewVersionDialog_Impl, ButtonHdl, Button*, pButton) { assert(pButton == m_pOKButton); @@ -569,7 +592,11 @@ SfxCmisVersionsDialog::~SfxCmisVersionsDialog() void SfxCmisVersionsDialog::dispose() { delete m_pTable; - delete m_pVersionBox; + m_pVersionBox.clear(); + m_pOpenButton.clear(); + m_pViewButton.clear(); + m_pDeleteButton.clear(); + m_pCompareButton.clear(); SfxModalDialog::dispose(); } |