diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-12-18 08:25:52 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-12-18 10:27:47 +0100 |
commit | 574678cf92d50abf456ebbb56b9ea6cc5ca5ecf6 (patch) | |
tree | 98418aa4599b57e2fd3f3982e69680ea9a28596d /sfx2 | |
parent | 7f2d0dc559e24d861d72cf03a451b0aa4d275d91 (diff) |
use unique_ptr in FileOpenDialog_Impl
Change-Id: I530d26a489a130c9fdfa105b3891d21cbfeb3379
Reviewed-on: https://gerrit.libreoffice.org/65305
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'sfx2')
-rw-r--r-- | sfx2/source/appl/appopen.cxx | 6 | ||||
-rw-r--r-- | sfx2/source/dialog/filedlghelper.cxx | 18 | ||||
-rw-r--r-- | sfx2/source/dialog/filedlgimpl.hxx | 2 | ||||
-rw-r--r-- | sfx2/source/doc/guisaveas.cxx | 11 |
4 files changed, 18 insertions, 19 deletions
diff --git a/sfx2/source/appl/appopen.cxx b/sfx2/source/appl/appopen.cxx index c54b3e58580b..a4ff9c8fe23f 100644 --- a/sfx2/source/appl/appopen.cxx +++ b/sfx2/source/appl/appopen.cxx @@ -594,7 +594,7 @@ void SfxApplication::OpenDocExec_Impl( SfxRequest& rReq ) // get FileName from dialog std::vector<OUString> aURLList; OUString aFilter; - SfxItemSet* pSet = nullptr; + std::unique_ptr<SfxItemSet> pSet; OUString aPath; const SfxStringItem* pFolderNameItem = rReq.GetArg<SfxStringItem>(SID_PATH); if ( pFolderNameItem ) @@ -648,12 +648,12 @@ void SfxApplication::OpenDocExec_Impl( SfxRequest& rReq ) return; } - rReq.SetArgs( *static_cast<SfxAllItemSet*>(pSet) ); + rReq.SetArgs( *static_cast<SfxAllItemSet*>(pSet.get()) ); if ( !aFilter.isEmpty() ) rReq.AppendItem( SfxStringItem( SID_FILTER_NAME, aFilter ) ); rReq.AppendItem( SfxStringItem( SID_TARGETNAME, "_default" ) ); rReq.AppendItem( SfxStringItem( SID_REFERER, "private:user" ) ); - delete pSet; + pSet.reset(); if(!aURLList.empty()) { diff --git a/sfx2/source/dialog/filedlghelper.cxx b/sfx2/source/dialog/filedlghelper.cxx index c6133a2bf243..016e4ecdbd70 100644 --- a/sfx2/source/dialog/filedlghelper.cxx +++ b/sfx2/source/dialog/filedlghelper.cxx @@ -1387,7 +1387,7 @@ void FileDialogHelper_Impl::implGetAndCacheFiles(const uno::Reference< XInterfac } ErrCode FileDialogHelper_Impl::execute( std::vector<OUString>& rpURLList, - SfxItemSet *& rpSet, + std::unique_ptr<SfxItemSet>& rpSet, OUString& rFilter ) { // rFilter is a pure output parameter, it shouldn't be used for anything else @@ -1403,15 +1403,15 @@ ErrCode FileDialogHelper_Impl::execute( std::vector<OUString>& rpURLList, // check password checkbox if the document had password before if( mbHasPassword ) { - const SfxBoolItem* pPassItem = SfxItemSet::GetItem<SfxBoolItem>(rpSet, SID_PASSWORDINTERACTION, false); + const SfxBoolItem* pPassItem = SfxItemSet::GetItem<SfxBoolItem>(rpSet.get(), SID_PASSWORDINTERACTION, false); mbPwdCheckBoxState = ( pPassItem != nullptr && pPassItem->GetValue() ); // in case the document has password to modify, the dialog should be shown - const SfxUnoAnyItem* pPassToModifyItem = SfxItemSet::GetItem<SfxUnoAnyItem>(rpSet, SID_MODIFYPASSWORDINFO, false); + const SfxUnoAnyItem* pPassToModifyItem = SfxItemSet::GetItem<SfxUnoAnyItem>(rpSet.get(), SID_MODIFYPASSWORDINFO, false); mbPwdCheckBoxState |= ( pPassToModifyItem && pPassToModifyItem->GetValue().hasValue() ); } - const SfxBoolItem* pSelectItem = SfxItemSet::GetItem<SfxBoolItem>(rpSet, SID_SELECTION, false); + const SfxBoolItem* pSelectItem = SfxItemSet::GetItem<SfxBoolItem>(rpSet.get(), SID_SELECTION, false); if ( pSelectItem ) mbSelection = pSelectItem->GetValue(); else @@ -1442,7 +1442,7 @@ ErrCode FileDialogHelper_Impl::execute( std::vector<OUString>& rpURLList, { // create an itemset if there is no if( !rpSet ) - rpSet = new SfxAllItemSet( SfxGetpApp()->GetPool() ); + rpSet.reset(new SfxAllItemSet( SfxGetpApp()->GetPool() )); // the item should remain only if it was set by the dialog rpSet->ClearItem( SID_SELECTION ); @@ -1518,7 +1518,7 @@ ErrCode FileDialogHelper_Impl::execute( std::vector<OUString>& rpURLList, { // ask for a password OUString aDocName(rpURLList[0]); - ErrCode errCode = RequestPassword(pCurrentFilter, aDocName, rpSet, GetFrameInterface()); + ErrCode errCode = RequestPassword(pCurrentFilter, aDocName, rpSet.get(), GetFrameInterface()); if (errCode != ERRCODE_NONE) return errCode; } @@ -2367,7 +2367,7 @@ IMPL_LINK_NOARG(FileDialogHelper, ExecuteSystemFilePicker, void*, void) // rDirPath has to be a directory ErrCode FileDialogHelper::Execute( std::vector<OUString>& rpURLList, - SfxItemSet *& rpSet, + std::unique_ptr<SfxItemSet>& rpSet, OUString& rFilter, const OUString& rDirPath ) { @@ -2381,7 +2381,7 @@ ErrCode FileDialogHelper::Execute() return mpImpl->execute(); } -ErrCode FileDialogHelper::Execute( SfxItemSet *& rpSet, +ErrCode FileDialogHelper::Execute( std::unique_ptr<SfxItemSet>& rpSet, OUString& rFilter ) { ErrCode nRet; @@ -2630,7 +2630,7 @@ ErrCode FileOpenDialog_Impl( weld::Window* pParent, FileDialogFlags nFlags, std::vector<OUString>& rpURLList, OUString& rFilter, - SfxItemSet *& rpSet, + std::unique_ptr<SfxItemSet>& rpSet, const OUString* pPath, sal_Int16 nDialog, const OUString& rStandardDir, diff --git a/sfx2/source/dialog/filedlgimpl.hxx b/sfx2/source/dialog/filedlgimpl.hxx index 23830ddcad84..57f73d5c79e3 100644 --- a/sfx2/source/dialog/filedlgimpl.hxx +++ b/sfx2/source/dialog/filedlgimpl.hxx @@ -177,7 +177,7 @@ namespace sfx2 virtual ~FileDialogHelper_Impl() override; ErrCode execute( std::vector<OUString>& rpURLList, - SfxItemSet *& rpSet, + std::unique_ptr<SfxItemSet>& rpSet, OUString& rFilter ); ErrCode execute(); diff --git a/sfx2/source/doc/guisaveas.cxx b/sfx2/source/doc/guisaveas.cxx index 0e78de6ff18e..ff34b7dcebea 100644 --- a/sfx2/source/doc/guisaveas.cxx +++ b/sfx2/source/doc/guisaveas.cxx @@ -961,18 +961,17 @@ bool ModelData_Impl::OutputFileDialog( sal_Int16 nStoreMode, // generate SidSet from MediaDescriptor and provide it into FileDialog // than merge changed SidSet back - SfxAllItemSet aDialogParams( SfxGetpApp()->GetPool() ); - SfxItemSet* pDialogParams = &aDialogParams; + std::unique_ptr<SfxItemSet> pDialogParams(new SfxAllItemSet( SfxGetpApp()->GetPool() )); TransformParameters( nSlotID, GetMediaDescr().getAsConstPropertyValueList(), - aDialogParams ); + static_cast<SfxAllItemSet&>(*pDialogParams) ); const SfxPoolItem* pItem = nullptr; - if ( bPreselectPassword && aDialogParams.GetItemState( SID_ENCRYPTIONDATA, true, &pItem ) != SfxItemState::SET ) + if ( bPreselectPassword && pDialogParams->GetItemState( SID_ENCRYPTIONDATA, true, &pItem ) != SfxItemState::SET ) { // the file dialog preselects the password checkbox if the provided mediadescriptor has encryption data entry // after dialog execution the password interaction flag will be either removed or not - aDialogParams.Put( SfxBoolItem( SID_PASSWORDINTERACTION, true ) ); + pDialogParams->Put( SfxBoolItem( SID_PASSWORDINTERACTION, true ) ); } // aFilterName is a pure output parameter, pDialogParams is an in/out parameter @@ -986,7 +985,7 @@ bool ModelData_Impl::OutputFileDialog( sal_Int16 nStoreMode, // the following two arguments can not be converted in MediaDescriptor, // so they should be removed from the ItemSet after retrieving - const SfxBoolItem* pRecommendReadOnly = SfxItemSet::GetItem<SfxBoolItem>(pDialogParams, SID_RECOMMENDREADONLY, false); + const SfxBoolItem* pRecommendReadOnly = SfxItemSet::GetItem<SfxBoolItem>(pDialogParams.get(), SID_RECOMMENDREADONLY, false); m_bRecommendReadOnly = ( pRecommendReadOnly && pRecommendReadOnly->GetValue() ); pDialogParams->ClearItem( SID_RECOMMENDREADONLY ); |