summaryrefslogtreecommitdiff
path: root/svtools/source/contnr/fileview.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'svtools/source/contnr/fileview.cxx')
-rw-r--r--svtools/source/contnr/fileview.cxx54
1 files changed, 37 insertions, 17 deletions
diff --git a/svtools/source/contnr/fileview.cxx b/svtools/source/contnr/fileview.cxx
index 70471b08ea5d..15ae1fe660ae 100644
--- a/svtools/source/contnr/fileview.cxx
+++ b/svtools/source/contnr/fileview.cxx
@@ -182,7 +182,7 @@ private:
Reference< XCommandEnvironment > mxCmdEnv;
::osl::Mutex maMutex;
- HeaderBar* mpHeaderBar;
+ VclPtr<HeaderBar> mpHeaderBar;
SvtFileView_Impl* mpParent;
Timer maResetQuickSearch;
OUString maQuickSearchText;
@@ -206,7 +206,8 @@ protected:
public:
ViewTabListBox_Impl( vcl::Window* pParentWin, SvtFileView_Impl* pParent, FileViewFlags nFlags );
- virtual ~ViewTabListBox_Impl();
+ virtual ~ViewTabListBox_Impl();
+ virtual void dispose() SAL_OVERRIDE;
virtual void Resize() SAL_OVERRIDE;
virtual void KeyInput( const KeyEvent& rKEvt ) SAL_OVERRIDE;
@@ -419,7 +420,7 @@ class SvtFileView_Impl :public ::svt::IEnumerationResultHandler
,public ITimeoutHandler
{
protected:
- SvtFileView* mpAntiImpl;
+ VclPtr<SvtFileView> mpAntiImpl;
Link m_aSelectHandler;
::rtl::Reference< ::svt::FileViewContentEnumerator >
@@ -437,7 +438,7 @@ public:
::std::vector< SortingData_Impl* > maContent;
::osl::Mutex maMutex;
- ViewTabListBox_Impl* mpView;
+ VclPtr<ViewTabListBox_Impl> mpView;
NameTranslator_Impl* mpNameTrans;
sal_uInt16 mnSortColumn;
bool mbAscending : 1;
@@ -596,7 +597,7 @@ ViewTabListBox_Impl::ViewTabListBox_Impl( vcl::Window* pParentWin,
mbShowHeader ( !(nFlags & FileViewFlags::SHOW_NONE) )
{
Size aBoxSize = pParentWin->GetSizePixel();
- mpHeaderBar = new HeaderBar( pParentWin, WB_BUTTONSTYLE | WB_BOTTOMBORDER );
+ mpHeaderBar = VclPtr<HeaderBar>::Create( pParentWin, WB_BUTTONSTYLE | WB_BOTTOMBORDER );
mpHeaderBar->SetPosSizePixel( Point( 0, 0 ), mpHeaderBar->CalcWindowSizePixel() );
HeaderBarItemBits nBits = ( HeaderBarItemBits::LEFT | HeaderBarItemBits::VCENTER | HeaderBarItemBits::CLICKABLE );
@@ -648,9 +649,15 @@ ViewTabListBox_Impl::ViewTabListBox_Impl( vcl::Window* pParentWin,
ViewTabListBox_Impl::~ViewTabListBox_Impl()
{
+ disposeOnce();
+}
+
+void ViewTabListBox_Impl::dispose()
+{
maResetQuickSearch.Stop();
- delete mpHeaderBar;
+ mpHeaderBar.disposeAndClear();
+ SvHeaderTabListBox::dispose();
}
@@ -886,16 +893,16 @@ void ViewTabListBox_Impl::DeleteEntries()
if ( eResult != svtools::QUERYDELETE_ALL )
{
INetURLObject aObj( aURL );
- svtools::QueryDeleteDlg_Impl aDlg( NULL, aObj.GetName( INetURLObject::DECODE_WITH_CHARSET ) );
+ ScopedVclPtrInstance< svtools::QueryDeleteDlg_Impl > aDlg(nullptr, aObj.GetName( INetURLObject::DECODE_WITH_CHARSET ) );
if ( sDialogPosition.getLength() )
- aDlg.SetWindowState( sDialogPosition );
+ aDlg->SetWindowState( sDialogPosition );
if ( GetSelectionCount() > 1 )
- aDlg.EnableAllButton();
+ aDlg->EnableAllButton();
- eResult = aDlg.Execute();
+ eResult = aDlg->Execute();
- sDialogPosition = aDlg.GetWindowState( );
+ sDialogPosition = aDlg->GetWindowState( );
}
if ( ( eResult == svtools::QUERYDELETE_ALL ) ||
@@ -1103,10 +1110,16 @@ SvtFileView::SvtFileView( vcl::Window* pParent, WinBits nBits,
SvtFileView::~SvtFileView()
{
+ disposeOnce();
+}
+
+void SvtFileView::dispose()
+{
// use temp pointer to prevent access of deleted member (GetFocus())
SvtFileView_Impl* pTemp = mpImp;
mpImp = NULL;
delete pTemp;
+ Control::dispose();
}
extern "C" SAL_DLLPUBLIC_EXPORT vcl::Window* SAL_CALL makeSvtFileView(vcl::Window *pParent,
@@ -1582,7 +1595,7 @@ SvtFileView_Impl::SvtFileView_Impl( SvtFileView* pAntiImpl, Reference < XCommand
{
maAllFilter = "*.*";
- mpView = new ViewTabListBox_Impl( mpAntiImpl, this, nFlags );
+ mpView = VclPtr<ViewTabListBox_Impl>::Create( mpAntiImpl, this, nFlags );
mpView->EnableCellFocus();
}
@@ -1590,11 +1603,7 @@ SvtFileView_Impl::SvtFileView_Impl( SvtFileView* pAntiImpl, Reference < XCommand
SvtFileView_Impl::~SvtFileView_Impl()
{
Clear();
-
- // use temp pointer to prevent access of deleted member (GetFocus())
- ViewTabListBox_Impl* pTemp = mpView;
- mpView = NULL;
- delete pTemp;
+ mpView.disposeAndClear();
}
@@ -2335,6 +2344,17 @@ QueryDeleteDlg_Impl::QueryDeleteDlg_Impl(vcl::Window* pParent, const OUString& r
set_secondary_text(get_secondary_text().replaceFirst("%s", rName));
}
+QueryDeleteDlg_Impl::~QueryDeleteDlg_Impl()
+{
+ disposeOnce();
+}
+
+void QueryDeleteDlg_Impl::dispose()
+{
+ m_pAllButton.clear();
+ MessageDialog::dispose();
+}
+
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */