fpicker/source/office/OfficeFilePicker.cxx  |   43 +-------------
 fpicker/source/office/OfficeFilePicker.hxx  |    1 
 fpicker/source/office/RemoteFilesDialog.cxx |   10 ---
 fpicker/source/office/RemoteFilesDialog.hxx |    2 
 fpicker/source/office/fpdialogbase.hxx      |    2 
 fpicker/source/office/iodlg.cxx             |   81 ----------------------------
 fpicker/source/office/iodlg.hxx             |    2 
 fpicker/source/office/iodlgimp.cxx          |    7 --
 fpicker/source/office/iodlgimp.hxx          |    2 
 include/sfx2/filedlghelper.hxx              |    6 +-
 include/sfx2/sfxsids.hrc                    |    1 
 sc/source/ui/xmlsource/xmlsourcedlg.cxx     |    9 +--
 sfx2/source/appl/appopen.cxx                |    8 --
 sfx2/source/appl/appuno.cxx                 |   18 ------
 sfx2/source/dialog/filedlghelper.cxx        |   33 ++++-------
 sfx2/source/dialog/filedlgimpl.hxx          |    4 -
 sfx2/source/doc/guisaveas.cxx               |   21 ++-----
 sfx2/source/doc/objstor.cxx                 |    1 
 18 files changed, 36 insertions(+), 215 deletions(-)

New commits:
commit 7bc7ff06d7e6bd34063e22d41b07f81e3b9fd255
Author:     Samuel Mehrbrodt <samuel.mehrbr...@allotropia.de>
AuthorDate: Fri Apr 11 19:39:27 2025 +0200
Commit:     Samuel Mehrbrodt <samuel.mehrbr...@allotropia.de>
CommitDate: Thu May 8 16:43:42 2025 +0200

    Remove "StandardDir"
    
    This was supposed to set some kind of "default directory" for file pickers.
    It was never implemented for anything except the "gen" vcl plugin - and
    is also not really needed.
    
    Change-Id: I94c6ff04984fc7b1d600530dc26bd8a7672646cd
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184064
    Reviewed-by: Samuel Mehrbrodt <samuel.mehrbr...@allotropia.de>
    Tested-by: Jenkins

diff --git a/fpicker/source/office/OfficeFilePicker.cxx 
b/fpicker/source/office/OfficeFilePicker.cxx
index 5117d18042df..86bf58ed6fe4 100644
--- a/fpicker/source/office/OfficeFilePicker.cxx
+++ b/fpicker/source/office/OfficeFilePicker.cxx
@@ -160,12 +160,6 @@ void SvtFilePicker::prepareExecute()
             m_xDlg->SetHasFilename( true );
         }
     }
-    else
-    {
-        // set the default standard dir
-        INetURLObject aStdDirObj( SvtPathOptions().GetWorkPath() );
-        m_xDlg->SetPath( aStdDirObj.GetMainURL( 
INetURLObject::DecodeMechanism::NONE ) );
-    }
 
     // set the control values and set the control labels, too
     if ( m_pElemList && !m_pElemList->empty() )
@@ -440,14 +434,7 @@ std::shared_ptr<SvtFileDialog_Base> 
SvtFilePicker::implCreateDialog( weld::Windo
     PickerFlags nBits = getPickerFlags();
 
     auto dialog = o3tl::make_shared<SvtFileDialog>(pParent, nBits);
-
-    // Set StandardDir if present
-    if ( !m_aStandardDir.isEmpty())
-    {
-        OUString sStandardDir = m_aStandardDir;
-        dialog->SetStandardDir( sStandardDir );
-        dialog->SetDenyList( m_aDenyList );
-    }
+    dialog->SetDenyList( m_aDenyList );
 
     return dialog;
 }
@@ -952,19 +939,7 @@ void SAL_CALL SvtFilePicker::initialize( const Sequence< 
Any >& _rArguments )
             if (aArguments[i] >>= namedValue )
             {
 
-                if ( namedValue.Name == "StandardDir" )
-                {
-                    OUString sStandardDir;
-
-                    namedValue.Value >>= sStandardDir;
-
-                    // Set the directory for the "back to the default dir" 
button
-                    if ( !sStandardDir.isEmpty() )
-                    {
-                        m_aStandardDir = sStandardDir;
-                    }
-                }
-                else if ( namedValue.Name == "DenyList" )
+                if ( namedValue.Name == "DenyList" )
                 {
                     namedValue.Value >>= m_aDenyList;
                 }
@@ -985,11 +960,6 @@ bool SvtFilePicker::implHandleInitializationArgument( 
const OUString& _rName, co
         OSL_VERIFY( _rValue >>= m_nServiceType );
         return true;
     }
-    if ( _rName == "StandardDir" )
-    {
-        OSL_VERIFY( _rValue >>= m_aStandardDir );
-        return true;
-    }
 
     if ( _rName == "DenyList" )
     {
@@ -1042,14 +1012,7 @@ std::shared_ptr<SvtFileDialog_Base> 
SvtRemoteFilePicker::implCreateDialog(weld::
     PickerFlags nBits = getPickerFlags();
 
     auto dialog = std::make_shared<RemoteFilesDialog>(pParent, nBits);
-
-    // Set StandardDir if present
-    if ( !m_aStandardDir.isEmpty())
-    {
-        OUString sStandardDir = m_aStandardDir;
-        dialog->SetStandardDir( sStandardDir );
-        dialog->SetDenyList( m_aDenyList );
-    }
+    dialog->SetDenyList( m_aDenyList );
 
     return dialog;
 }
diff --git a/fpicker/source/office/OfficeFilePicker.hxx 
b/fpicker/source/office/OfficeFilePicker.hxx
index 4bac2df4be33..17875b3c64f8 100644
--- a/fpicker/source/office/OfficeFilePicker.hxx
+++ b/fpicker/source/office/OfficeFilePicker.hxx
@@ -70,7 +70,6 @@ protected:
     OUString            m_aOldDisplayDirectory;
     OUString            m_aOldHideDirectory;
 
-    OUString            m_aStandardDir;
     css::uno::Sequence< OUString >
                         m_aDenyList;
 
diff --git a/fpicker/source/office/RemoteFilesDialog.cxx 
b/fpicker/source/office/RemoteFilesDialog.cxx
index 9bc424d604c3..80af593e4076 100644
--- a/fpicker/source/office/RemoteFilesDialog.cxx
+++ b/fpicker/source/office/RemoteFilesDialog.cxx
@@ -931,16 +931,6 @@ const css::uno::Sequence< OUString >& 
RemoteFilesDialog::GetDenyList() const
     return m_aDenyList;
 }
 
-void RemoteFilesDialog::SetStandardDir( const OUString& rStdDir )
-{
-    m_sStdDir = rStdDir;
-}
-
-const OUString& RemoteFilesDialog::GetStandardDir() const
-{
-    return m_sStdDir;
-}
-
 void RemoteFilesDialog::SetPath( const OUString& rNewURL )
 {
     m_sPath = rNewURL;
diff --git a/fpicker/source/office/RemoteFilesDialog.hxx 
b/fpicker/source/office/RemoteFilesDialog.hxx
index 8c4fa0a4cbb3..910c18e1634c 100644
--- a/fpicker/source/office/RemoteFilesDialog.hxx
+++ b/fpicker/source/office/RemoteFilesDialog.hxx
@@ -62,8 +62,6 @@ public:
     virtual void SetHasFilename( bool ) override;
     virtual void SetDenyList( const css::uno::Sequence< OUString >& rDenyList 
) override;
     virtual const css::uno::Sequence< OUString >& GetDenyList() const override;
-    virtual void SetStandardDir( const OUString& rStdDir ) override;
-    virtual const OUString& GetStandardDir() const override;
     virtual void SetPath( const OUString& rNewURL ) override;
     virtual const OUString& GetPath() override;
     virtual std::vector<OUString> GetPathList() const override;
diff --git a/fpicker/source/office/fpdialogbase.hxx 
b/fpicker/source/office/fpdialogbase.hxx
index c57633cebb6f..d4dc7dd32dcc 100644
--- a/fpicker/source/office/fpdialogbase.hxx
+++ b/fpicker/source/office/fpdialogbase.hxx
@@ -69,8 +69,6 @@ public:
     virtual void SetHasFilename( bool bHasFilename ) = 0;
     virtual void SetDenyList( const css::uno::Sequence< OUString >& rDenyList 
) = 0;
     virtual const css::uno::Sequence< OUString >& GetDenyList() const = 0;
-    virtual void SetStandardDir( const OUString& rStdDir ) = 0;
-    virtual const OUString& GetStandardDir() const = 0;
     virtual void SetPath( const OUString& rNewURL ) = 0;
     virtual const OUString& GetPath() = 0;
     virtual std::vector<OUString> GetPathList() const = 0;
diff --git a/fpicker/source/office/iodlg.cxx b/fpicker/source/office/iodlg.cxx
index 09a246424c5d..11c6ac1a73d2 100644
--- a/fpicker/source/office/iodlg.cxx
+++ b/fpicker/source/office/iodlg.cxx
@@ -259,18 +259,6 @@ namespace
         aWorkPathObj.setFinalSlash();
         return  aWorkPathObj.GetMainURL( INetURLObject::DecodeMechanism::NONE 
);
     }
-
-
-    /** retrieves the value of an environment variable
-        @return <TRUE/> if and only if the retrieved string value is not empty
-    */
-    bool getEnvironmentValue( const char* _pAsciiEnvName, OUString& _rValue )
-    {
-        _rValue.clear();
-        OUString sEnvName = OUString::createFromAscii( _pAsciiEnvName );
-        osl_getEnvironment( sEnvName.pData, &_rValue.pData );
-        return !_rValue.isEmpty();
-    }
 }
 
 // SvtFileDialog
@@ -327,10 +315,6 @@ SvtFileDialog::SvtFileDialog(weld::Window* pParent, 
PickerFlags nStyle)
     if (nStyle & PickerFlags::PathDialog)
         m_xImpl->m_eDlgType = FILEDLG_TYPE_PATHDLG;
 
-    // Set the directory for the "back to the default dir" button
-    INetURLObject aStdDirObj( SvtPathOptions().GetWorkPath() );
-    SetStandardDir( aStdDirObj.GetMainURL( 
INetURLObject::DecodeMechanism::NONE ) );
-
     // Create control element, the order defines the tab control.
     m_xImpl->m_xEdFileName->connect_changed( LINK( this, SvtFileDialog, 
EntrySelectHdl_Impl ) );
     m_xImpl->m_xEdFileName->connect_entry_activate( LINK( this, SvtFileDialog, 
OpenUrlHdl_Impl ) );
@@ -1472,37 +1456,6 @@ bool SvtFileDialog::PrepareExecute()
     if (comphelper::LibreOfficeKit::isActive())
         return false;
 
-    OUString aEnvValue;
-    if ( getEnvironmentValue( "WorkDirMustContainRemovableMedia", aEnvValue ) 
&& aEnvValue == "1" )
-    {
-        try
-        {
-            INetURLObject aStdDir( GetStandardDir() );
-            ::ucbhelper::Content aCnt( aStdDir.GetMainURL(
-                                                    
INetURLObject::DecodeMechanism::NONE ),
-                                 Reference< XCommandEnvironment >(),
-                                 comphelper::getProcessComponentContext() );
-            Sequence< OUString > aProps { u"IsVolume"_ustr, 
u"IsRemoveable"_ustr };
-
-            Reference< XResultSet > xResultSet
-                = aCnt.createCursor( aProps, ::ucbhelper::INCLUDE_FOLDERS_ONLY 
);
-            if ( xResultSet.is() && !xResultSet->next() )
-            {
-                static constexpr ErrMsgCode ids[]
-                    = { { STR_SVT_NOREMOVABLEDEVICE, ERRCODE_IO_INVALIDDEVICE 
}, { {}, {} } };
-                SfxErrorHandler handler(ids, ErrCodeArea::Io, ErrCodeArea::Io, 
FpsResLocale());
-                ErrorHandler::HandleError(ERRCODE_IO_INVALIDDEVICE, 
m_xDialog.get());
-                return false;
-            }
-        }
-        catch ( ContentCreationException const & )
-        {
-        }
-        catch ( CommandAbortedException const & )
-        {
-        }
-    }
-
     if ( ( m_xImpl->m_nStyle & PickerFlags::SaveAs ) && m_bHasFilename )
         // when doing a save-as, we do not want the handler to handle "this 
file does not exist" messages
         // - finally we're going to save that file, aren't we?
@@ -1520,20 +1473,16 @@ bool SvtFileDialog::PrepareExecute()
         aFileNameOnly = m_aPath;
         m_aPath.clear();
     }
-
     // no starting path specified?
     if ( m_aPath.isEmpty() )
     {
         // then use the standard directory
-        m_aPath = lcl_ensureFinalSlash( m_xImpl->GetStandardDir() );
-
+        m_aPath = lcl_ensureFinalSlash( SvtPathOptions().GetWorkPath() );
         // attach given filename to path
         if ( !aFileNameOnly.isEmpty() )
             m_aPath += aFileNameOnly;
     }
-
-
-    m_aPath = implGetInitialURL( m_aPath, GetStandardDir() );
+    m_aPath = implGetInitialURL( m_aPath, SvtPathOptions().GetWorkPath() );
 
     if ( m_xImpl->m_nStyle & PickerFlags::SaveAs && !m_bHasFilename )
         // when doing a save-as, we do not want the handler to handle "this 
file does not exist" messages
@@ -1668,18 +1617,6 @@ void SvtFileDialog::FilterSelect()
 }
 
 
-/*  [Description]
-
-   This method sets the path for the default button.
-*/
-void SvtFileDialog::SetStandardDir( const OUString& rStdDir )
-{
-    INetURLObject aObj( rStdDir );
-    SAL_WARN_IF( aObj.GetProtocol() == INetProtocol::NotValid, 
"fpicker.office", "Invalid protocol!" );
-    aObj.setFinalSlash();
-    m_xImpl->SetStandardDir( aObj.GetMainURL( 
INetURLObject::DecodeMechanism::NONE ) );
-}
-
 void SvtFileDialog::SetDenyList( const css::uno::Sequence< OUString >& 
rDenyList )
 {
     m_xImpl->SetDenyList( rDenyList );
@@ -1691,17 +1628,6 @@ const css::uno::Sequence< OUString >& 
SvtFileDialog::GetDenyList() const
     return m_xImpl->GetDenyList();
 }
 
