[Libreoffice] [PATCH] Base fdo#40079 "file / save (as)" inoperant

Lionel Elie Mamane lionel at mamane.lu
Sat Aug 20 09:32:03 PDT 2011


On Thu, Aug 18, 2011 at 12:52:55PM +0100, Noel Power wrote:
>On 17/08/11 19:02, Lionel Elie Mamane wrote:
>> On Wed, Aug 17, 2011 at 09:48:04AM +0100, Noel Power wrote:
>>> On 16/08/11 17:32, Lionel Elie Mamane wrote:

>> I notice that calc and writer have the good sense of displaying an
>> error message when an exception is raised during save. That's
>> better than Base, that just silently aborts the save with no error
>> message.

>> However, calc seems to get very confused and disables (greys out) the
>> save, close file, quit application, etc features :-|

> then it might be an idea to back out that commit,

I'd rather we fix *that* separate bug cleanly; after all, other
exceptions may by thrown during a save. That commit is only in master
(not libreoffice-3-4) anyway, so we have breathing space.

> it appears the exception here isn't really handled, I think the
> exception is caught ( and ignored ) previously precisely because
> nothing really can be done ( or at least the calling code lacks the
> brains to handle the exception ).

Writer seems to handle it correctly... Also, the exception *is* caught
(file sfx2/source/doc/objserv.cxx function
SfxObjectShell::ExecFile_Impl line 680 in master), as the nice pop-up
error message shows. Probably calc "just" mishandles an error return
value of that function.

That code throws away the message of the exception, though :-(

It will probably be about two weeks before I can look into it.

On Thu, Aug 18, 2011 at 02:06:54PM +0100, Noel Power wrote:
> On 17/08/11 19:02, Lionel Elie Mamane wrote:

>>>> Which leads me to another bug: If I remove the librarie's only
>>>> dialog and save, I restart LO, I reopen the file again, the
>>>> dialog is back.

>> Fixed (by me) in master.

> maybe  a better test would be

> + if ( ! ( xNameAccess->hasElements() || bInplaceStorage ) )

> instead of

> + if ( ! ( xNameAccess->hasElements() || isModified() ) )

I'm not familiar with that code, if you say so, then make that
change.

-- 
Lionel


More information about the LibreOffice mailing list