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 }
Raymond Steele
U-2 Mission Planning
Software Engineer Sr
Lockheed Martin - IS&GS Defense
1300 S. Litchfield Rd.
Goodyear, AZ 85338
Email: [email protected]
Business phone: 623-925-6402