-
-/*  [Description]
-
-    This method returns the standard path.
-*/
-const OUString& SvtFileDialog::GetStandardDir() const
-{
-    return m_xImpl->GetStandardDir();
-}
-
-
 void SvtFileDialog::PrevLevel_Impl()
 {
     m_xFileView->EndInplaceEditing();
@@ -2303,9 +2229,6 @@ void SvtFileDialog::appendDefaultExtension(OUString& 
rFileName,
 
 void SvtFileDialog::initDefaultPlaces( )
 {
-    PlacePtr pRootPlace = std::make_shared<Place>( 
FpsResId(STR_DEFAULT_DIRECTORY), GetStandardDir() );
-    m_xImpl->m_xPlaces->AppendPlace( pRootPlace );
-
     // Load from user settings
     Sequence< OUString > 
placesUrlsList(officecfg::Office::Common::Misc::FilePickerPlacesUrls::get());
     Sequence< OUString > 
placesNamesList(officecfg::Office::Common::Misc::FilePickerPlacesNames::get());
diff --git a/fpicker/source/office/iodlg.hxx b/fpicker/source/office/iodlg.hxx
index e920d7deba91..0965380aabec 100644
--- a/fpicker/source/office/iodlg.hxx
+++ b/fpicker/source/office/iodlg.hxx
@@ -158,8 +158,6 @@ public:
 
     void                        SetDenyList( const css::uno::Sequence< 
OUString >& rDenyList ) override;
     const css::uno::Sequence< OUString >& GetDenyList() const override;
-    void                        SetStandardDir( const OUString& rStdDir ) 
override;
-    const OUString&             GetStandardDir() const override;
     std::vector<OUString>       GetPathList() const override;        // for 
MultiSelection
 
             void                AddFilter( const OUString& rFilter,
diff --git a/fpicker/source/office/iodlgimp.cxx 
b/fpicker/source/office/iodlgimp.cxx
index 70a050183ca5..2d436788b73e 100644
--- a/fpicker/source/office/iodlgimp.cxx
+++ b/fpicker/source/office/iodlgimp.cxx
@@ -132,13 +132,6 @@ SvtExpFileDlg_Impl::~SvtExpFileDlg_Impl()
 {
 }
 
-void SvtExpFileDlg_Impl::SetStandardDir( const OUString& _rDir )
-{
-    m_aStdDir = _rDir;
-    if (m_aStdDir.isEmpty())
-        m_aStdDir = "file:///";
-}
-
 namespace {
     OUString lcl_DecoratedFilter( std::u16string_view _rOriginalFilter )
     {
diff --git a/fpicker/source/office/iodlgimp.hxx 
b/fpicker/source/office/iodlgimp.hxx
index e34c2710205e..3936cabc3bc2 100644
--- a/fpicker/source/office/iodlgimp.hxx
+++ b/fpicker/source/office/iodlgimp.hxx
@@ -157,8 +157,6 @@ public:
 
     void             SetDenyList( const css::uno::Sequence< OUString >& 
rDenyList ) { m_aDenyList = rDenyList; }
     const css::uno::Sequence< OUString >& GetDenyList() const { return 
m_aDenyList; }
-    void                    SetStandardDir( const OUString& rDir );
-    const OUString&  GetStandardDir() const { return m_aStdDir; }
 
     // access to the filter listbox only as weld::Widget* - we want to 
maintain the entries/userdata ourself
     weld::Widget* GetFilterListControl() { return m_xLbFilter.get(); }
diff --git a/include/sfx2/filedlghelper.hxx b/include/sfx2/filedlghelper.hxx
index fb7de160dbc1..602e9a7d9068 100644
--- a/include/sfx2/filedlghelper.hxx
+++ b/include/sfx2/filedlghelper.hxx
@@ -164,7 +164,7 @@ public:
                                              sal_Int16 nDialog,
                                              SfxFilterFlags nMust,
                                              SfxFilterFlags nDont,
-                                             const OUString& rStandardDir,
+                                             const OUString& rPreselectedDir,
                                              const css::uno::Sequence< 
OUString >& rDenyList,
                                              weld::Window* pPreferredParent);
 
@@ -172,7 +172,7 @@ public:
                                              FileDialogFlags nFlags,
                                              const OUString& aFilterUIName,
                                              std::u16string_view aExtName,
-                                             const OUString& rStandardDir,
+                                             const OUString& rPreselectedDir,
                                              const css::uno::Sequence< 
OUString >& rDenyList,
                                              weld::Window* pPreferredParent);
 
@@ -301,7 +301,7 @@ ErrCode FileOpenDialog_Impl( weld::Window* pParent,
                              std::optional<SfxAllItemSet>& rpSet,
                              const OUString* pPath,
                              sal_Int16 nDialog,
-                             const OUString& rStandardDir,
+                             const OUString& rPreselectedDir,
                              const css::uno::Sequence< OUString >& rDenyList,
                              std::optional<bool>& rShowFilterDialog );
 
diff --git a/include/sfx2/sfxsids.hrc b/include/sfx2/sfxsids.hrc
index 625d59e21aba..2f02ef2d259d 100644
--- a/include/sfx2/sfxsids.hrc
+++ b/include/sfx2/sfxsids.hrc
@@ -175,7 +175,6 @@ class SvxZoomItem;
 #define SID_REMOTE_DIALOG                   
TypedWhichId<SfxBoolItem>(SID_SFX_START + 305)
 #define SID_PATH                            
TypedWhichId<SfxStringItem>(SID_SFX_START + 308)
 #define SID_SAVEDOCS                        (SID_SFX_START + 309)
-#define SID_STANDARD_DIR                    
TypedWhichId<SfxStringItem>(SID_SFX_START + 450)
 #define SID_DENY_LIST                       
TypedWhichId<SfxStringListItem>(SID_SFX_START + 451)
 
 // browse-ids
diff --git a/sc/source/ui/xmlsource/xmlsourcedlg.cxx 
b/sc/source/ui/xmlsource/xmlsourcedlg.cxx
index 17cc4b928baa..65047b7e0e4b 100644
--- a/sc/source/ui/xmlsource/xmlsourcedlg.cxx
+++ b/sc/source/ui/xmlsource/xmlsourcedlg.cxx
@@ -164,20 +164,19 @@ void ScXMLSourceDlg::SelectSourceFile()
                                       FileDialogFlags::NONE, m_xDialog.get());
     aDlgHelper.SetContext(sfx2::FileDialogHelper::CalcXMLSource);
 
-    uno::Reference<ui::dialogs::XFilePicker3> xFilePicker = 
aDlgHelper.GetFilePicker();
-
     // Use the directory of current source file.
     INetURLObject aURL(maSrcPath);
     aURL.removeSegment();
     aURL.removeFinalSlash();
     OUString aPath = aURL.GetMainURL(INetURLObject::DecodeMechanism::NONE);
-    xFilePicker->setDisplayDirectory(aPath);
 
-    if (xFilePicker->execute() != ui::dialogs::ExecutableDialogResults::OK)
+    if (!aPath.isEmpty())
+        aDlgHelper.SetDisplayFolder(aPath);
+    if (aDlgHelper.Execute() != ERRCODE_NONE)
         // File picker dialog cancelled.
         return;
 
-    uno::Sequence<OUString> aFiles = xFilePicker->getSelectedFiles();
+    uno::Sequence<OUString> aFiles = aDlgHelper.GetSelectedFiles();
     if (!aFiles.hasElements())
         return;
 
diff --git a/sfx2/source/appl/appopen.cxx b/sfx2/source/appl/appopen.cxx
index 1f91c3ea5be6..57978b099609 100644
--- a/sfx2/source/appl/appopen.cxx
+++ b/sfx2/source/appl/appopen.cxx
@@ -644,12 +644,6 @@ void SfxApplication::OpenDocExec_Impl( SfxRequest& rReq )
             nDialogType = ui::dialogs::TemplateDescription::FILEOPEN_SIMPLE;
         }
 
-        OUString sStandardDir;
-
-        const SfxStringItem* pStandardDirItem = 
rReq.GetArg<SfxStringItem>(SID_STANDARD_DIR);
-        if ( pStandardDirItem )
-            sStandardDir = pStandardDirItem->GetValue();
-
         css::uno::Sequence< OUString >  aDenyList;
 
         const SfxStringListItem* pDenyListItem = 
rReq.GetArg<SfxStringListItem>(SID_DENY_LIST);
@@ -661,7 +655,7 @@ void SfxApplication::OpenDocExec_Impl( SfxRequest& rReq )
         ErrCode nErr = sfx2::FileOpenDialog_Impl(pTopWindow,
                 nDialogType,
                 eDialogFlags, aURLList,
-                aFilter, pSet, &aPath, nDialog, sStandardDir, aDenyList, 
bShowFilterDialog);
+                aFilter, pSet, &aPath, nDialog, "", aDenyList, 
bShowFilterDialog);
 
         if ( nErr == ERRCODE_ABORT )
         {
diff --git a/sfx2/source/appl/appuno.cxx b/sfx2/source/appl/appuno.cxx
index c989a1c14a82..6edfe6ea26d3 100644
--- a/sfx2/source/appl/appuno.cxx
+++ b/sfx2/source/appl/appuno.cxx
@@ -139,7 +139,6 @@ constexpr OUString sCopyStreamIfPossible = 
u"CopyStreamIfPossible"_ustr;
 constexpr OUString sNoAutoSave = u"NoAutoSave"_ustr;
 constexpr OUString sFolderName = u"FolderName"_ustr;
 constexpr OUString sUseSystemDialog = u"UseSystemDialog"_ustr;
-constexpr OUString sStandardDir = u"StandardDir"_ustr;
 constexpr OUString sDenyList = u"DenyList"_ustr;
 constexpr OUString sModifyPasswordInfo = u"ModifyPasswordInfo"_ustr;
 constexpr OUString sSuggestedSaveAsDir = u"SuggestedSaveAsDir"_ustr;
@@ -614,14 +613,6 @@ void TransformParameters( sal_uInt16 nSlotId, const 
uno::Sequence<beans::Propert
                 if (bOK)
                     rSet.Put( SfxBoolItem( SID_FILE_DIALOG, bVal ) );
             }
-            else if ( aName == sStandardDir )
-            {
-                OUString sVal;
-                bool bOK = ((rProp.Value >>= sVal) && !sVal.isEmpty());
-                DBG_ASSERT( bOK, "invalid type or value for StandardDir" );
-                if (bOK)
-                    rSet.Put( SfxStringItem( SID_STANDARD_DIR, sVal ) );
-            }
             else if ( aName == sDenyList )
             {
                 uno::Sequence<OUString> xVal;
@@ -1003,8 +994,6 @@ void TransformItems( sal_uInt16 nSlotId, const SfxItemSet& 
rSet, uno::Sequence<b
                 nAdditional++;
             if ( rSet.GetItemState( SID_FILE_DIALOG ) == SfxItemState::SET )
                 nAdditional++;
-            if ( rSet.GetItemState( SID_STANDARD_DIR ) == SfxItemState::SET )
-                nAdditional++;
             if ( rSet.GetItemState( SID_DENY_LIST ) == SfxItemState::SET )
                 nAdditional++;
             if ( rSet.GetItemState( SID_CONTENT ) == SfxItemState::SET )
@@ -1217,8 +1206,6 @@ void TransformItems( sal_uInt16 nSlotId, const 
SfxItemSet& rSet, uno::Sequence<b
                         continue;
                     if ( nId == SID_FILE_DIALOG )
                         continue;
-                    if ( nId == SID_STANDARD_DIR )
-                        continue;
                     if ( nId == SID_DENY_LIST )
                         continue;
                     if ( nId == SID_CONTENTTYPE )
@@ -1547,11 +1534,6 @@ void TransformItems( sal_uInt16 nSlotId, const 
SfxItemSet& rSet, uno::Sequence<b
             pValue[nActProp].Name = sUseSystemDialog;
             pValue[nActProp++].Value <<= pItem->GetValue();
         }
-        if ( const SfxStringItem *pItem = rSet.GetItemIfSet( SID_STANDARD_DIR, 
false) )
-        {
-            pValue[nActProp].Name = sStandardDir;
-            pValue[nActProp++].Value <<= pItem->GetValue();
-        }
         if ( const SfxStringListItem *pItem = rSet.GetItemIfSet( 
SID_DENY_LIST, false) )
         {
             pValue[nActProp].Name = sDenyList;
diff --git a/sfx2/source/dialog/filedlghelper.cxx 
b/sfx2/source/dialog/filedlghelper.cxx
index 45db87be30ab..406d913c5f12 100644
--- a/sfx2/source/dialog/filedlghelper.cxx
+++ b/sfx2/source/dialog/filedlghelper.cxx
@@ -923,10 +923,10 @@ FileDialogHelper_Impl::FileDialogHelper_Impl(
     FileDialogFlags nFlags,
     sal_Int16 nDialog,
     weld::Window* pFrameWeld,
-    const OUString& sStandardDir,
+    const OUString& sPreselectedDir,
     const css::uno::Sequence< OUString >& rDenyList
     )
-    :msStandardDir         ( sStandardDir )
+    :msPreselectedDir( sPreselectedDir )
     ,maPreviewIdle("sfx2 FileDialogHelper_Impl maPreviewIdle")
     ,m_nDialogType          ( nDialogType )
     ,meContext              ( FileDialogHelper::UnknownContext )
@@ -1124,7 +1124,7 @@ FileDialogHelper_Impl::FileDialogHelper_Impl(
 
         auto xWindow = GetFrameInterface();
 
-        Sequence < Any > aInitArguments(!xWindow.is() ? 3 : 4);
+        Sequence < Any > aInitArguments(!xWindow.is() ? 2 : 3);
         auto pInitArguments = aInitArguments.getArray();
 
         // This is a hack. We currently know that the internal file picker 
implementation
@@ -1146,18 +1146,13 @@ FileDialogHelper_Impl::FileDialogHelper_Impl(
                                 );
 
             pInitArguments[1] <<= NamedValue(
-                                    u"StandardDir"_ustr,
-                                    Any( sStandardDir )
-                                );
-
-            pInitArguments[2] <<= NamedValue(
                                     u"DenyList"_ustr,
                                     Any( rDenyList )
                                 );
 
 
             if (xWindow.is())
-                pInitArguments[3] <<= NamedValue(u"ParentWindow"_ustr, 
Any(xWindow));
+                pInitArguments[2] <<= NamedValue(u"ParentWindow"_ustr, 
Any(xWindow));
         }
 
         try
@@ -2224,7 +2219,7 @@ void FileDialogHelper_Impl::saveConfig()
     }
 
     // Store to config, if explicit context is set (and default directory is 
not given)
-    if (meContext != FileDialogHelper::UnknownContext && 
msStandardDir.isEmpty())
+    if (meContext != FileDialogHelper::UnknownContext && 
msPreselectedDir.isEmpty())
     {
         SaveLastDirectory(FileDialogHelper::contextToString(meContext), 
getPath());
     }
@@ -2235,10 +2230,10 @@ OUString 
FileDialogHelper_Impl::getInitPath(std::u16string_view _rFallback,
 {
     OUString sPath;
     // Load from config, if explicit context is set. Otherwise load from 
(global) runtime var.
-    if (meContext == FileDialogHelper::UnknownContext || 
!msStandardDir.isEmpty())
+    if (meContext == FileDialogHelper::UnknownContext || 
!msPreselectedDir.isEmpty())
     {
         // For export, the default directory is passed on
-        sPath = msStandardDir;
+        sPath = msPreselectedDir;
     }
     else
     {
@@ -2483,11 +2478,11 @@ FileDialogHelper::FileDialogHelper(
     sal_Int16 nDialog,
     SfxFilterFlags nMust,
     SfxFilterFlags nDont,
-    const OUString& rStandardDir,
+    const OUString& rPreselectedDir,
     const css::uno::Sequence< OUString >& rDenyList,
     weld::Window* pPreferredParent)
     :   m_nError(0),
-        mpImpl( new FileDialogHelper_Impl( this, nDialogType, nFlags, nDialog, 
pPreferredParent, rStandardDir, rDenyList ) )
+        mpImpl( new FileDialogHelper_Impl( this, nDialogType, nFlags, nDialog, 
pPreferredParent, rPreselectedDir, rDenyList ) )
 {
     // create the list of filters
     mpImpl->addFilters(
@@ -2505,11 +2500,11 @@ FileDialogHelper::FileDialogHelper(
     FileDialogFlags nFlags,
     const OUString& aFilterUIName,
     std::u16string_view aExtName,
-    const OUString& rStandardDir,
+    const OUString& rPreselectedDir,
     const css::uno::Sequence< OUString >& rDenyList,
     weld::Window* pPreferredParent )
     :   m_nError(0),
-        mpImpl( new FileDialogHelper_Impl( this, nDialogType, nFlags, 
SFX2_IMPL_DIALOG_CONFIG, pPreferredParent, rStandardDir, rDenyList ) )
+        mpImpl( new FileDialogHelper_Impl( this, nDialogType, nFlags, 
SFX2_IMPL_DIALOG_CONFIG, pPreferredParent, rPreselectedDir, rDenyList ) )
 {
     // the wildcard here is expected in form "*.extension"
     OUString aWildcard;
@@ -2947,7 +2942,7 @@ ErrCode FileOpenDialog_Impl( weld::Window* pParent,
                              std::optional<SfxAllItemSet>& rpSet,
                              const OUString* pPath,
                              sal_Int16 nDialog,
-                             const OUString& rStandardDir,
+                             const OUString& rPreselectedDir,
                              const css::uno::Sequence< OUString >& rDenyList,
                              std::optional<bool>& rShowFilterDialog )
 {
@@ -2957,9 +2952,9 @@ ErrCode FileOpenDialog_Impl( weld::Window* pParent,
     // read-only to discourage editing (which would invalidate existing
     // signatures).
     if (nFlags & FileDialogFlags::SignPDF)
-        pDialog.reset(new FileDialogHelper(nDialogType, nFlags, 
SfxResId(STR_SFX_FILTERNAME_PDF), u"pdf", rStandardDir, rDenyList, pParent));
+        pDialog.reset(new FileDialogHelper(nDialogType, nFlags, 
SfxResId(STR_SFX_FILTERNAME_PDF), u"pdf", rPreselectedDir, rDenyList, pParent));
     else
-        pDialog.reset(new FileDialogHelper(nDialogType, nFlags, OUString(), 
nDialog, SfxFilterFlags::NONE, SfxFilterFlags::NONE, rStandardDir, rDenyList, 
pParent));
+        pDialog.reset(new FileDialogHelper(nDialogType, nFlags, OUString(), 
nDialog, SfxFilterFlags::NONE, SfxFilterFlags::NONE, rPreselectedDir, 
rDenyList, pParent));
 
     OUString aPath;
     if ( pPath )
diff --git a/sfx2/source/dialog/filedlgimpl.hxx 
b/sfx2/source/dialog/filedlgimpl.hxx
index 3f0e23c29156..e1df015ba44f 100644
--- a/sfx2/source/dialog/filedlgimpl.hxx
+++ b/sfx2/source/dialog/filedlgimpl.hxx
@@ -62,7 +62,7 @@ namespace sfx2
         OUString             maCurFilter;
         OUString             maSelectFilter;
         OUString             maButtonLabel;
-        OUString             msStandardDir;
+        OUString             msPreselectedDir;
 
         Idle                        maPreviewIdle;
         Graphic                     maGraphic;
@@ -175,7 +175,7 @@ namespace sfx2
                                     FileDialogFlags nFlags,
                                     sal_Int16 nDialog,
                                     weld::Window* pFrameWeld,
-                                    const OUString& sStandardDir = OUString(),
+                                    const OUString& sPreselectedDir = 
OUString(),
                                     const css::uno::Sequence< OUString >&   
rDenyList = css::uno::Sequence< OUString >()
                                 );
         virtual                 ~FileDialogHelper_Impl() override;
diff --git a/sfx2/source/doc/guisaveas.cxx b/sfx2/source/doc/guisaveas.cxx
index 048bfffc3780..fe2c519e3fcb 100644
--- a/sfx2/source/doc/guisaveas.cxx
+++ b/sfx2/source/doc/guisaveas.cxx
@@ -339,7 +339,6 @@ public:
                                 bool bPreselectPassword,
                                 OUString& aSuggestedDir,
                                 sal_Int16 nDialog,
-                                OUString& rStandardDir,
                                 const css::uno::Sequence<OUString>& rDenyList,
                                 SignatureState const nScriptingSignatureState
                                 );
@@ -896,7 +895,6 @@ bool ModelData_Impl::OutputFileDialog( sal_Int16 nStoreMode,
                                             bool bPreselectPassword,
                                             OUString& aSuggestedDir,
                                             sal_Int16 nDialog,
-                                            OUString& rStandardDir,
                                             const 
css::uno::Sequence<OUString>& rDenyList,
                                             SignatureState const 
nScriptingSignatureState)
 {
@@ -956,6 +954,7 @@ bool ModelData_Impl::OutputFileDialog( sal_Int16 nStoreMode,
     SfxFilterFlags nMust = getMustFlags( nStoreMode );
     SfxFilterFlags nDont = getDontFlags( nStoreMode );
     weld::Window* pFrameWin = SfxStoringHelper::GetModelWindow(m_xModel);
+    OUString sPreselectedDir;
     if ( ( nStoreMode & EXPORT_REQUESTED ) && !( nStoreMode & 
WIDEEXPORT_REQUESTED ) )
     {
         const OUString aBaseUrl = 
GetDocProps().getUnpackedValueOrDefault("DocumentBaseURL", OUString());
@@ -964,26 +963,26 @@ bool ModelData_Impl::OutputFileDialog( sal_Int16 
nStoreMode,
         aObj.removeSegment();
         aExportDir = aObj.GetMainURL( INetURLObject::DecodeMechanism::NONE );
         if (!aExportDir.isEmpty())
-            rStandardDir = aExportDir;
+            sPreselectedDir = aExportDir;
         if ( ( nStoreMode & PDFEXPORT_REQUESTED ) && 
!aPreselectedFilterPropsHM.empty() )
         {
             // this is a PDF export
             // the filter options has been shown already
             const OUString aFilterUIName = 
aPreselectedFilterPropsHM.getUnpackedValueOrDefault( u"UIName"_ustr, OUString() 
);
-            pFileDlg.reset(new sfx2::FileDialogHelper( aDialogMode, 
aDialogFlags, aFilterUIName, u"pdf", rStandardDir, rDenyList, pFrameWin ));
+            pFileDlg.reset(new sfx2::FileDialogHelper( aDialogMode, 
aDialogFlags, aFilterUIName, u"pdf", sPreselectedDir, rDenyList, pFrameWin ));
             pFileDlg->SetCurrentFilter( aFilterUIName );
         }
         else if ((nStoreMode & EPUBEXPORT_REQUESTED) && 
!aPreselectedFilterPropsHM.empty())
         {
             // This is an EPUB export, the filter options has been shown 
already.
             const OUString aFilterUIName = 
aPreselectedFilterPropsHM.getUnpackedValueOrDefault( u"UIName"_ustr, OUString() 
);
-            pFileDlg.reset(new sfx2::FileDialogHelper(aDialogMode, 
aDialogFlags, aFilterUIName, u"epub", rStandardDir, rDenyList, pFrameWin));
+            pFileDlg.reset(new sfx2::FileDialogHelper(aDialogMode, 
aDialogFlags, aFilterUIName, u"epub", sPreselectedDir, rDenyList, pFrameWin));
             pFileDlg->SetCurrentFilter(aFilterUIName);
         }
         else
         {
             // This is the normal dialog
-            pFileDlg.reset(new sfx2::FileDialogHelper( aDialogMode, 
aDialogFlags, aDocServiceName, nDialog, nMust, nDont, rStandardDir, rDenyList, 
pFrameWin ));
+            pFileDlg.reset(new sfx2::FileDialogHelper( aDialogMode, 
aDialogFlags, aDocServiceName, nDialog, nMust, nDont, sPreselectedDir, 
rDenyList, pFrameWin ));
         }
 
         sfx2::FileDialogHelper::Context eCtxt = 
sfx2::FileDialogHelper::UnknownContext;
@@ -1013,7 +1012,7 @@ bool ModelData_Impl::OutputFileDialog( sal_Int16 
nStoreMode,
     {
         // This is the normal save as dialog
         pFileDlg.reset(new sfx2::FileDialogHelper( aDialogMode, aDialogFlags, 
aDocServiceName, nDialog,
-            nMust, nDont, rStandardDir, rDenyList, pFrameWin ));
+            nMust, nDont, sPreselectedDir, rDenyList, pFrameWin ));
         pFileDlg->CreateMatcher( aDocServiceName );
 
         sfx2::FileDialogHelper::Context eCtxt = 
sfx2::FileDialogHelper::UnknownContext;
@@ -1709,12 +1708,6 @@ bool 
SfxStoringHelper::FinishGUIStoreModel(::comphelper::SequenceAsHashMap::cons
         if ( aSuggestedName.isEmpty() )
             aSuggestedName = 
aModelData.GetDocProps().getUnpackedValueOrDefault(u"SuggestedSaveAsName"_ustr, 
OUString() );
 
-        OUString sStandardDir;
-        ::comphelper::SequenceAsHashMap::const_iterator aStdDirIter =
-            aModelData.GetMediaDescr().find( u"StandardDir"_ustr );
-        if ( aStdDirIter != aModelData.GetMediaDescr().end() )
-            aStdDirIter->second >>= sStandardDir;
-
         css::uno::Sequence< OUString >  aDenyList;
 
         ::comphelper::SequenceAsHashMap::const_iterator aDenyListIter =
@@ -1725,7 +1718,7 @@ bool 
SfxStoringHelper::FinishGUIStoreModel(::comphelper::SequenceAsHashMap::cons
         for (;;)
         {
             // in case the dialog is opened a second time the folder should be 
the same as previously navigated to by the user, not what was handed over by 
initial parameters
-            bUseFilterOptions = aModelData.OutputFileDialog(nStoreMode, 
aFilterProps, bSetStandardName, aSuggestedName, bPreselectPassword, 
aSuggestedDir, nDialog, sStandardDir, aDenyList, nScriptingSignatureState);
+            bUseFilterOptions = aModelData.OutputFileDialog( nStoreMode, 
aFilterProps, bSetStandardName, aSuggestedName, bPreselectPassword, 
aSuggestedDir, nDialog, aDenyList, nScriptingSignatureState );
             if ( nStoreMode == SAVEAS_REQUESTED )
             {
                 // in case of saving check filter for possible alien warning
diff --git a/sfx2/source/doc/objstor.cxx b/sfx2/source/doc/objstor.cxx
index 593af4c9dbb4..ad85ccc65b08 100644
--- a/sfx2/source/doc/objstor.cxx
+++ b/sfx2/source/doc/objstor.cxx
@@ -3219,7 +3219,6 @@ bool SfxObjectShell::CommonSaveAs_Impl(const 
INetURLObject& aURL, const OUString
         SfxItemSet& rSet = GetMedium()->GetItemSet();
         rSet.ClearItem( SID_INTERACTIONHANDLER );
         rSet.ClearItem( SID_PROGRESS_STATUSBAR_CONTROL );
-        rSet.ClearItem( SID_STANDARD_DIR );
         rSet.ClearItem( SID_PATH );
 
         if ( !bSaveTo )

Reply via email to