[Libreoffice-commits] core.git: sc/source

Tamas Bunth tamas.bunth at collabora.co.uk
Fri Aug 25 08:39:29 UTC 2017


 sc/source/ui/vba/vbafiledialog.cxx |   23 ++++++++++++++++++-----
 1 file changed, 18 insertions(+), 5 deletions(-)

New commits:
commit 485fcd4f367ebdf5a7494976424e64c7c68ff450
Author: Tamas Bunth <tamas.bunth at collabora.co.uk>
Date:   Thu Aug 24 23:24:11 2017 +0200

    oovbaapi: Use default path for FileDialog
    
    Change-Id: If7af0fc52b8684cca77fd3e85e15ef429801d6dd
    Reviewed-on: https://gerrit.libreoffice.org/41542
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Tamás Bunth <btomi96 at gmail.com>

diff --git a/sc/source/ui/vba/vbafiledialog.cxx b/sc/source/ui/vba/vbafiledialog.cxx
index f9a95cebdb87..0a3a7d33cfa9 100644
--- a/sc/source/ui/vba/vbafiledialog.cxx
+++ b/sc/source/ui/vba/vbafiledialog.cxx
@@ -43,7 +43,18 @@ ScVbaFileDialog::getInitialFileName() { return uno::makeAny( m_sInitialFileName
 
 void ScVbaFileDialog::setInitialFileName( const css::uno::Any& rName )
 {
-    rName >>= m_sInitialFileName;
+    OUString sDefaultPath;
+    OUString sDefaultURL;
+
+    if( rName >>= sDefaultPath )
+    {
+        sal_Int32 eSuccess = osl::FileBase::getFileURLFromSystemPath(
+                sDefaultPath, sDefaultURL ) ;
+        if( eSuccess == osl::FileBase::RC::E_INVAL )
+            m_sInitialFileName = sDefaultPath; // the user may gave it in URL form
+        else
+            m_sInitialFileName = sDefaultURL;
+    }
 }
 
 css::uno::Any ScVbaFileDialog::getTitle() { return uno::makeAny( m_sTitle ); }
@@ -78,9 +89,10 @@ sal_Int32 ScVbaFileDialog::Show()
                         ui::dialogs::FilePicker::createWithMode(
                                 mxContext, ui::dialogs::TemplateDescription::FILEOPEN_SIMPLE );
 
-                // TODO set initial directory
+                if( !m_sInitialFileName.isEmpty() )
+                    xFilePicker->setDisplayDirectory( m_sInitialFileName );
 
-                if( xFilePicker->execute() != ui::dialogs::ExecutableDialogResults::OK)
+                if( xFilePicker->execute() != ui::dialogs::ExecutableDialogResults::OK )
                 {
                     nRet = 0; // cancel pressed
                     break;
@@ -100,9 +112,10 @@ sal_Int32 ScVbaFileDialog::Show()
                 uno::Reference< ui::dialogs::XFolderPicker2 > xFolderPicker =
                         ui::dialogs::FolderPicker::create(mxContext);
 
-                // TODO set initial directory
+                if( !m_sInitialFileName.isEmpty() )
+                    xFolderPicker->setDisplayDirectory( m_sInitialFileName );
 
-                if( xFolderPicker->execute() != ui::dialogs::ExecutableDialogResults::OK)
+                if( xFolderPicker->execute() != ui::dialogs::ExecutableDialogResults::OK )
                 {
                     nRet = 0; // cancel pressed
                     break;


More information about the Libreoffice-commits mailing list