summaryrefslogtreecommitdiff
path: root/sw
AgeCommit message (Collapse)Author
2019-05-06Translate German variable namesJohnny_M
Translated the defines, but kept the their NC_(...) translation references to prevent a need to update translations. Standardized terms from http://www.upu.int/en/activities/addressing/s42-standard.html were used, although textual strings use US English terms. Change-Id: Ic5b13d21f9552d3e8b2adce92cca36f651eaa7eb Reviewed-on: https://gerrit.libreoffice.org/71792 Tested-by: Jenkins Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
2019-05-06sw: prefix members of CSS1ParserMiklos Vajna
Change-Id: Iaf7ed92d3ef132a79de30f0d596acdfba9c7185a Reviewed-on: https://gerrit.libreoffice.org/71848 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2019-05-06tdf#113483: DOCX: fix encoding of bookmarks with non-ASCII lettersAdam Kovacs
Non-ASCII letters were stored using percent-encoding, resulting broken bookmark names after export/import. For example, the word "Első" became the wrong "Els%C5%91". Now only the reversed ASCII characters are stored in percent-encoding. For example, the name "Első!" stored in the following form: <w:bookmarkStart w:name="Első%21" w:id="0"/> <w:instrText> REF Első%21 \h </w:instrText> Change-Id: I65168e071b6baa12385c0aaa12d9f2ae4ccf9f98 Reviewed-on: https://gerrit.libreoffice.org/71299 Reviewed-by: László Németh <nemeth@numbertext.org> Tested-by: László Németh <nemeth@numbertext.org>
2019-05-06Writer Notebookbar Layout syncronisationandreas kainz
Change-Id: Ibe8fb5114e624482292928d14ad8cc89b711f5a8 Reviewed-on: https://gerrit.libreoffice.org/71814 Tested-by: Jenkins Reviewed-by: andreas_kainz <kainz.a@gmail.com>
2019-05-05[API CHANGE] SwXTextField: no more SwModify/SwClientBjoern Michaelsen
- fix unittest assuming the double-insertion of annotation throwing an IllegalArgumentException was intentional - remove SwModify/SwClient in SwXTextField - also: add basic C++ api test Change-Id: Ia4657dc65dfadc3e975bdf409bd5e43413ea1f5a Reviewed-on: https://gerrit.libreoffice.org/71452 Tested-by: Jenkins Reviewed-by: Björn Michaelsen <bjoern.michaelsen@libreoffice.org>
2019-05-05sw: make ooxml export tests fail when re-reading doc failsThorsten Behrens
Bit odd to bail a unit test when reading back the document doesn't succeed for whatever reasons. Since there are tests that also check the initial loading of a docx (even for ooxml export tests), leave those untouched. Change-Id: Iede4b360eecf3ff2c864a5d565d21120fd0e1020 Reviewed-on: https://gerrit.libreoffice.org/71503 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2019-05-05Fix typoAndrea Gelmini
Change-Id: I87fa75d2aab64031426ce0560344908bd81d413c Reviewed-on: https://gerrit.libreoffice.org/71816 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr>
2019-05-04Use hasElements to check Sequence emptiness in swArkadiy Illarionov
Similar to clang-tidy readability-container-size-empty Change-Id: If44f20a7aa678915e32d12101e1af71476f4b590 Reviewed-on: https://gerrit.libreoffice.org/71679 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-05-03Resolves: tdf#124552 - Sentence selection UNO actionheiko tietze
UNO command SelectSentence / FN_SELECT_SENTENCE added executing SelSentence() Change-Id: Idcd528cf2915b30a59a9916dcff14d60d01dcd74 Reviewed-on: https://gerrit.libreoffice.org/70411 Tested-by: Jenkins Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com> Tested-by: Maxim Monastirsky <momonasmon@gmail.com>
2019-05-03The -fvisibility-ms-compat hack is no longer needed for UBSan on Linux...Stephan Bergmann
...with latest Clang trunk towards Clang 9. All the no-longer necessary hacks are made conditional on new NEED_CLANG_LINUX_UBSAN_RTTI_VISIBILITY, which is still set for UBSan builds with older Clang on Linux (but which should eventually be purged). Various classes needed additional SAL_DLLPUBLIC_RTTI annotations, as building with UBSan instrumentation can generate references to RTTI symbols from additional places like outside a dynamic library that used to hide those symbols by default (but used to not hide them for old UBSan builds thanks to the -fvisibility-ms-compat hack). The odr-violation suppressions in solenv/sanitizers/asan-suppressions (which is not referenced from anywhere in the code base, but meant to be included in an ASan/UBSan build's ASAN_OPTIONS env var) are also no longer needed when NEED_CLANG_LINUX_UBSAN_RTTI_VISIBILITY is false. Change-Id: I24ec3e388b0cbab50dbe2bf008d9569bff7bf25a Reviewed-on: https://gerrit.libreoffice.org/70829 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-05-03sw: reduce accuracy of double compares in testFDO74215Michael Stahl
This failed several times recently on Mac in Jenkins. - Expected: 14.7945205479452 - Actual : 14.8 - Delta : 0.001 Change-Id: I966b8085bf4120afb0a09e50f85ada4e5d8d488c Reviewed-on: https://gerrit.libreoffice.org/71725 Tested-by: Jenkins Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
2019-05-03tdf#123285 sw_redlinehide: fix SwAutoFormat::DelMoreLinesBlanks()Michael Stahl
The "Delete spaces and tabs at end and start of line" AutoFormat option was deleting the wrong characters: on the 2nd line, it deletes the spaces as it should, but on subsequent lines the selection is off by the number of characters that have already been removed. The range indexes are now integers, so not automatically corrected on deletions like the SwIndex they were before; in this case, where only plain characters are deleted, it should suffice to iterate the ranges in reverse order to avoid the problem. (regression from 180e5f515c9cd21fb8057c797a480eca7d9ed260) Change-Id: Ie8e08c00803d94e700cd5b64f29edb0b841eda2b Reviewed-on: https://gerrit.libreoffice.org/71686 Tested-by: Jenkins Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
2019-05-03tdf#125039 sw_redlinehide: keep shape selected when changing anchor typeMichael Stahl
Avoid the problem by not moving the drawing object to the invisible layer, which isn't necessary because it will be inserted immediately anyway. (regression from 214e6ed5286566e689a4ef13a9115e2ad38fff57) Change-Id: I9936de990d1db56fa4c00c37d05b4ed2923790ff Reviewed-on: https://gerrit.libreoffice.org/71685 Tested-by: Jenkins Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
2019-05-03NB Tabbed compact writer update print tabandreas kainz
Change-Id: I0ff8c4cb5e0ebc408e827e852d6e6134c42a3382 Reviewed-on: https://gerrit.libreoffice.org/71707 Tested-by: Jenkins Reviewed-by: andreas_kainz <kainz.a@gmail.com>
2019-05-02writer: sync global and print toolbars between dif UI layoutsandreas kainz
Change-Id: I226db3f1a9cd6bed12db8edcb37ae6a6dcc999bc Reviewed-on: https://gerrit.libreoffice.org/71656 Tested-by: Jenkins Reviewed-by: andreas_kainz <kainz.a@gmail.com>
2019-05-01weld ScPivotLayoutDialogCaolán McNamara
Change-Id: I821ee682bf5b65774a609227811365b94ae2063e Reviewed-on: https://gerrit.libreoffice.org/71547 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-05-01Make getXPathPosition assert on requested child foundMike Kaganski
Previously, for an XML like this: <sharedItems> <d v="2017-07-10T09:11:02"/> <d v="2017-07-10T09:11:03"/> <m/> </sharedItems> the call like int pos = getXPathPosition(pDoc, "/x:sharedItems", "absent"); gave 3. That could result in mistakes, when a test would assert on position "3" for a child element which name is mistyped. I made such a mistake when creating a unit test trying to assert on a position of the last element, and writing its name as "x:m", like in rXPath itself; the return was 3, and I initially wrongly assumed that the return is 1-based (like in xpath bracketed expressions). rChildName made const OString&, for consistency with rXPath, or with rAttribute in getXPath: child name is just a part of a longer xpath. Change-Id: I7ba9c4466c75b1b10fce1ccf26ef3b56b4e11e87 Reviewed-on: https://gerrit.libreoffice.org/71614 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-05-01add Footer and Header settings to tabbed notebookbarandreas kainz
Change-Id: I90e103f1ded9671817b83ae4755c235acf4050f1 Reviewed-on: https://gerrit.libreoffice.org/71619 Tested-by: Jenkins Reviewed-by: andreas_kainz <kainz.a@gmail.com>
2019-05-01Removed executable flag on .docAndrea Gelmini
Change-Id: If5e6366e307349fa17ba450d330c1f57f9e05d30 Reviewed-on: https://gerrit.libreoffice.org/71611 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr>
2019-05-01loplugin:stringconstant in sw/qa/extras/layoutJulien Nabet
Change-Id: I4934240946b435e7b5b13c2623143f7741106efa Reviewed-on: https://gerrit.libreoffice.org/71599 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-05-01NB contextual single update for vertical alignmentandreas kainz
Change-Id: Id0b9a5816ee459837ca8fe2b4dd7a0233a517c0d Reviewed-on: https://gerrit.libreoffice.org/71604 Reviewed-by: andreas_kainz <kainz.a@gmail.com> Tested-by: andreas_kainz <kainz.a@gmail.com>
2019-04-30sw: remove testForcepoint79 from SwLayoutWriterMichael Stahl
Was recently added in 453e6fb7c1827d317dc775df32a6cf91b2bb5a67 Here this goes into an infinite loop, at least it doesn't finish in an hour; Miklos claims it's due to missing fonts, let's just remove the test for now, the file will still be tested by crashtesting. Change-Id: I8acd05e9428ca25d1255b9f14ca56c7a9f5d4f00
2019-04-30tdf#122607 sw: restore CalcLayout() call in getRendererCount()Michael Stahl
Effectively revert commit 1ecca673b40fedc53db125e332b087d1c120a254. There are some documents that aren't formatted correctly. Change-Id: I4b0cf6313c249a0ed916c2630cd5194d809bfb48
2019-04-30tdf#122607 sw: fix preservation of text frame cache entriesMichael Stahl
SwSaveSetLRUOfst would leave only 50 cache entries available for the CalcLayout() to use; apparently it's not enough for this document. The difference between the 1st loading/layout and the 3rd loading/layout of the document is that in many paragraphs the cache entry is missing, because the entires of the previous loads were clogging up the cache and were preserved here, and the cache only has 50 available entries; if enough entries are available, everything is positioned properly. The idea with the 100 entries per visible shell actually comes from the CVS initial import, where there was a comment suggesting that; but the corresponding parameter was actually unused and removed in 7c704c78d3c652504c064b4ac7af55a2c1ee49bb. Ideally we'd have time to investigate why a missing cache entry causes the wrong position... Change-Id: I64a72a94361dbf5717bbc709fa3bc9abbe18a37c Reviewed-on: https://gerrit.libreoffice.org/71542 Tested-by: Jenkins Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
2019-04-30tdf#122607 sw: remove deleted SwTextFrame's cache entryMichael Stahl
Apparently nothing else would remove the entry, and without SwTextFrame it's not accessible any more. If the entry was recently used, then the SwSaveSetLRUOfst usage in SwViewShell::CalcLayout() will preserve it instead of giving the cache entry to a new frame. Change-Id: Id43fdbad2ac006853928e30a7b6768c3e3dc1667 Reviewed-on: https://gerrit.libreoffice.org/71541 Tested-by: Jenkins Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
2019-04-30tdf#123636 writerfilter: handle deferred breaks on framesJustin Luth
...similar to handling breaks before shapes in lcl_startShape. Three different examples found to create/split a paragraph. Which one to use? (addDummy, m_bIsSplitPara, and lcl_startCharacterGroup). SplitPara is not good because the paragraph properties probably should not be copied to the dummy paragraph (like numbering for example). Slightly modified the lcl_startChar example to ensure that the dummy paragraph doesn't steal a part of the properties, but is only default properties plus page-break. This doesn't export very well, so roundtripping is very poor. Research Note: There exists a compat flag showBreaksInFrames (Display Page/Column Breaks Present in Frames) "This element specifies whether applications should honor the presence of page and/or column breaks which are present within the contents of paragraphs which have been defined as frames using the framePr element." --Currently, LO does nothing with this flag. Probably too exotic and irrelevant (word 2003 era?). No existing unit tests found that have isSet(pg_brk) frames. Change-Id: I29f815355401c7af8b347a3ed9d0298bc9b27b93 Reviewed-on: https://gerrit.libreoffice.org/71255 Tested-by: Jenkins Reviewed-by: Justin Luth <justin_luth@sil.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-04-30tdf#101826 ww8import: Fly - don't convert XATTR back and forthJustin Luth
In this case we are explicitly interested in textboxes, but any fly that accepts XATTR will now use that and skip the old RES_BACKGROUND. In the case of textbox import, the properties were being converted into RES_BACKGROUND and then back to XATTR again. Just copy the XATTR properties to the new FlySet instead. The ability to import XATTRs into a textbox was added to LO6.3 with commit 15819181772d95963d16c1c2eaa9e51af81f7f68 Change-Id: Ib65b3d9097d0a56dbe205b419d052af53d0132c8 Reviewed-on: https://gerrit.libreoffice.org/66331 Tested-by: Jenkins Reviewed-by: Justin Luth <justin_luth@sil.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-04-30Resolves: tdf#124920 insert section from clipboard dialog doesn't cancelCaolán McNamara
Change-Id: Ic85cea08a9730cbd87d4ba1344ee6ddaa1b9d7bb Reviewed-on: https://gerrit.libreoffice.org/71567 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-04-30tdf#62699 Drop pass-through header file include/svx/xlineit.hxxGabor Kelemen
Change-Id: I3ae76558f476934dffc2b43b19af848b5ad5015e Reviewed-on: https://gerrit.libreoffice.org/71454 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-04-30sw btlr writing mode: implement ODF filter for textframesMiklos Vajna
Layout is still not yet correct right after the import, though. Change-Id: Icdba2e8d608f35b6b5b43b88ffb223f779af1b89 Reviewed-on: https://gerrit.libreoffice.org/71552 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-04-30Sifr, Breeze, Colibre icon theme update for menubarandreas kainz
Change-Id: I10010dd0c8f0eb51e0ca220e5ce7feee817f25f2 Reviewed-on: https://gerrit.libreoffice.org/71559 Tested-by: Jenkins Reviewed-by: andreas_kainz <kainz.a@gmail.com>
2019-04-30improve loplugin:stringconstantNoel Grandin
to find more places we can elide the OUString() constructor at call sites Change-Id: Ie09f3c61f2c4b4959c97dc98ebcbaf7c51d5d713 Reviewed-on: https://gerrit.libreoffice.org/71514 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-04-30drop Graphic::operator boolNoel Grandin
which tends to interact in very weird ways with other code, for example it makes Graphic appear to have an operator< Change-Id: I335fe8f3644b710bc61291e625cbca7334a37716 Reviewed-on: https://gerrit.libreoffice.org/71532 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2019-04-29sw: prefix members of HTMLTableCellMiklos Vajna
Change-Id: I4ed4307b5c4f820be1b25ffa0372cc30c97c85d7 Reviewed-on: https://gerrit.libreoffice.org/71522 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2019-04-29tdf#123460 DOCX track changes: moveFrom completelyLászló Németh
also with the paragraph mark, not leaving an empty paragraph at the original place of the moved text. Note: as desktop version of MSO does, but its online version leaves empty paragraphs interestingly. Change-Id: I03dda8997df3efbc82e936bd31a3813323e6b5ab Reviewed-on: https://gerrit.libreoffice.org/71382 Reviewed-by: László Németh <nemeth@numbertext.org> Tested-by: László Németh <nemeth@numbertext.org>
2019-04-29tdf#62699 Drop pass-through header file include/svx/xfillit.hxxGabor Kelemen
Change-Id: I6598d81b166486f3c48b119cc136b9f6e6c2a12c Reviewed-on: https://gerrit.libreoffice.org/71336 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-04-29tdf#124398 DOCX drawingML import: handle charts in group shapesMiklos Vajna
Regression from commit 8c73b16f5f18f3bc1dbf9ff6c1475db56b44d304 (DOCX import: declare wpg as a supported feature, 2013-12-05), the problem was that <wpg:graphicFrame> did not forward to to the relevant oox context, and also Writer had no idea how to create a com.sun.star.drawing.OLE2Shape. Fix the later by using the same service name that's in use for the non-groupshape case. Change-Id: Id3536854da7c1f01525bb38d801496ecebd4c161 Reviewed-on: https://gerrit.libreoffice.org/71505 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2019-04-29NB: update contextual single NB in writerandreas kainz
Change-Id: I742881a631bbf60b8b2808554304ba6f75bb8151 Reviewed-on: https://gerrit.libreoffice.org/71501 Tested-by: Jenkins Reviewed-by: andreas_kainz <kainz.a@gmail.com>
2019-04-28Remove unneeded checkMike Kaganski
See commit 60dca2de31ad6a187e35b3a2d751ea674f7f0d9d, which converted preceeding OSL_ENSURE into asserts - so nullptr is considered impossible here. Change-Id: Ia6d8f226d94c84a66bad67ce1b5f702864d61fdc Reviewed-on: https://gerrit.libreoffice.org/71475 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-04-28tdf#120703 PVS: nullptr dereferenceMike Kaganski
V595 The 'GetMedium()' pointer was utilized before it was verified against nullptr. Check lines: 435, 455. bURLChanged is only meaningful when GetMedium() is not nullptr; otherwise bSaveDS could become true where no medium existed, and dereferencing GetMedium() to find its URL would segfault. Change-Id: I6f533acb3b1ca078803aa23bdece0ba2ee1d87c3 Reviewed-on: https://gerrit.libreoffice.org/71467 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-04-28tdf#120703 PVS: nullptr dereferenceMike Kaganski
V595 The 'pContact' pointer was utilized before it was verified against nullptr. Check lines: 1254, 1256. Change-Id: I5d3d28b3c8a70924f329fde9f020f42d9eb5e9a1 Reviewed-on: https://gerrit.libreoffice.org/71459 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-04-28tdf#120703 PVS: Avoid dereferencing nullptrMike Kaganski
V595 The 'pEndIdx' pointer was utilized before it was verified against nullptr. Check lines: 1328, 1347. Change-Id: If9aff472e6ec7429ef2055b44dd11e62d4489ba4 Reviewed-on: https://gerrit.libreoffice.org/71458 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-04-28tdf#120703 PVS: V581 ifs with identical conditionsMike Kaganski
V581 The conditional expressions of the 'if' statements situated alongside each other are identical. Change-Id: I99117fa7c04a5de565833be7bdc001d97e635d61 Reviewed-on: https://gerrit.libreoffice.org/71453 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-04-28rename animate.hxx to animate/Animation.hxx, more changes followTomaž Vajngerl
This is the first step of refactoring Animation where it is needed to separate AnimationBitmap(s) from the Animation class, which is also responsible for displaying of animation. General idea is to make Graphic work only with AnimationBitmaps, which can be freely be swapped out and in, make copies - all transparantly from the actually displaying them and possibly it will also remove the need to copy the animation objects. Change-Id: If5d55ac1a5b26c3880d4f7602be57742b086f9da Reviewed-on: https://gerrit.libreoffice.org/71406 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2019-04-27Fix typosAndrea Gelmini
Change-Id: Id81e8db5a38b4e4a88cc21c50234c2338e9c41bf Reviewed-on: https://gerrit.libreoffice.org/71421 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-04-27tdf#42949 Fix IWYU warnings in include/svx/[a-D]*Gabor Kelemen
Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: I9770343f31f882427c9ae13e363b59cd1fb47e98 Reviewed-on: https://gerrit.libreoffice.org/71295 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-04-27sw: sw_filters_test is quite slow...Michael Stahl
... so remove the slowest files; fdo54724-1.rtf takes 27165ms here and forcepoint-6.rtf takes 23359ms. The files are still tested on crashtesting server. Change-Id: I5177493ed8df690450a41161a233e1d110fdba90 Reviewed-on: https://gerrit.libreoffice.org/71390 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-04-27uitest for bug tdf#123313Zdeněk Crhonek
https://bugs.documentfoundation.org/show_bug.cgi?id=123313#c9 Change-Id: Id72829984affbb1c4ce5bba4704e19a560260357 Reviewed-on: https://gerrit.libreoffice.org/71418 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-04-27weld cluster of change tracking dialogsCaolán McNamara
Change-Id: I42ca7acb41699df91b91a9f59fc68cd30972a397 Reviewed-on: https://gerrit.libreoffice.org/70988 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-04-27uitest for bug tdf#124722Zdeněk Crhonek
Change-Id: Iec8dcde8090058d2d3c93c8eb7e9cbf32acd51e8 Reviewed-on: https://gerrit.libreoffice.org/71391 Tested-by: Jenkins Reviewed-by: Zdenek Crhonek <zcrhonek@gmail.com>