https://bz.apache.org/ooo/show_bug.cgi?id=123544
--- Comment #25 from brinzing <[email protected]> --- i think there is a "workaround" for the "setDisplayDirectory" problem: setting "/org.openoffice.Office.Common/Path/Info.WorkPathChanged" = true seems to force the folder change. see attached macro for details. VistaFilePickerImpl.cxx: void VistaFilePickerImpl::impl_sta_SetDirectory(const RequestRef& rRequest) { bool bForce = rRequest->getArgumentOrDefault(PROP_FORCE, false); [...] if ( m_bInExecute || bForce ) iDialog->SetFolder(pFolder); } VistaFilePicker.cxx: void SAL_CALL VistaFilePicker::setDisplayDirectory(const ::rtl::OUString& sDirectory) { [..] bool bChanged(false); if (( aValue >>= bChanged ) && bChanged ) { ::comphelper::ConfigurationHelper::writeDirectKey( m_xSMGR, aPackage, aRelPath, aKey, css::uno::makeAny(false), ::comphelper::ConfigurationHelper::E_STANDARD); } [...] rRequest->setArgument(PROP_FORCE, bChanged); } OPTION EXPLICIT Sub Main() Call TestSetdialog("file:///d:/test") Call TestSetdialog("file:///d:/temp") Call TestSetdialog("file:///d:/test") Call TestSetdialog("file:///d:/temp") End Sub Sub TestSetdialog(ByVal sPath as String) Dim dlg as Object Dim oDoc as Object Dim mNoArgs() Dim sURL as String dlg = CreateUnoService( "com.sun.star.ui.dialogs.FilePicker" ) Dim Dialogtyp(0) DialogTyp(0) = com.sun.star.ui.dialogs.TemplateDescription.FILESAVE_AUTOEXTENSION dlg.initialize(DialogTyp()) dlg.Title = "Test" sURL = "private:factory/swriter" oDoc = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, mNoArgs) Dim oConfigProvider as Object Dim oRegistryKeyContent as Object Dim aNodePath(0) as new com.sun.star.beans.PropertyValue oConfigProvider = createUnoService("com.sun.star.configuration.ConfigurationProvider") aNodePath(0).Name = "nodepath" aNodePath(0).Value = "/org.openoffice.Office.Common/Path/Info" oRegistryKeyContent = oConfigProvider.createInstanceWithArguments("com.sun.star.configuration.ConfigurationUpdateAccess", aNodePath()) oRegistryKeyContent.WorkPathChanged = true oRegistryKeyContent.commitChanges dlg.DisplayDirectory = sPath If dlg.Execute = 1 Then sURL = dlg.Files(0) oDoc.storeAsURL(sURL, mNoArgs) EndIf End Sub -- You are receiving this mail because: You are the assignee for the issue. You are on the CC list for the issue.
