summaryrefslogtreecommitdiff
path: root/framework
AgeCommit message (Collapse)AuthorFilesLines
2016-06-23tdf#96607 'Save as' doesn't update global auto-recovery stateanwilli51-0/+13
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>
2016-06-23tdf#97527 - vcl: reference-count MenuNoel Grandin14-88/+87
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>
2016-06-22Resolves: tdf#88985 block app from exiting during macro executionCaolán McNamara2-0/+35
but stop basic execution on the exit attempt, and then resend exit at a safe place when basic execution has stopped Change-Id: I77c43acffa0b82e8125dcb3b10ad9bf0d6dd26c3
2016-06-20Remove unused includesStephan Bergmann1-1/+0
Change-Id: I25bb67449c8c572075d354e62b1c731e95655b4f
2016-06-20Try to fix the crashreport with SaveToolbarController::modifiedMaxim Monastirsky1-9/+0
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
2016-06-17Simplify OPropertyContainerHelper::registerPropertyNoMember's _pInitialValueStephan Bergmann1-2/+1
Change-Id: Ibfb27b3eded45e2646dada37ce3663f427985ae9
2016-06-17SaveToolbarController: back to using XStorableMaxim Monastirsky1-21/+27
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
2016-06-14the __RSC hack is only needed in src files and things included from src filesCaolán McNamara1-2/+0
Change-Id: I50c122426030ba5b508dcd6ac33464ecab154981
2016-06-13Fix typosAndrea Gelmini2-2/+2
Change-Id: Ic3efae53430fbb2c1eb7962c3cf69bf99315e55b Reviewed-on: https://gerrit.libreoffice.org/26202 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: jan iversen <jani@documentfoundation.org>
2016-06-10Clean up uses of Any::getValue() in frameworkStephan Bergmann1-8/+6
Change-Id: I55982944bf2ee3d9aa6899bcc59e94f9342b4036
2016-06-09tdf#99815 fixups after XNotifyingDispatchJuergen Funk1-2/+1
- remove unused variable - check of given parameter over constructor Change-Id: If506ef9065c67da35f672466e1e49f82e2a5a678 Reviewed-on: https://gerrit.libreoffice.org/26093 Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2016-06-09Try to get rid of svt::ContextMenuHelperMaxim Monastirsky1-2/+1
Change-Id: I7b43e417607b20c300e3c18e7da76a6173a18b7d Reviewed-on: https://gerrit.libreoffice.org/26098 Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com> Tested-by: Jenkins <ci@libreoffice.org>
2016-06-08remove some manual ref-counting in frameworkNoel Grandin1-10/+5
Change-Id: I469439abfa4e9dcd29f2d1693b03d37b3d61c81e Reviewed-on: https://gerrit.libreoffice.org/26047 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-06-08tdf#99815 use XNotifyingDispatch in sfx2Juergen Funk5-137/+51
- 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>
2016-06-07gtk3: move the updating of native menu to right after its activatedCaolán McNamara1-2/+0
try fix that view->toolbars isn't in sync Change-Id: I095be3003f076193878f2c3ce2a2be5acbe0e33f
2016-06-06remove unused fieldNoel Grandin1-1/+0
Change-Id: Ic8c9b50f496ee97da3f03af966005f28c37ff7e9
2016-06-06remove unused imports in java codeNoel Grandin1-6/+0
Change-Id: I95041f49dd22ba9a15da3598b04a010eecf761a8
2016-06-06remove some manual ref-countingNoel Grandin2-6/+10
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>
2016-06-03Teach loplugin:stringconstant about RTL_CONSTASCII_STRINGPARAMStephan Bergmann1-10/+10
Change-Id: I8ff0e104aad045f3835dc8facc760a8339b1d088
2016-06-03Add initial CppunitTest_framework_dispatchMiklos Vajna3-0/+250
Fails with commit 08cf2fd01064306eef7fdbb5b62320947c4d1089 (framework: last dispatchInterceptor gets asked first, 2016-05-20) reverted. Change-Id: I0e025a5d8996ecafa6b2fef753d6134079936b00 Reviewed-on: https://gerrit.libreoffice.org/25808 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2016-06-03loplugin:refcounting (RequestFilterSelect_Impl derives from XInterface)Stephan Bergmann1-7/+2
Change-Id: Iabf9b94626b599b4fe799523b3523e18df5203c5
2016-06-03tdf#89329: use unique_ptr for pImpl in interactionXisco Fauli1-6/+6
Change-Id: I21ad7278f7978e7eebf6962fdf1fac2d3cb2bddb Reviewed-on: https://gerrit.libreoffice.org/25637 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-06-02loplugin:unusedfieldsNoel Grandin2-3/+1
Change-Id: Ieed5f4d9411478d2568b8e5f4bbe0782bd1d309d Reviewed-on: https://gerrit.libreoffice.org/25724 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-06-01remove unused SID constants and associated codeNoel Grandin1-2/+1
found with a python script that looks like: process = subprocess.Popen( "git ls-files *.hrc | xargs grep -hE '#define +SID_' | cut -d ' ' -f 2 | sort -u", shell=True, stdout=subprocess.PIPE) for line in iter(process.stdout.readline, b''): line = line.strip() if line.startswith("//"): continue if line.startswith("sfx"): continue if len(line) < 10: continue i = subprocess.check_output("git grep -nP \"#define +" + line + " \"", shell=True) if i.count("#define") < 2: continue print line + " " + i Change-Id: I40eac2569c2b5b129d9459cb723a9d6f26d09264 Reviewed-on: https://gerrit.libreoffice.org/25715 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-30Convert DialogCancelMode to scoped enumNoel Grandin1-1/+1
Change-Id: I7aca03334c6609a8729bbc88ada6ecce4309c21d Reviewed-on: https://gerrit.libreoffice.org/25607 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-26lokit: ensure progress value sequentialHenry Castro1-1/+1
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>
2016-05-25sw: replace boost::shared_array with std::shared_ptrMichael Stahl1-1/+0
Change-Id: I99eec60db7f6d586b3b424661e03a7891422ab2e
2016-05-25(nearly) nothing uses GetUniqueId anymore, so remove it.Caolán McNamara4-31/+0
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
2016-05-25convert ImageType to scoped enumNoel Grandin3-55/+49
and drop duplicate definition in framework. Change-Id: I6cb95241e659ad58429bffeaaf2f95b07ad12df6 Reviewed-on: https://gerrit.libreoffice.org/25400 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-25Fix typosAndrea Gelmini1-2/+2
Change-Id: I860cc4aa04b4e5cd1437b2f24176ee2ccdec3266 Reviewed-on: https://gerrit.libreoffice.org/25420 Reviewed-by: Noel Grandin <noelgrandin@gmail.com> Tested-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-25tdf#98753 Find Toolbar does not display "Search key not found"Samuel Mehrbrodt1-7/+22
Revert "Toolbar: Refactor insert toolitem code" This reverts commit 27bdc70d83d4a4f1ebb89429f61b39084e739aaa. Change-Id: I1d46cddfd656ab8c809b6cd6308725a8e67fe538 Reviewed-on: https://gerrit.libreoffice.org/25433 Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> Tested-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2016-05-24Revert "remove some manual ref-counting"Noel Grandin2-5/+6
until I have a better understanding of the UNO reference counting. This reverts commit 111de438ea3e512a541281dc0716cc728ea8d152.
2016-05-24remove some manual ref-countingNoel Grandin2-6/+5
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: Ie1abeaed75c1f861df185e3bde680272dbadc97f Reviewed-on: https://gerrit.libreoffice.org/25363 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-23framework: last dispatchInterceptor gets asked firstThorsten Behrens1-9/+8
Align implementation with API contract as spelled out in offapi/com/sun/star/frame/XDispatchProviderInterception.idl - no idea why this change happenend in 2003: Date: Fri Apr 4 16:16:05 2003 +0000 INTEGRATION: CWS fwk01 (1.1.72); FILE MERGED 2003/04/01 12:40:09 as 1.1.72.1: #107642# change order of used interception objects At any rate, with this change extensions actually get a chance to see dispatch requests first, and process/ignore at will. Change-Id: I58876150ee6d67e592f41b3e82a9ffc314e091a3 Reviewed-on: https://gerrit.libreoffice.org/25215 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2016-05-20framework: avoid excessive queryDispatch callsThorsten Behrens1-7/+14
Make better use of the css::frame::XInterceptorInfo interface, to avoid calling queryDispatch() pointlessly on interfaces that have explicitely opted out. Since that already broadcasts which urls we're interested in - so just don't bother calling entries who are not matching. Change-Id: Id5e780568fd60c38f4cee4ee800d747d65a31dae Reviewed-on: https://gerrit.libreoffice.org/25214 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2016-05-20clang-tidy misc-assign-operator-signatureNoel Grandin8-8/+11
Change-Id: I2953a88d9e2f5923732865ef17615d5928ac5f5f Reviewed-on: https://gerrit.libreoffice.org/25154 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-19clang-tidy misc-unused-alias-declsNoel Grandin1-1/+0
Change-Id: Iabde7a84b9c2758e0d2b2ffe0fb99fcfa51ff124 Reviewed-on: https://gerrit.libreoffice.org/25075 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-19Fix unnecessary indent.Jan Holesovsky1-9/+11
Change-Id: Icf60f59e997afba28ac5115f7d7c4709a3f11a4a
2016-05-19tdf#99926 Add "Save as template" to Save dropdownSamuel Mehrbrodt1-15/+24
Change-Id: Ia594e69e46253eb2db4fcf27ca108323a3d45f5f Reviewed-on: https://gerrit.libreoffice.org/25113 Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> Tested-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2016-05-18update unusedmethods plugin to deal with constructorsNoel Grandin9-830/+0
and fix the operator< implementations in some of the other plugins too. Change-Id: Ie5631e0cdc8d2a994ad2af2533cdb558a6cfc035 Reviewed-on: https://gerrit.libreoffice.org/25057 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-16Resolves: tdf#99857 missing items from toolbar right clickCaolán McNamara2-15/+6
we do an activate/deactivate to force the vcl menu to update so we have a full model before we try to show the gtk one. This particular toplevel menu has a deactivate handler which empties out the submenus on the deactivate, so we don't get the full thing, so we end up with missing entries. The Deactivate to empty the menu is a bit dubious. Even if we limited the activate/deactivate to submenus we still get the deactivate before the "select" so the ordering is fragile. The Deactivate handler seems dubious anyway, why not just clear it out after the Execute has finished which is simpler and more direct anyway dde83e3cea5b5fc1f91ebd336a2071ce8ff75e75 Change-Id: I56145f6236db1787cc4ee623c513cb927bf2a972
2016-05-12framework: register DispatchDisabler serviceMiklos Vajna1-0/+3
Change-Id: I72d9f8b00ba8b2e4e5dc70d7fd77e13ccf9d3bcc Reviewed-on: https://gerrit.libreoffice.org/24940 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2016-05-12framework: initial implementation of a dispatch disabler.Michael Meeks6-3/+295
This should allow remote, eg. URE dispatchers to trivially disable lots of the UI without requiring a large volume of round-trip IPC. Change-Id: Ibd0681ac993196f826b4ed411da5ffedb7f85786 Reviewed-on: https://gerrit.libreoffice.org/24938 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2016-05-11Include cppumaker-generated .hpp, not .hdlStephan Bergmann1-1/+1
Change-Id: Ib0451f26edbfbcdfdca78caa97bd09bc65ec2782
2016-05-10Convert TOOLBOX_MENUTYPE_ to scoped enumNoel Grandin3-6/+6
Change-Id: I8eb25fc274b45b8add04dfc03e4b52f130ad04de Reviewed-on: https://gerrit.libreoffice.org/24827 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-10Convert StatusBarItemBits to scoped enumNoel Grandin5-32/+32
Change-Id: Ic979d1470052039c4b966edd1d896af31ef55668 Reviewed-on: https://gerrit.libreoffice.org/24826 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-10convert WINDOWSTATE_MASK to scoped enumNoel Grandin2-4/+1
Change-Id: Ic8259d81d8080c518aa07697e253a59cd6efaa4b
2016-05-04LoadEnv::getTargetComponent() is supposed to return nothingMaxim Monastirsky1-0/+1
... if loading the document failed. Make sure that's the case also when the frame containing BackingComp was about to be recycled. Can be tested by trying to open password-protected odt, but canceling the password prompt. Change-Id: I733357b3a961fd88db010dd8eb89e01f0cad10fa
2016-05-01tdf#97499 Fixed containers parameters clearing #8tymyjan1-2/+2
Change-Id: I82ca89ac483e9742be0d38a3c6882a240c7c38d8 Reviewed-on: https://gerrit.libreoffice.org/24499 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
2016-04-28framework: CheckXTitle still sometimes fails on WNT...Michael Stahl1-0/+2
... when dispatching the .uno:CloseWin. Change-Id: Iaf0651ea7e05bd8a6629d5af6e62f5918ef241ce