summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-02-27support fast MM printing in non-single-file mode only for CUPSprivate/llunak/mailmerge_02Luboš Luňák
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
2015-02-26mailmerge doesn't need to use the singlefile technique for printingLuboš Luňák
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
2015-02-26do not needlessly make overriden functions more privateLuboš Luňák
These are public in the base class. Change-Id: I839ffe56a835f99c2812cffb60804b74aaa9c5ac
2015-02-26avoid creating temporary document copies in non-singlefile MM modeLuboš Luňák
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
2015-02-26do not create temp file(s) during MM if not neededLuboš Luňák
Change-Id: I1360e215bff42dd866ab1d94a18a8f2f9ddc7c66
2014-11-14avoid unused argument warningLuboš Luňák
Change-Id: Ib67b804423b521407710f8319cb89977e44494cc
2014-11-14speed up SwDoc::IsInHeaderFooter() by using SwFrmFmtAnchorMapLuboš Luňák
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
2014-11-14faster mapping from nodes to SwFrmFmt's anchored at themLuboš Luňák
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
2014-11-14do not break encapsulation of SwFmtAnchor::GetCntntAnchor()Luboš Luňák
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
2014-11-14do not bother with nice unique names during mailmergeLuboš Luňák
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
2014-11-14Moved 'DateTimeToOString' from 'filter' package to 'tools' packageAdam Co
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
2014-11-14actually use return value of GetUniqueSectionName() in SwDoc::UpdateSection()Luboš Luňák
Change-Id: I6d9ae98e900e5e42c5253ee9b2f71bec351b54d1
2014-11-14do not iterate over all bookmarks in SwTxtNode::Update()Luboš Luňák
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
2014-11-14name of mailmerge marks is actually irrelevantLuboš Luňák
UNO bookmarks have internals names and ignore this Conflicts: sw/source/uibase/dbui/dbmgr.cxx Change-Id: I37baa4c9bcf9cec37f91e3b1d0fb2fad322ceda8
2014-11-14SwDBManager::MergeMailFiles: set unique fly names at the end of the mergeMiklos Vajna
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
2014-11-14sw: use new bookmark API in lcl_FillBookmarkArray() for text nodesMiklos Vajna
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
2014-11-14sw: add API that provides fast access to marks of a text nodeMiklos Vajna
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
2014-11-14SwXTextPortionEnumeration ctor: avoid dynamic_cast in the common caseMiklos Vajna
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
2014-11-14do not repeatedly relayout mailmerge document after each changeLuboš Luňák
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
2014-11-14compute page offset for mailmerge based on source document rather than targetLuboš Luňák
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
2014-11-14use bookmarks to mark mailmerge parts in a mailmerge document (fdo#80823)Luboš Luňák
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
2014-11-14more local variableLuboš Luňák
Change-Id: Ibe67ecdd5b121ad5624bfd111dca33897d6e1991
2014-11-14MM: export the SwDocShell mail merge via UNOJan-Marek Glogowski
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)
2014-11-14MM: dump debug documents based on environment varJan-Marek Glogowski
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)
2014-11-14:sw: rename SwDoc::Append to something uniqueMichael Stahl
(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)
2014-10-07use -> with pointersprivate/llunak/mailmergeLuboš Luňák
Change-Id: I0df4775931e8e0b289a63afd501efaaf079302fe
2014-10-07error: comparison between pointer and integerLuboš Luňák
Change-Id: Id8a4bb17bb742524012d44abdb6c24b8fe739329
2014-10-06error: comparison between pointer and integer (Clang trunk towards 3.4)Stephan Bergmann
...the check in itga.cxx was useless anyway, as new[] does not return null. Change-Id: I4de5a46e14a83ab134d0a098a62748e909dc9c00
2014-10-06error: friend declaration specifying a default argument must be a definitionStephan Bergmann
...(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
2014-10-06...and similarly for __cxa_allocate_exception and __cxa_throwStephan Bergmann
Conflicts: configure.ac Change-Id: I87ae299aac97180f0587c553d85b051decca155c
2014-10-06Clean up declaration of __cxa_get_globalsStephan Bergmann
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
2014-10-06i#101283 Fix collapsed bookmark handlingJan-Marek Glogowski
Correctly position the insert cursor in the case of a collapsed bookmark. Change-Id: I46707ab0e019aec1050864c9cb404a834e9a67fe
2014-10-06fdo#83753: consider JAVA_HOME and PATH when selecting JREMichael Weghorn
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
2014-10-06fdo75996 Check search result for bookmark undoJan-Marek Glogowski
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
2014-10-06Patch von Lanedo für #11826 integriert.Ulrich Kitzinger
Change-Id: Ic0e2306bfa8e943220d2d23177c241169c94a790
2014-10-06Auswahl von Papiergröße und -orientierung deaktiviert (Trac #11826)Ulrich Kitzinger
Change-Id: If327010c6b2e88d5d638df5ce502e94f99355141
2014-10-06Zugriff auf static Variable synchronisiert (Trac 11400)Ulrich Kitzinger
Change-Id: I623650afee10cc60b49067f4efbdc889b58007dc
2014-10-06unopkg beschwert sich: 'unopkg: 69: [: =: unexpected operator'Ulrich Kitzinger
Change-Id: I189eb1e44b3d31a30d1451ed8d6048f1bba285d7
2014-10-06Revert "fix Worksheet.Cells by now allowing TableSheet..." fdo#70079Noel Power
This reverts commit 70aff4a7f7abe0c768238733ca8900b746e60189. Change-Id: I8f8b423353ae1a825be91bd94308e87844948525 Signed-off-by: Noel Power <noel.power@suse.com>
2014-10-06Änderungen am Build-Skript und Abhängigkeiten für Windows-BuildUlrich Kitzinger
2014-10-06Kde3-Pfade angepasstUlrich Kitzinger
Change-Id: Iafcd5ce09e9c700163d26110523211b273fb9d81
2014-10-06Dialog 'Es ist kein Standarddrucker ausgewaehlt' unterdrueckenUlrich Kitzinger
2014-10-06Noch ein CompilefehlerUlrich Kitzinger
2014-10-06Fix für AO Bug 74651Ulrich Kitzinger
2014-10-06In Paths.xcu Temp-Pfad angepasstUlrich Kitzinger
2014-10-06unopkg-Sript setzt Root-profil, wegen Trac #11013Ulrich Kitzinger
2014-10-06Update-Button im Extension-Manager disabledUlrich Kitzinger
2014-10-06Änderung für Übernahme von Mail-Adressen aus Link, Trac #4335Ulrich Kitzinger
2014-10-06ExtensionUpdateURL emptyLimux
Update-URL für Extensions auf Leerstring gesetzt. Change-Id: I136c53baffdd84ad10c644fc304d8b7a60df3b99
2014-10-06Handle fixed page size printer option.Jan-Marek Glogowski
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