On 14.02.2014 23:06, Steele, Raymond wrote:

We are attempting to use the newly build OpenOffice 4.0.1 for Solaris 11 x86, but the 'Save As' to disk of any document type (i.e. .ods) continuous to prompt for a file name. Each time we hit okay to save the document after supplying a unique name, the FilePicker closes, but instantly reappears again.

I have narrowed it down to the following code located in sfx2/source/doc/guisaveas.cxx lines 1497-1520

The program gets stuck in the while loop below. The variable 'bExit' is never set to sal_True, so the loop continuous. I provide a name to the FilePicker interface, click Save and the loop continuous, redisplaying the dialog. To resolve the issue, I added bExit = sal_True after line 1513 so that the loop discontinuous. I am not sure if this will have effects in other situations, maybe someone can provide some feedback, but for now. I am able to save.

sal_Bool bExit = sal_False;

1497       while ( !bExit )

1498       {

1499 bUseFilterOptions = aModelData.OutputFileDialog( nStoreMode, aFilterProps, bSetStandardName, aSuggestedName, bPreselectPassword, aSuggestedDir, nDialog, sStandardDir, aBlackList );

1500

1501 // in case the dialog is opend a second time the folder should be the same as before, not what was handed over by parameters

1502       aSuggestedDir = ::rtl::OUString();

1503       if ( nStoreMode == SAVEAS_REQUESTED )

1504       {

1505       // in case of saving check filter for possible alien warning

1506 ::rtl::OUString aSelFilterName = aModelData.GetMediaDescr().getUnpackedValueOrDefault(

1507       aFilterNameString,

1508       ::rtl::OUString() );

1509 sal_Int8 nStatusFilterSave = aModelData.CheckFilter( aSelFilterName );

1510 if ( nStatusFilterSave == STATUS_SAVEAS_STANDARDNAME ) These are equal during runtime

1511       {

1512       // switch to best filter

1513 bSetStandardName = sal_True; bSetStandardName is set to sal_True here, but bExit is not, so the loop continuous. Setting bExit following this line allows the program to save.

++++++bExit = salTrue;

1514       }

1515       else if ( nStatusFilterSave == STATUS_SAVE )

1516       {

1517       // user confirmed alien filter or "good" filter is used

1518       bExit = sal_True;

1519       }

1520       }

1521       else

1522       bExit = sal_True;

1523       }


I tried this on Windows7. I come through the "else if" (line 1518). When saving a Writer document aSelFilterName is "writer8". What is the value in your case?

-Andre

Raymond Steele

U-2 Mission Planning

Software Engineer Sr

Lockheed Martin -- IS&GS Defense

1300 S. Litchfield Rd.

Goodyear, AZ 85338

Email: raymond.ste...@lmco.com

Business phone:  623-925-6402


Reply via email to