[Libreoffice-commits] core.git: Changes to 'feature/perf-mail-merge'
Jan-Marek Glogowski
glogow at fbihome.de
Thu Aug 25 10:58:56 UTC 2016
New branch 'feature/perf-mail-merge' available with the following commits:
commit 4c370344735f37855f960f00e9809e600e7d8e98
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Thu Aug 11 18:45:21 2016 +0200
MM don't keep undo information
Doen't make much sense to store undo information for all merge
based progress. Actually it even prevents crahes when undoing a
merged ODT document.
Change-Id: Ic3a3982f3e5eb4f6de9f027a6a5e376c2833e8a5
commit c258f99d94fa0597be1ae13b78356db009e849c6
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Thu Aug 11 18:39:20 2016 +0200
Fix SwDoc::AppendDoc for trailing sections
We already treat the StartOfContent node special in the CopyRange
function to prevent merging of SwTextNodes.
For trailing sections, we have to expand the code to treat
EndOfContent special too, because the supplied SwPaM range is
handled as [mark, point[, so it previously missed the section end
node, which resulted in "unhiding" the last section, if it was the
last node in the document.
Change-Id: Ie094e2a0182647a49c9ba45d08a7dd2cabe667c6
commit a517f4f7b583042f84dbb434f5076901b25ac4f8
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Wed Aug 10 12:42:29 2016 +0200
MM block idle-handling of generated documents
We don't need any background idle jobs for the generated documents,
like spell checking, statistics etc.
This can be done when (or even if) the document is presented to the
user as a background task.
Change-Id: I4c72ed6e0d2f90d43e7f04cd0ea4418cbffe1206
commit a406754c8629482cfd759ab4300e904189fd41ca
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Wed Aug 10 11:37:15 2016 +0200
Add SAL_INFOs to dump the SwPageFrame lifecycle
Debug area name is "sw.pageframe".
Change-Id: I136cc8192137a8c682900a6ce2c557f6b6b3a6cd
commit 5aa0b7b42fff62242da9265ceaf66afcec69665c
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Wed Aug 10 11:29:16 2016 +0200
Don't oscillate empty pages in CheckPageDescs
For the first case of dropping "wrong" empty pages,look ahead and
pre-validate the next page, if it needs this empty page, to
prevent case three for the next page.
This prevents destruction and re-insert of the empty page.
Change-Id: I475aa98a2693f814afcc41bd4bc73f04e742c105
commit 7f9c08a375a559bcc25910304e0c105ea3202201
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Wed Aug 10 11:23:23 2016 +0200
Flush the page break for correct layouting
This is a workaround to create correct SwPageFrm objects for
layouting, so the page break is actually visible when
copying nodes, so we create the correct SwPageFrm.
This is especially problematic for mail merge after the fix in
commit 60d34e1c840d2c317bb7d0a5b14f4602c22b3fcc, which -
correctly - checks all later SwPageDesc for every fix done by
CheckPageDescs().
Change-Id: Ie6ea2e9a0587199be4dbaf3ed63a94c29b318ce2
commit 6358aed174d3177a2d0a917a774e4cc31289a38e
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Wed Aug 10 11:06:33 2016 +0200
Use InsertPage in AssertFlyPages
AssertFlyPages used its own code to insert pages. It had two
flaws:
1. It used the SwPageDesc of the previous page, unaware of
changed page description of a new page, which would later
be fixed by CheckPageDescs, eventually requiring re-layout.
2. The Code has an of-by-one error when setting the initial
bOdd, which would also insert wrong / inverse left and
right pages.
So this changes AssertFlyPages to use InsertPage, which has a
little more overhead for inserts, but prevents later expensive
corrections, especially when CheckPageDescs() inserts or removes
"early" pages, which need to evaluate and move all page bound
flys.
Change-Id: I8806cebb26db60602d8438f117e0416e07228b3b
commit 63e7208025a224e7d50e2e381eaf802c2393190d
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Wed Aug 10 10:15:33 2016 +0200
Refactor duplicated code in SwFrame::InsertPage
Change-Id: Iff9a78cf2f5e6ded4d1b03a8303529aa324ddad9
commit ad4434dad723c935e29b4eeda305c9b7a2169b72
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Wed Aug 10 10:05:08 2016 +0200
Fix some variable scopes and clarify names
Helps understanding the code, especially CheckPageDescs().
Change-Id: I53e7d0ea65d6c6ae3da98acba4d366a47d2c4210
commit 5b9731bf032d5b9c18f01a0a73a984ac8461685c
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Wed Aug 10 09:47:40 2016 +0200
Don't re-check valid SwPageDescs when layouting
nCheckPageNum is set to USHRT_MAX, if all SwPageDesc were checked.
Code manipulating SwPageFrm objects checks the pages via
CheckPageDescs(). If this is currently forbidden, CheckPageDescs()
sets nCheckPageNum to the first page to check.
I guess the !pPage check is there to check the pages - at the end,
if someone has missed the CheckPageDescs call. And we have to run
the check, if the current page is unchecked AKA
pPage->GetPhyPageNum() >= nCheckPageNum
to do correct layouting.
Change-Id: Ib67878115cde04b7161c919a67131a1e1dc67d8d
commit c930b5cc4b39da03ef5378c4b3a0ca2a0b0e35d8
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Fri Aug 19 21:32:43 2016 +0200
KDE4: quieten unhandled enum warnings
Change-Id: I814674a3e07fa9c335a4b3e69676c4451b39c275
commit 8fa9629c8882ed4da8f636d8361ebeae3dda2172
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Sat Jul 30 19:18:00 2016 +0200
Use mpSchedulerData for delete and active handling
We define an active task to have a Scheduler::mpSchedulerData
pointer. And if the ImplSchedulerData::mpScheduler pointer is
empty, we can delete the task when scheduling.
This simplifies the scheduling handling.
Change-Id: I7aaddea7f5171b66b7fa309363fc546f97dcb981
commit 9e9820e3827e06e4aca706c96c42e2a966a49328
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Wed Jul 20 10:54:30 2016 +0200
tdf#97087 GDB pretty print the Scheduler task list
In addition to the GDB pretty printer, this annotates a lot more
Timers and Idles.
Change-Id: I5b93fab02161b23bb753e65ef92643a04fb0789c
commit 80cf8c87b9d03265e3e46b3130f45b2ea504f3dc
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Wed Jul 20 10:45:52 2016 +0200
Update Python six to version 1.10.0
Change-Id: If3d6c7c18ffc19da2a4ccc118aa2a2e658f4a719
commit 1c06c6321f11ba5da6f261f34f2217fa1f9c389f
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Fri Nov 15 14:51:09 2013 +0100
KDE4: simplify yielding
QAbstractEventDispatcher::processEvents always processes all
pending events, so we can ignore the the second Yield parameter
(bHandleAllCurrentEvents).
Change-Id: I49a70ed13d0215b89f48eed93d78eef2f083dc0d
commit 086e1486e9f8db83f110dc907fe1bc679cd98bfe
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Fri Jul 22 18:00:59 2016 +0200
Remove now unused SwTextBoxHelper functions
Change-Id: I39500424c79040b1887ea74081fdf0ea0bc5f009
commit 0924ee462bb92bd08544b51312406bda342b9a92
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Fri Jul 22 17:59:28 2016 +0200
Add convenience function getOtherTextBoxFormat
Since we already have isTextBox to identify a text box, this
just adds a call to SwFrameFormat::GetOtherTextBoxFormat() to
actually return the corresponding SwFrameFormat.
This gets rid off all the remaining occurences of the
SwFrameFormat / Textbox sets and maps.
Change-Id: Id5f05a1ff71e604658e7d8a0d0825f5671335b3f
commit 9ffa6348fc144f964936199d738005ec94def52e
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Fri Jul 22 17:50:52 2016 +0200
Switch isTextBox to use the format pointers
This replaces all possible occurences of the text box format
maps, which just want to know, if a SwFrameFormat is part of a
text box to use the direct lookup via the isTextBox, which is
now a cheap call.
Change-Id: I3b4e2301f816aead1b719cd70a8ef118e685ccfc
commit c9d43aca9b760315ab8e262bb2167e9b475f5e73
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Fri Jul 22 17:23:40 2016 +0200
Link DRAW and FLY format for faster textbox lookup
Currently we have to rebuild the list of text boxes for every
lookup. Instead of a managed set, or a per-document list etc.,
this introduces direct pointers between the corresponding
SwDrawFramFormat and SwFlyFrameFormat of a text box.
Change-Id: Iefba2d153d9d8b3f1185aa305e9f463a50e78f89
commit a98f30accd86b829e23da70b66f791547ebdd90e
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Sat Jun 20 20:23:44 2015 +0000
Don't inheritate from boost::multi_index
Drops all using statements and the namespace aliases.
This is more in the spirit of tdf#75757.
Change-Id: Id7c81baea0e2d1af151b7b9bdce8d9fe5f7a2089
commit afedef103784f1fb740b7dd3b314782f9ae9810e
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Fri Apr 10 21:32:36 2015 +0200
Convert SwFrameFormats to boost::multi_index
This is almost the same situation as SwPageDescs. What makes this
more complicated is the fact, that actually duplicated draw objects
are allowed, in regard to the key values "type" and "name".
And actually for some types, duplicate names are not allowed, e.g.
SwDoc::FindFlyByName( const OUString& rName, sal_Int8 nNdTyp )
expects a single result!
Change-Id: I6e0ea1099c1c1e6cfe90926170e27179722e88b8
commit 0cb24368e34ed93643fe08f29f00951c20a86931
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Sun Mar 29 03:04:37 2015 +0200
Convert SwPageDescs to boost::multi_index
Page descriptions are exported via XIndexAccess, so they need a
stable array, currently a vector. On the other hand they are
referred by a unique name, so the lookup in the unsorted array is
O(n), not taking into account the amount of string comparisons.
The multi index container adds an ordered unique index, which
gets the lookup time down to O(log(n)) at the cost of a bit more
management overhead for most operations, which is largely
outweighted by the amount of lookup calls. These anyway have to be
done on insert to guarantee the unique naming.
Change-Id: I3fb892ff524f6a9804d9572c1825074c0810649e
More information about the Libreoffice-commits
mailing list