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