Client code in sw, sd, sc and svx is adapted, the rest is just a
placeholder for now.
With this, e.g. the undo item for Writer's insert comment properly
tracks which window was used for the insertion.
Change-Id: Idad587e6ca07ba69bf59aa7013b251af8bf95bab
Reviewed-on: https://gerrit.libreoffice.org/27781
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
... to ODF packages. Somehow this is even skipped sometimes, but it's
much easier to just turn off the silliness than find out why.
Change-Id: Iff509dfd8325fd517e6434bcb56edbd06a3c27f1
... so it actually gets disabled in menu or removed from context menu if we say
so. Used with disallowing Paste for Ctrl+A selection or protected cells.
Change-Id: I7d5f8bdc7b7adee65d08b93ddee015aef953d95d
triggered by change...
commit f9bb13419549d621ffd55d9d81e0732a89560e2e
Author: Juergen Funk <juergen.funk_ml@cib.de>
Date: Fri May 13 10:42:17 2016 +0200
tdf#99815 use XNotifyingDispatch in sfx2
which allowed the problem introduced by...
commit d0c3c24da2506bff1719a276f2eff34589fa7663
Author: Kohei Yoshida <kohei.yoshida@gmail.com>
Date: Wed Jun 6 01:28:55 2012 -0400
Check if the system window has a close handler, and if yes, call it.
This allows the close event in the preview window to be handled in a
custom fashion, instead of having it call the normal "close window"
command.
to show up
Change-Id: I5c46fb7a49ae44fd748b5b7192aeb951c7d65191
at the moment AddonsOptions::Notify is called with a null this
which crashes during adding an extension
regression from...
commit 3bdc5063f942b9ea3b6e39e707926fbc516c19f9
Date: Wed Jun 22 02:30:43 2016 +0200
tdf#89329: use shared_ptr for pImpl in addonsoptions
Change-Id: Ic28951e56bb8beca2a01ef2a1864eadcf3864e5b
maDisabledURLs is a set, aDisabledURLs is a sequence, the intention is
to copy the set into the sequence, not to copy the (empty) set into
itself.
Change-Id: Ib262e863b1f1aa4c455bd7552df3dc2c3f73a400
Reviewed-on: https://gerrit.libreoffice.org/26765
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
The auto-recovery service maintains a list of structures (one for each open
document) containing information needed to carry out the auto-save
functionality. One such piece of information is the location of the backup
file, stored in a struct member named 'OldTempURL'. At every auto-save
interval, this list is iterated through and a function (implts_saveOneDoc)
is called during each iteration to save the current state of the associated
document.
The algorithm works as follows:
1. A new backup file URL is chosen so as not to conflict with any already
existing backup files in the backup directory. This URL is based on the
file name and incorporates a number (starting at 0) that is incremented
until a name is chosen that doesn't conflict.
2. The document is saved to this new backup file URL
3. The previous backup file (indicated by its structure's 'OldTempURL') is
deleted
4. The new backup file URL is stored (in its structure's 'OldTempURL') for the
next time the file needs to be saved.
Assuming you start with a new Writer doc and then make some changes, when it is
time to auto-save, the backup file name 'untitled_0.odt' (excluding path) will
be selected, the latest state of the open file will be written to that backup
file, and the full URL for the backup file will be saved into the struct
'OldTempURL' member.
The next time changes are made and an auto-save occurs, this algorithm will
result in the name 'untitled_1.odt' being selected, the file contents saved
into this new file, 'untitled_0.odt' being deleted, and the full URL for the
new backup file being saved in 'OldTempURL'.
The third time through results in 'untitled_0.odt' being selected (since this
file doesn't exist on disk), and subsequent iterations of auto-saving cause
the backup file name to alternate between the two aforementioned.
The problem occurs during a 'Save as' operation. When this happens, the backup
file is deleted (which is fine - it was just saved, and the next auto-save will
back it up) but 'OldTempURL' is not properly reset (see below for more info.)
During the next auto-save, 'untitled_0.odt' will be selected for the new backup
file name (since no file exists by this name), and one of two things will
happen (based on how many auto-saves have occurred):
1. 'OldTempURL' points to 'untitled_1.odt', and the algorithm above continues
to work correctly (at least in that it continues to backup file contents.)
2. 'OldTempURL' points to 'untitled_0.odt', the name chosen for the new backup
file. In this case, the document contents will be saved to this file
(step 2) but then the file will be deleted (step 3). 'OldTempURL' will
maintain this URL from then on out, causing this case to be hit for all
future auto-save intervals.
So, 50% of the time (30 minutes out of every hour) auto-save will stop backing
up file contents on a 'Save as'.
The function that handles the 'Save as' case (implts_markDocumentAsSaved)
clears 'OldTempURL' and sets other relavent struct members for a local variable
copy of the global struct, but doesn't copy them back. :( These changes are
effectively lost when the function returns.
There are several other cases where this appears to be happening as well, but
more work is needed to determine whether this is actually the case:
- implts_prepareSessionShutdown
- implts_saveDocs, handling the 'dangerousDocs' and in a few other places
- implts_openDocs
- implts_resetHandleStates
Also, there is some JUnitTest code for auto-save, but it is currently disabled
(and fails to run successfully.) It'd be great to get these working again, or
to just write python equivalents. Implementing this would like take me a while,
though, so for now I just tested manually to ensure that this fixes the issue.
When I have some more time I'd like to work more on this, but I wanted to send
this patch in for now to address bug #96607.
This may also address bug #99890, since some of the struct members that don't
make it into the global state relate to the file name. I haven't explicitly
tested this case, though.
Change-Id: Ic702d6f78e60c7cf828a1564ccca118dd45d152b
Reviewed-on: https://gerrit.libreoffice.org/25948
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: jan iversen <jani@documentfoundation.org>
some places are marked with "dodgy"- need to check those to see
what is going on, because they are leaving dangling pointers behind
in the Menu class
Change-Id: I41d5c7c0fec2f70ce9e3ffdc48cd03d26c0a869b
Reviewed-on: https://gerrit.libreoffice.org/26516
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
but stop basic execution on the exit attempt, and then resend exit at a safe
place when basic execution has stopped
Change-Id: I77c43acffa0b82e8125dcb3b10ad9bf0d6dd26c3
No idea how one managed to trigger this. The only way I see is
to add the save button to one of the custom shapes dropdowns.
The ToolBox there has mpData->mbWillUsePopupMode set to true,
which causes ToolBarManager to call the update method of the
controller twice. update registers additional modify listener
each time, but there is only one "remove listener" call in
dispose.
Change-Id: I2a1d6e02f6d8b6bc847fb7694fffa6e85b1f5604
See 747a0fdda2a7723c2f8a8a022b468bcf29c700e3
("SaveToolbarController: Better support of readonly docs")
for the background. However this doesn't work, because
the save slot is disabled in other cases too, not just for
r/o docs (e.g. locked UI during file save, or when cond.
formatting window open in Calc).
Until a better solution is found, at least make sure that
the button is disabled, instead of going into the normal
save mode, which doesn't work.
Change-Id: If6e1b91b7c780fffac22cdb25c82bbd0a8520dc4
- move DispatchHelper somewhere public
- use it from generic dispatcher call sites in sfx2
- return result of dispatcher calls (conveyed via
XDispatchResultListener) to calling code, instead of faking it
Change-Id: Ie8041133e99dd99e45819f98798829b96532b9e6
Reviewed-on: https://gerrit.libreoffice.org/24953
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
triggered when I noticed a class doing acquire() in the
constructor and then release() in the destructor.
found mostly by
git grep -n -B5 -e '->release()'
Change-Id: I96e43a3d30ffd9ae9a34275f24cd914d8f7b026f
Reviewed-on: https://gerrit.libreoffice.org/25806
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
When it is saving a impress file, the status indicator sometimes receives
lower values, that it is reflected to client side a flash to the progress bar.
Change-Id: Ib3e8499357984843650c8d897c7b1d6baeb65ff6
Reviewed-on: https://gerrit.libreoffice.org/24326
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: jan iversen <jani@documentfoundation.org>
The odd one out is the usage in Formula, which attempts
to restore focus to a particular window identified by
an unique id. In this case restore focus by keeping a VclPtr
to the desired window.
Change-Id: I1dc335325c109d75745c6bba2e12662e6ae50638