Age | Commit message (Collapse) | Author |
|
As said in the comment, the non-single-file mode could create way too many print
jobs, so enable this only for the CUPS backend, which has been modified
to send them as a single batch.
Change-Id: I4c02ca0e8b91323b1d02f004c7b4813433064a11
|
|
It should be sufficient for every record to just update the fields and print
the document. The printing code apparently rather expects to do the printing
in one go, so split the functions up there.
Change-Id: I4d17c703b3220f47609fc4b054ce048b299a0c92
|
|
These are public in the base class.
Change-Id: I839ffe56a835f99c2812cffb60804b74aaa9c5ac
|
|
The singlefile mode needs a new copy for every record, because it modifies
it (such as changing fields to text), but the non-singlefile mode does not
need all that relatively expensive work, because it just updates the fields
and nothing else.
Change-Id: If02cf8aca1d0f050ffb63cd85d5a9455afc5a6ea
|
|
Change-Id: I1360e215bff42dd866ab1d94a18a8f2f9ddc7c66
|
|
Change-Id: Ib67b804423b521407710f8319cb89977e44494cc
|
|
Now that it's possible to quickly find anchored objects for a node,
it's actually faster to check the node hiearchy rather than layout.
Conflicts:
sw/source/core/doc/doclay.cxx
Change-Id: I5f93d5af32c744f1773535e5ec8537334d1ff58a
|
|
The SwFrmFmtAnchorMap class provides reverse mapping
to SwFrmFmt::GetAnchor().GetCntntAnchor(), so that when code somewhere needs
to update SwFrmFmt's anchored at a position, it's not necessary to iterate
over all of them (which can be a large number e.g. with mail merge).
One special catch with the multimap of SwNodeIndex keys is that
the values of those keys change (whenever the node structure of the document
changes, indexes of nodes change as a result). This makes it impossible to use
any hashing container, as the hashes would change without the container
noticing, but multimap should work fine, as it just requires that the keys
remain sorted, and that is the case. Nevertheless, the old code in the two
converted places is intentionally left there in debug mode to verify the reverse
mapping is updated correctly.
I intentionally went with SwNodeIndex rather than SwPosition, as SwIndex
(the other component of SwPosition) was causing some trouble (see e.g. the
SwPosition comparison operator< , where two same positions are different if one
is registered and the other not) and it doesn't appear to be actually necessary.
Conflicts:
sw/inc/doc.hxx
sw/inc/frmfmt.hxx
sw/source/core/attr/swatrset.cxx
sw/source/core/doc/docnew.cxx
sw/source/core/inc/frmtool.hxx
sw/source/core/layout/atrfrm.cxx
sw/source/core/txtnode/ndtxt.cxx
Change-Id: I7f1768558f60155d4ba83c84aa7f9e34dc65ebf9
|
|
Conflicts:
sw/source/core/doc/DocumentContentOperationsManager.cxx
sw/source/core/frmedt/fefly1.cxx
sw/source/core/frmedt/feshview.cxx
sw/source/core/layout/flycnt.cxx
sw/source/core/txtnode/atrflyin.cxx
Change-Id: I0a320eb990f9a3b6800447a97a84c118239bae96
|
|
When using a single document for all the generating MM documents, there can
be a significant number of sections/etc. , enough to make searching them
all in order to find a next nice unique name take a noticeable time. Since
it's very unlikely anybody will ever care about nice names after mailmerge,
just get some unique name in a fast way.
Conflicts:
sw/source/core/doc/docbm.cxx
sw/source/core/doc/doclay.cxx
sw/source/core/doc/docnum.cxx
sw/source/core/doc/doctxm.cxx
sw/source/core/docnode/ndsect.cxx
sw/source/core/inc/MarkManager.hxx
Change-Id: Id6b8d39a67529984cb93bb369f2c6eab401f1799
|
|
After the move now other classes can convert DateTime to OString also
Reviewed on:
https://gerrit.libreoffice.org/6816
Conflicts:
sw/source/filter/ww8/docxattributeoutput.cxx
Change-Id: I0ceb9a5cc26103a6cb36d7765a717770ec3fbe7d
|
|
Change-Id: I6d9ae98e900e5e42c5253ee9b2f71bec351b54d1
|
|
3f9872185e introduced new API for fast finding of marks to a specific text node,
so use that (code itself based on cb46aaf2d7).
This makes mailmerge faster (since it can create a huge document, and especially
with the change to use UNO bookmarks to mark starts of MM documents inside
the larger single document there can be a large number of marks).
Conflicts:
sw/source/core/txtnode/ndtxt.cxx
Change-Id: I30ec69acf423e9a62fae5f5492ed8744cb727a56
|
|
UNO bookmarks have internals names and ignore this
Conflicts:
sw/source/uibase/dbui/dbmgr.cxx
Change-Id: I37baa4c9bcf9cec37f91e3b1d0fb2fad322ceda8
|
|
When generating a unique fly name, we have to iterate over all the
existing flys to find out what's the first not used one, so doing this
for every new fly inserted by mail merge is O(n^2).
During import, we already skip this and only do it once at the end of
the import, which is O(n).
Fix the performance problem by skipping the unique fly name generating
when we produce a combined mail merge document as well, and just
generate them once the mail merge is complete.
For a test document having 12 text frames and 2000 mail merge records,
the times for css::text::MailMerge::execute() is 9m37.330s -> 8m18.811s.
Conflicts:
sw/inc/doc.hxx
sw/source/core/doc/DocumentLayoutManager.cxx
sw/source/uibase/dbui/dbmgr.cxx
Change-Id: Idfa8e9fe3acc93f1138f5bb12c2419c1492f8ff1
|
|
For a document of 1000 pages and having 13000 bookmarks, this helps a
lot on ODF export: 2m51.565s -> 2m23.412s on my machine.
Conflicts:
sw/source/core/unocore/unoportenum.cxx
Change-Id: I8c8a7cd2b83a94ab7f2de17e0b4cb449fc4c0e1a
|
|
sw::mark::MarkManager already provides two methods to provide not so slow mark
access:
- some marks (bookmarks, annotation marks) have their own container, so it's
possible to iterate over only those types, not all of them
- the containers are sorted by the start position of the marks, so it's easy to
ignore marks that are after the current text node
However, it's not possible to ignore marks ending before the current text node.
This is a problem, as e.g. during ODF export, we have to iterate over every
bookmark for each paragraph, so the operation is not linear.
On the other hand, the start and end position of bookmarks are stored using
SwPosition, and the SwIndex of the SwPosition is already registered in the
SwIndexReg of the SwTxtNode, so the text node sort of already knows what
bookmarks start/end at the current paragraph, it just doesn't known which
position belongs to what mark (if it belongs to a mark).
Fix the problem by adding a pointer to SwIndex that can optionally point back
to the mark that owns it. Also, in the sw::mark::MarkBase methods (which are
the only ones allowed to touch those positions) always set that pointer. With
this, it's possible to get the bookmarks of a node (list of bookmarks which
start or end in the current node) in a much faster way for text nodes.
Conflicts:
sw/inc/index.hxx
sw/source/core/bastyp/index.cxx
Change-Id: I7ceeff4dce852b4d72f2a73ae6a2423c7a781e41
|
|
For a document of 1000 pages and with 1000 bookmarks, this brings a
considerable speedup on ODF export:
before:
real 3m28.187s
after:
real 2m51.565s
Change-Id: Ic3f85c727a8ea4b5012d5c3f0a5887ff47762fb8
|
|
When mailmerge uses a single document for all the generated documents, doing
a layout of this increasingly large document after every generated document
addition was getting slower and slower (no wonder). My recent changes should
have removed all needs for any layout in progress, so it should be enough
to just once calculate the final layout. The final layout still appears to be
needed, leaving it as it is to get layout done on the fly puts e.g. 2-page
documents on wrong starting page (maybe just invalidating something would fix
that).
Debug build shows warnings from vdraw.cxx about moving anchor from an invalid
page because of broken layouting, but those were there already before, so I
assume those are not really significant (or at least made worse by this commit).
Conflicts:
sw/source/uibase/dbui/dbmgr.cxx
Change-Id: I62601ad6dccaa008783d1ce34c9e4f66f9621a56
|
|
This removes another need for doing repeated and expensive layouts of the target
document.
Conflicts:
sw/inc/doc.hxx
sw/source/core/doc/docnew.cxx
sw/source/uibase/dbui/dbmgr.cxx
Change-Id: Id78bc3ccc71c17e42f858dc9660866b9c94dea3a
|
|
Instead of page numbers, which
- was somewhat fragile (and broken, as it was actually off-by-one)
- required repeated re-layout of the increasingly large document, making
mailmerge awfully slow. The re-layout is not removed by this commit, as
it needs further checking whether it can be removed.
See the bugreport for details.
Conflicts:
sw/inc/doc.hxx
sw/source/core/doc/docnew.cxx
sw/source/ui/dbui/mmoutputpage.cxx
sw/source/uibase/dbui/dbmgr.cxx
sw/source/uibase/inc/mmconfigitem.hxx
Change-Id: Ib09bd5f5a6a549c3d38ca40b0f32c0d2831fdd4c
|
|
Change-Id: Ibe67ecdd5b121ad5624bfd111dca33897d6e1991
|
|
This saves the loading time for large document. Use it if you
want to present the generated document to the user or write a
mail merge unit tests.
This includes:
* renaming "only" to "shell" at multiple occurences
* dropping the DBMGR_MERGE_SINGLE_FILE special type for the mail
merge wizard in favour of an additional SwMergeDescriptor
boolean
* cleanup and renaming of the internal merge type enums, so these
actually match the diffferent merge targets: printer, email,
file and shell
(cherry picked from commit 9835bb562cfe3a5d386c24d86176ba7bb5ab26d2)
Conflicts:
offapi/type_reference/offapi.idl
sw/inc/dbmgr.hxx
sw/source/ui/dialog/swdlgfact.cxx
sw/source/ui/dialog/swdlgfact.hxx
sw/source/ui/envelp/mailmrge.cxx
sw/source/uibase/dbui/dbmgr.cxx
sw/source/uibase/inc/mailmrge.hxx
sw/source/uibase/uno/unomailmerge.cxx
Change-Id: I33c6773972195193687ba9c3e12b562310d330c1
(cherry picked from commit bf07857ff32d887bd215745430cfb6552577ff28)
(cherry picked from commit 7966c022502f852a495b1f0ce2dcec79e15b8dcf)
|
|
Introduce SW_DEBUG_MAILMERGE_DOCS=<n> to dump n mail merge debug
documents (partly merged and working copies).
This will speed up mail merge unit tests and allows dumping of
an arbitrary amount of intermediate mail merge documents.
(cherry picked from commit 0a5cd87e591d7f87bfab92716079af719259f143)
Conflicts:
sw/source/uibase/dbui/dbmgr.cxx
Change-Id: Idb9fc19f99ccafe5574897bd1e687d439c52ebe5
(cherry picked from commit 12052969b6edf9119f60d685a170f2fd442f2e67)
(cherry picked from commit 48cc32ea4760ad73f574cda9219b9d220c77fb66)
|
|
(cherry picked from commit 3b11057b75434526f67e678ddc1deb9ebd61c752)
Conflicts:
sw/source/uibase/dbui/dbmgr.cxx
Change-Id: Ibb9db5ecdea6439df20fc1ee609267dcdd864405
(cherry picked from commit 4896a4984473857d5b12df69a287c44c485105b7)
(cherry picked from commit bd73285aff577350d7dff4907aad9053f7721dd1)
|
|
Change-Id: I0df4775931e8e0b289a63afd501efaaf079302fe
|
|
Change-Id: Id8a4bb17bb742524012d44abdb6c24b8fe739329
|
|
...the check in itga.cxx was useless anyway, as new[] does not return null.
Change-Id: I4de5a46e14a83ab134d0a098a62748e909dc9c00
|
|
...(Clang trunk towards 3.4); this appears to be specific to C++11, which added at
the end of 8.3.6/4 [dcl.fct.default]: "If a friend declaration specifies a default
argument expression, that declaration shall be a definition and shall be the only
declaration of the function or function template in the translation unit."
Change-Id: I750c60a2206d7af41322ebb31aa6deca2491067f
|
|
Conflicts:
configure.ac
Change-Id: I87ae299aac97180f0587c553d85b051decca155c
|
|
At least Clang trunk towards 3.4 now rejects incompatible declarations of the
same extern "C" function in different namespaces, so that trick of getting at
the function that is exported by libstdc++ but only rudimentarily if at all
exposed in cxxabi.h no longer worked.
TODO: This change should be reflected in any other bridges where it is relevant,
too.
Conflicts:
configure.ac
Change-Id: Ie3ccbdb7d75cc98636d02c0435958532620724f2
|
|
Correctly position the insert cursor in the case of a collapsed
bookmark.
Change-Id: I46707ab0e019aec1050864c9cb404a834e9a67fe
|
|
adapted algorithm that selects the Java runtime to be used so that
Java installations associated with the JAVA_HOME and PATH
environment variables are preferred over others
Java installations are now analysed in the following order:
* installation that the JAVA_HOME environment
variable refers to (if it is set)
* Java installations in PATH
* other Java installation (algorithm that was used before)
Change-Id: I3a3ade25322def0c0432b369848f13a6b82034a1
Conflicts:
include/jvmfwk/framework.h
jvmfwk/source/framework.cxx
|
|
This is quite probably not the correct fix, but it - at least -
stops LO from crashing when undoing bookmark changes.
Has to be tested to ensure LO actually correctly undoes the
bookmark change.
Change-Id: Id482943161079cf8a09799da9e67f4f4f4efb7e0
|
|
Change-Id: Ic0e2306bfa8e943220d2d23177c241169c94a790
|
|
Change-Id: If327010c6b2e88d5d638df5ce502e94f99355141
|
|
Change-Id: I623650afee10cc60b49067f4efbdc889b58007dc
|
|
Change-Id: I189eb1e44b3d31a30d1451ed8d6048f1bba285d7
|
|
This reverts commit 70aff4a7f7abe0c768238733ca8900b746e60189.
Change-Id: I8f8b423353ae1a825be91bd94308e87844948525
Signed-off-by: Noel Power <noel.power@suse.com>
|
|
|
|
Change-Id: Iafcd5ce09e9c700163d26110523211b273fb9d81
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Update-URL für Extensions auf Leerstring gesetzt.
Change-Id: I136c53baffdd84ad10c644fc304d8b7a60df3b99
|
|
Correctly handle the printer option "fixed page size". If set,
pages are centered and trimmed onto the fixed page, regardless
of the page size option.
Change-Id: I10f6f5a10268c452847f032e204df8f363be99a1
|