summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-11-20Revert "WASM: headless conversion without QT5 and with unique html"feature/wasmThorsten Behrens
Breaks due to double use of LD_FLAGS (and duplicated embind symbols). Lets back this out for the moment, needs some gbuild debonging. This reverts commit a09b1b9e68c2285289fbf36c7f5fb6a1677e8c39. Change-Id: Idb1348a0b4a55894bb12a2c101d9460bb5e40222
2023-11-20Bit of a gbuild cleanupThorsten Behrens
Change-Id: I33f861fc00db3da1a0496a3bb1d590217b849605
2023-11-19Another tweak in sample file imageryThorsten Behrens
Change-Id: I28ec7ebea974a17c6e0d48e680e0a3883c44fc10
2023-11-19Update sample fileThorsten Behrens
Change-Id: I5be3916601930bd9968a40e55c51320e99098d6e
2023-11-19WASM: headless conversion without QT5 and with unique htmlBalazs Varga
Building and using soffice.html generated by emscripten and modified for headless conversion. Change-Id: Ic3800bc0632d241dce382f244f355f56f79ffec4
2023-11-19Revert "WASM pdf conversion through emscripten and qt5"Thorsten Behrens
This reverts commit f814cc609f37d94075c32bddea97d7ba5b4fea32.
2023-11-19Revert "WASM: headless conversion without QT5 and with unique html"Thorsten Behrens
This reverts commit 69286705a247a708f6aba55086d05ea3c517e5a4.
2023-11-19WASM: headless conversion without QT5 and with unique htmlBalazs Varga
Building and using soffice.html generated by emscripten and modified for headless conversion. Change-Id: Ic3800bc0632d241dce382f244f355f56f79ffec4 Conflicts: include/sfx2/objsh.hxx sfx2/source/doc/objstor.cxx solenv/gbuild/platform/EMSCRIPTEN_INTEL_GCC.mk static/emscripten/soffice_args.js sfx2/source/doc/objstor.cxx
2023-11-19Document how tml managed to run the qt_soffice.html thing without emrunTor Lillqvist
2023-11-19WASM pdf conversion through emscripten and qt5Balazs Varga
Exporting files to pdf and downloading it from the emscripten virtual memory file system to the local file system with qt5 and emscripten. What is working: 1. Uploading a file from the local file system to the emscripten memory with 'Open file dialoge' and then opening it. In the same time export it to pdf. 2. Load an uploaded document with the LibreOffice Kit command: - lodoc = _libreofficekit_hook(0) - _doc_postUnoCommand(lodoc, allocateUTF8(".uno:Open"), allocateUTF8( "{ \"URL\" : { \"type\":\"string\", \"value\":\"file:///android/default-document/{UPLOADED_FILE_NAME}\" }}"), 0) 3. Export the loaded document to pdf with the ExportDirectlyToPDF UI or with the LibreOffice Kit command: - lodoc = _libreofficekit_hook(0) - _doc_postUnoCommand(lodoc, allocateUTF8(".uno:ExportDirectToPDF"), allocateUTF8(""), 0) 4. alternatively, you can plant a file in the virtual filesystem prior to LibreOffice bootstrap, and export headless, via soffice cmdline args Change-Id: I8f03b0a057155afaa5f1ca0e3e451bb362a99769
2023-11-19Hack lokit API to be useable from JSTheRock Builder
So LOWA users/embeddings can call uno slots
2023-11-19Add more functions to export for LOWATheRock Builder
2023-11-19More fixup of gbuildTheRock Builder
2023-11-19Fix logicTheRock Builder
2023-11-19Add LOKit functions and whitelist export for it to WASMTheRock Builder
For calling into LOWA from native JS, make lokit functions available
2023-11-19WASM HACK fix NEH buildJan-Marek Glogowski
Workaround a toolchain bug. Also see comment in ~Desktop(). Change-Id: I158877b78794d81ccdc74e4d5fc023e2061c1d96
2023-11-19fixme static testsJan-Marek Glogowski
Change-Id: I2aaffa032bd531272257ca40d6f9b9d25c4de5aa
2023-11-19Add a larger Writer example documentJan-Marek Glogowski
Change-Id: I4bc9a82c7f99563af8da62f889b51d1b583df760
2023-11-19WIP: async popup menusJan-Marek Glogowski
A first patch to get some feedback. Asnyc LO popup menus are still buggy, as I'm not sure where to call the PopupMenu::Finish for them. Also the XDialogClosedListener is currently just for convenience and might want some separate notifier. Fun fact, that ImplExecute / ImplPopup is called for submenu, but then doesn't execute. And generally the naming of some variables is IMHO wrong; I might also prefix Menu members with "m_" for easier readability. Change-Id: Id8b413aa6b4699201e58db0113649c6b224d33b6
2023-11-19gbuild: build static unit testsJan-Marek Glogowski
While this generally works, the setup is not very practical. The unit tests become all very large, if they use components. The best static solution I can imagine is either just somehow linking them on demand, or create a single huge liblibreoffice.so, so keeping everthing almost static. Change-Id: If00f9ac3b3f63b915e3b5dcd931d233681a58006
2023-11-19gbuild: set unorc lookup dir via environmentJan-Marek Glogowski
UNO tries hard to find the path of the executable to look at that place for its unorc / uno.ini. All these approaches don't work for static binaries, so just override the lookup with the environment variable STATIC_UNO_HOME. Change-Id: I0d80c91e474d9f869475ba752d708b77c99f8a56
2023-11-19Extended loplugin:ostr: vclStephan Bergmann
Change-Id: I2a9d5383d1831d8bf61e5280d66556d71fccae52 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159666 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-11-19Extended loplugin:ostr: writerperfectStephan Bergmann
Change-Id: Ib942f7725e224b7c4beaca4cd4d86b83f60cd3f1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159664 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-11-19Extended loplugin:ostr: writerfilterStephan Bergmann
Change-Id: I83bdd43357d07bce18a2cf286e639c816846e7d2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159665 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-11-19Extended loplugin:ostr: xmloffStephan Bergmann
Change-Id: I87e53216693f2d6489a1dd80e62141ca5621a87f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159662 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-11-19tdf#33201 Make Row/column highlight usableSahil Gautam
Row/column highlight shouldn't be updated using ScGridWindow::DrawContent because it would call for highlight refresh even when typing in a cell, leading to the text being hidden under the highlight. Change-Id: Ic7cc71bc94629c71e6efdf677b7f34d6c4d0cc93 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159636 Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-11-19c++20: use std::erase(_if) instead of std::remove(_if)+erase (part 11)Julien Nabet
Change-Id: I2197c65248a96caa8ae621d5b1d16aa1086fc525 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159643 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-11-19c++20: use std::erase(_if) instead of std::remove(_if)+erase (part 8)Julien Nabet
Change-Id: Ia726fbbfd3f08eb4bb5c7ccaf10d65fe01ca6585 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159639 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-11-19Fix performance regression with ScPatternAttr/SCArmin Le Grand (allotropia)
Due to the paradigm item change the test make CppunitTest_sc_tablesheetobj with CPPUNIT_TEST_NAME sc_apitest::ScTableSheetObj::testSheetCellRangeProperties got much slower. Unfortunately it did not break, so got unnoted. I took a look now. First I intended to add some hashing in an std::unordered_set using that hash values at ScPatternAttr, but that is not even possible due to other data in that item that needs to be compared. I had the impression that it was 'somehow' hashed before, but after debugging the version before that change I noted that also the list of existing items was linearly compared to the new entry, using the operator==. Thus the problem was not due to not hashing, but due to the ScPatternAttr::operator==. That uses the hash (not changed), but no longer finds equal entries. This is because the hash code is made up from the SfxPoolItemPtrs in the SfxItemSet, so when all are equal we can be sure the SfxItemSet content is equal. To use this the other way around is *not* correct: Even with not all ptrs equal the SfxItemSets can still be equal, simply by one SfxItemSet using another, but identical incarnation of an item. Thuis means that ScPatternAttr::operator== does not detect all cases of equality. This worked in most cases before since most items were 'pooled' and thus much effort was used to ensure their uniqueness, but even before the paradigm item change an item type could be flagged as non-poolable. In that case, this already could fail but with no too bad consequences (just one more copy of an ScPatternAttr would stay). So I fixed that mainly in adapting and optimizing ScPatternAttr::operator==. The results are (same machine, same compiler, dbg version, metioned test): Version before item paradigm change: user 0m50,778s Version after item paradigm change: user 20m13,944s Version with memcmp: user 0m48,845s Version with hash: user 0m48,710s Since that hash does nothing else than to buffer the comparison of those item pointers I just tried to use memcmp instead, as is already used in other places (same file, ScPatternAttr::FastEqualPatternSets, also SfxItemSet::operator==). As can be seen above it makes practically no difference (memcomp even slightly faster). Since that hash is only used in ScPatternAttr::operator== and is same speed (memcomp linearly compares 56 SfxPoolItem ptrs) I decided to remove it. It needs quite some spaces to be reset and re-calculated which are not needed anymore. The calculation is based on dividing the number of items by 4, so we are good with 56, but if someone has/ will adapt the items used by ScPatternAttr it is easy to forget to adapt this, and not easy to change the alghorithm when it's not a multiple of 4. I also optimized/overhauled SfxItemSet::operator== (or better: the SfxItemSet::Equals used by it). It is now better readable, too. I also adapted ScAttrArray::AddCondFormat to not always incarnate/ delete ScPatternAttr instances, only when needed. This also helps a bit and could be done in more places. All in all it is really necessary to cleanup SC's usage of ScPatternAttr - there are quite some possibilities to make that cleaner and faster. In principle it's a huge 'compromize' to use item functionailty to have a possibly 'cheap' maximum shared SfxItemSet at a Cell. Decided to make SfxItemSet::operator== even faster for the case of unequal ranges by iterating over ranges of local SfxItemSet and incremented offset. Still accesses to 2nd SfxItemSet will be the expensive ones using the iterated WhichID. Added two more things to SfxItemSet::operator==: We can return early when both have no items set. For the unequal-ranges compare I added an early-exit when Count() items were compared. Looked at the errors that indeed do trigger the assert in ScPatternAttr::operator== and hint to incarnations of ScPatternAttr that do not use the needed range ATTR_PATTERN_START, ATTR_PATTERN_END. Hunted down to come from ScViewFunc::ApplyAttributes and there from some Dialogs, so seems some SC dialogs do not work with the correct range schema for that item. I tried code in ScViewFunc::ApplyAttributes to fix it, that works. I also tried to hunt that down to the Dialogs that use the wrong schema (TotalCount @SfxItemSet is 61 BTW). While it would be possible to do so, it's no guarentee to have this fixed. Thus I looked at ScPatternAttr::ScPatternAttr and added correciton code when one with the wrong range schema gets created, this is luckily not often needed and transfers the existing items with low costs. Maybe we should add a warning there if used, so at least new implementations of stuff or old ones (the Dialogs) can be corrected? Change-Id: I31da73ae30786bd6c5a08a5e3b7df8fe279af261 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159592 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2023-11-19c++20: use std::erase(_if) instead of std::remove(_if)+erase (part 10)Julien Nabet
Change-Id: I7681a3ed5af058cf4356509d54a2195e6d4833e1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159641 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-11-19c++20: use std::erase(_if) instead of std::remove(_if)+erase (part 9)Julien Nabet
Change-Id: I61e53faf68e7e0fab2052122993197c7994441ff Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159640 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-11-19tdf#143148: Use pragma once instead of include guards in vcl/inc/winTaichi Haradaguchi
Change-Id: I57db27a6cbd45ec9f1ae666a3b8da23bbf5c20de Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159649 Tested-by: Jenkins Reviewed-by: Taichi Haradaguchi <20001722@ymail.ne.jp>
2023-11-19tdf#143148: Use pragma once instead of include guards in vcl/osxTaichi Haradaguchi
Change-Id: I0f6edb1f4ed5310bf0bb7d051852a4c86205431f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159647 Tested-by: Jenkins Reviewed-by: Taichi Haradaguchi <20001722@ymail.ne.jp>
2023-11-19tdf#143148: Use pragma once instead of include guards in vcl/sourceTaichi Haradaguchi
Change-Id: Ie19a3e16861946434342c7e07482ae649a4afb4e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159646 Tested-by: Jenkins Reviewed-by: Taichi Haradaguchi <20001722@ymail.ne.jp>
2023-11-19vcl: add unit tests for simple text 'AV' with kerning and no-kerning enabledChris Sherlock
Change-Id: I72812c9fd83730daf62aeb4a300c548f153ee8a4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159091 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2023-11-19vcl: simplify warning messageChris Sherlock
Change-Id: Ie8ccf8bc5ba493987bebf38d8b1227c30bcd6e2d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158077 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2023-11-19vcl: ImplIsCharIn() -> lcl_IsCharIn()Chris Sherlock
Change-Id: I61b24783e39e9f904c48c0726024cd5fa122b724 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158076 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2023-11-19tdf#124176 vcl: Use pragma once instead of include guards in inc/textlayout.hxxChris Sherlock
Change-Id: Ie51fbc687002a6139dc98309cb7e1c39bb4de4a1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158075 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2023-11-19vcl: remove unnecessary includes from textlayout.cxxChris Sherlock
Change-Id: I4cef4b61c15cde5682b65590bebdc9981d38908c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158074 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2023-11-19tdf#143148 Use pragma once instead of include guardsCristina Mustatea
Change-Id: I5da0bf7d780f5336ecfd17882e5bfd1ac7fb4a3d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157156 Tested-by: Jenkins Reviewed-by: Taichi Haradaguchi <20001722@ymail.ne.jp>
2023-11-18Update git submodulesStanislav Horacek
* Update helpcontent2 from branch 'master' to 579bf8dd91ebc66108f8710452ea2280c81c1223 - use "export" instead of "print" at PDF export options page Change-Id: I1c1bfcfab57b74129c5bb60fad89376c88e64dfd Reviewed-on: https://gerrit.libreoffice.org/c/help/+/159638 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2023-11-18c++20: use std::erase instead of std::removed followed by erase (part 2)Julien Nabet
Change-Id: I0222f0f53f387dd57bd674b1e137b53487f4e1d3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159611 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-11-18c++20: use std::erase(_if) instead of std::remove(_if)+erase (part 7)Julien Nabet
Change-Id: I2a72422a6c8185d17876daac41a86137048b034c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159627 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-11-18c++20: use std::erase(_if) instead of std::remove(_if)+erase (include part)Julien Nabet
Change-Id: I32ac73e1ada08bfaa29e654f26fc89257733cd79 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159614 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-11-18c++20: use std::erase(_if) instead of std::remove(_if)+erase (part 6)Julien Nabet
Change-Id: Ic073d7444e968e90068aa60847bc9211167f6278 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159626 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-11-18c++20: use std::erase(_if) instead of std::remove(_if)+erase (part 5)Julien Nabet
Change-Id: I373e5185e53ce88fba36d69d0fc20c29bb89d184 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159625 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-11-18c++20: use std::erase(_if) instead of std::remove(_if)+erase (part 4)Julien Nabet
Change-Id: I6af5501e3fde07024dcc74f00c8fd69bd369d8d7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159613 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-11-18c++20: use std::erase(_if) instead of std::remove(_if)+erase (part 3)Julien Nabet
Change-Id: I1ea95e0bfeaed88b9484403e6796574f1d06f133 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159612 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-11-18c++20: use std::erase instead of std::removed followed by erase (part 1)Julien Nabet
Change-Id: I8d038fc37a4de25bdeff2e2cc55775e3981240b7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159610 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-11-18Remove useless using + once use of replace pair by std::pairJulien Nabet
Change-Id: Id283ac7909f19dabb98886caa1f2960d9098ddbe Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159628 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Jenkins