summaryrefslogtreecommitdiff
path: root/libreofficekit/qa
AgeCommit message (Collapse)AuthorFilesLines
2023-07-01cid#1533667 silence Uninitialized scalar variableCaolán McNamara1-0/+3
Change-Id: I6121ed3f9a316172423c9ffc2104510498a58d04 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153823 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-06-27add an --enable-cairo-rgba to set the order of pixels for internal cairoCaolán McNamara1-17/+21
Change-Id: Ieab2ef59f63a7722bffea3273d2eeefadef47b56 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153628 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-06-05Missing include (for std::find_if)Stephan Bergmann1-0/+1
Change-Id: I91d70d72ea6cb18ed4fde2f3b3a3d037668767e5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152615 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-03-11tilebench: allow save after rendering, and better load fail diagnostic.Michael Meeks1-3/+22
Change-Id: I24df1a42b1d3e991a430cf0ca25e9dc53b4bbff2 Signed-off-by: Michael Meeks <michael.meeks@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148674
2023-01-09Missing includeStephan Bergmann1-0/+1
...as reported at <https://lists.freedesktop.org/archives/libreoffice/2023-January/089788.html> "boost 1.81 breaks libetonyek and gtv-calc-header-bar.cxx", > /home/etna/Tmpbuild/libreoffice/libreofficekit/qa/gtktiledviewer/gtv-calc-header-bar.cxx:36:25: error: implicit instantiation of undefined template 'std::vector<(anonymous namespace)::GtvCalcHeaderBarPrivateImpl::Header>' > std::vector<Header> m_aHeaders; > ^ > /home/etna/Runtime/BuildSystem/LLVM13WithWASM/bin/../include/c++/v1/iosfwd:251:28: note: template is declared here > class _LIBCPP_TEMPLATE_VIS vector; > ^ Change-Id: I6cc93195147979a5bf2785faf4bb0e71a9fd4a94 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145185 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-11-30libreofficekit: add a way to invoke getCommandValues()Miklos Vajna4-3/+55
- add a new button to the toolbar to invoke the getCommandValues() LOK API with user-provided command name (and parameters) - log the result using g_info(), which is visible on the console if gtktiledviewer is started with G_MESSAGES_DEBUG=all - change some labels to tooltip texts that actually show up on mouse hover so you can understand what button does what - tweak the icons, so the question mark icon is the getter and the info icon is the setter Change-Id: If6984d2dde3d669b42aafcc3f58a0ca757ccaaff Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143477 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2022-10-26gtktiledviewer: don't crash on sidebar creationMike Kaganski1-0/+5
There's no dialog parent for the sidebar child window. Just ignore the signal for now. Change-Id: Iadfae9174780b10b94e8dd3e6c9efc8c4e8b4b2b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141878 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-10-24_MSC_VER is more appropriate to guard MSVC-specific #pragmaMike Kaganski1-2/+2
Thanks to sberg for noticing this Change-Id: I37a3031cbfa3f8a0751bab126bd742dcec36664f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141743 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-10-24Avoid "deprecated" warning on Windows, tooMike Kaganski1-2/+7
Change-Id: I199adcb3e8b7fabc625b3ac1735326934cc84088 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141739 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-10-22g_get_real_name is a proper match for passwd::pw_gecosMike Kaganski1-1/+3
This fixes 66fcc9db0f7eacd0ebda06d9ee634af2d0e73d04. Also nullptr check is added (passing nullptr to std::string ctor taking null-terminated string is UB). GLib implementation: * https://gitlab.gnome.org/GNOME/glib/-/blob/476e33c3f3632bd32370fadc67b10d61da9a4098/glib/gutils.c#L743 * https://gitlab.gnome.org/GNOME/glib/-/blob/476e33c3f3632bd32370fadc67b10d61da9a4098/glib/gutils.c#L577 Change-Id: I4e36cf836f2889f9aa03167c5ade81c69d9b1dfd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141586 Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-10-22Use g_get_user_name instead of access through getpwuidMike Kaganski1-4/+1
It is more portable - available also on Windows Change-Id: I424e1993ad9621ca42b6f48896d5025832ac681e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141584 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-09-07apply ui-rulesCaolán McNamara1-0/+1
Change-Id: I5acc6cfe5488f8aa92ecaafa0ebdc50f2ad9758e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139591 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-09-06tdf#147021 Use std::size() instead of SAL_N_ELEMENTS() macroRadhey Parekh1-6/+6
Change-Id: Ic9009eda963f922fc4d2e75a5002026eda63a7aa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138686 Tested-by: Jenkins Reviewed-by: Hossein <hossein@libreoffice.org>
2022-06-23clang-tidy modernize-pass-by-value in libreofficekitNoel Grandin1-2/+3
Change-Id: I1a6b4eb804a8cc4eb5e67ae4bbf8f31863f323d7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136273 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-06-01sw content controls, date: add LOK APIMiklos Vajna6-0/+81
- send a LOK_CALLBACK_CONTENT_CONTROL with date=true when entering a date content control - extend lok::Document::sendContentControlEvent() to be able to set the date of a date content control (after the client's date picker is closed) - update gtktiledviewer to work with these Change-Id: I0abf21eb1d4ba233050f0aa2607b68740c048262 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135214 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2022-05-13sw content controls, dropdown: add LOK APIMiklos Vajna8-0/+74
- expose the available list items in a new "items" key of the LOK_CALLBACK_CONTENT_CONTROL callback - add a new lok::Document::sendContentControlEvent() function to be able to select a list item from the current drop-down - add a new listbox to the gtktiledviewer toolbar to select a content control list item when the cursor is inside a dropdown - add tests for the array API of tools::JsonWriter Change-Id: I47f1333a7815d67952f7c20a9cba1b248886f6dd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134256 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2022-01-27Recheck modules [i-l]* with IWYUGabor Kelemen3-4/+4
See tdf#42949 for motivation Change-Id: I758bb27e93779e3df21c463714e49354748f446f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128715 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2021-12-22loplugin:flatten in l10ntools..lotuswordproNoel Grandin1-30/+30
Change-Id: Ie6de142db1987094fdf538148ac5ee33379a3e4b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127275 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-11-13Use o3tl::convertMike Kaganski1-20/+8
Change-Id: I78db3001d602ec1a0847785b3c127b9d345f5af7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125173 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-11-10Avoid -Werror=maybe-uninitializedStephan Bergmann1-1/+3
...with recent GCC 12 trunk, > libreofficekit/qa/gtktiledviewer/gtv-signal-handlers.cxx:194:31: error: ‘unoParam’ may be used uninitialized [-Werror=maybe-uninitialized] > 194 | gchar* pPath = g_strconcat(unoParam[1], "/", "type", nullptr); > | ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Change-Id: Ia7ac20ac63b995e8f4a8b4c79447799972639588 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124961 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-10-31uniformly allow focus into GtkToolbarCaolán McNamara1-3/+3
Change-Id: I110daf882d9196cf7552e43a157ba4ae73fd670b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124458 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-10-31gtk[3 vs 4]: remove can-focus from GtkToolButtonCaolán McNamara1-32/+0
so tab-cycling inside sidebar panel toolbars works as wanted It needs to be false for gtk3 and true for gtk4, leaving it unspecified gets a desired working default. Change-Id: I34869d5dcffc814f62ec2b717108f90c395a067b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124446 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-03-21cid#1474277 Resource leakCaolán McNamara1-20/+22
and... cid#1474319 Resource leak cid#1473965 Resource leak cid#1474109 Resource leak cid#1474179 Resource leak Change-Id: I7daba2a0173a7fe7a912c0febf7957667f0fae83 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112822 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-01-15tdf#138848 add truncate-multiline to all GtkEntries and GtkSpinButtonsCaolán McNamara1-0/+3
except for extensions/uiconfig/spropctrlr/ui/multiline.ui Change-Id: Ia2eca14332ffd4ac6e277c7529f17eca3ba29c0e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109310 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-12-09Missing include (definition of std::stringstream)Stephan Bergmann1-0/+1
Regression introduced with 877f40ac3f2add2b6dc37bae280d4d98dd102286 "tdf#42949 Fix new IWYU warnings in directories [h-r]*". Change-Id: I8a86f5764ebe8c876ed6d6b144c87c005abefdb4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107472 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-11-19tdf#123936 Formatting files in module libreofficekit with clang-formatPhilipp Hofer2-9/+6
Change-Id: I3f086de3a49181d32e54d7d58e1206615a9371e3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105687 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2020-11-15add <!-- n-columns=1 n-rows=1 --> before every GtkGridCaolán McNamara1-0/+1
for a in `git ls-files '*.ui'`; do sed -i 's/^\( *\)\(<object class="GtkGrid".*\)/\1<!-- n-columns=1 n-rows=1 -->\n\1\2/' $a; done so we get the same behavior in glade as before 3.38 in that the grid preview don't show any unoccupied grid squares replace all existing n-columns=X n-rows=Y lines because they are all wrong, except for cui/uiconfig/ui/additionsfragment.ui sw/uiconfig/swriter/ui/pageheaderpanel.ui sw/uiconfig/swriter/ui/pagefooterpanel.ui which are correct. Change-Id: I401bbe8e098c26e7f57d6a872d3b70fc1ce85a00 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105846 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-11-10tdf#42949 Fix new IWYU warnings in directories [h-r]*Gabor Kelemen1-1/+0
Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: I886b6f446293d3b1cfbf4ae05e8dbd7fabab9f20 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105510 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-11-04silence qa test coverity warningCaolán McNamara1-0/+1
Change-Id: Ic25815921360bb5899bf5d452ce77dd9b99fee03 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105281 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-10-22set all .ui min require version of gtk to 3.20Caolán McNamara1-1/+1
and update the version mentioned in our min req in the readme.xrm follow up to commit 0c9ccc7dbf6deb4d012e0d1e6eb934e54e0f19bc Author: Caolán McNamara <caolanm@redhat.com> Date: Fri Oct 2 21:21:45 2020 +0100 raise min version of gtk to 3.20.0 Change-Id: Ibae55c97e1ee577f4b7435d124cda6a21005ad0c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104692 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-09-04Avoid loplugin:external and loplugin:simplifypointertobool warningsTor Lillqvist1-8/+8
Note that this file isn't actually compiled at the moment unless you edit the Module_libreofficekit.mk. And then the unit test will fail. But that is another problem. Change-Id: I431ce889ca4059e98662cddcaee3aa570102c515 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102042 Tested-by: Jenkins Reviewed-by: Tor Lillqvist <tml@collabora.com>
2020-09-04Remove an odd CPPUNIT_ASSERT(0)Tor Lillqvist1-1/+0
The unit test that code is in isn't even run currently (commented out in Module_libreofficekit.mk), so no harm in not making it fail intentionally. (The commit message of the commit that added the test with the intentionally always failing assertion does not tell what the idea was.) Change-Id: I93407723ce10c77366e6f7f96df93d86f214f497 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102030 Tested-by: Jenkins Reviewed-by: Tor Lillqvist <tml@collabora.com>
2020-08-12Missing includesStephan Bergmann2-0/+2
...found when building against LLVM 12 trunk libc++ on Linux Change-Id: Iea8e623222940ed3d3e5830706a4538558ecf418 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100571 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-08-11loplugin:flattenNoel Grandin3-75/+75
Change-Id: I6560756eb63856a22b43e3e65a7b7843cd2d5376 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100447 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-07-20We apparently need to call Application::Quit() on iOS nowTor Lillqvist1-0/+7
(This file is included in ios/UnitTest/UnitTest/ViewController.mm.) Change-Id: I79170785db43d9bdb3aca6f500161862eb6a111b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99028 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Tor Lillqvist <tml@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99031 Tested-by: Jenkins
2020-07-10replace usage of whitelist with allowlistThorsten Behrens1-1/+1
Background and motivation: https://tools.ietf.org/html/draft-knodel-terminology-02 [API CHANGE] officecfg::Office::Common::Misc::OpenCLWhiteList -> OpenCLAllowList Change-Id: I65636b19b13e4af1e4851f70e78053f3443d6bb1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98181 Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2020-07-01Upcoming improved loplugin:staticanonymous -> redundantstatic: libreofficekitStephan Bergmann1-2/+2
Change-Id: I113905b8e13f65f48529969fb93e66074dc6407d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97601 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-05-28Make gtktiledviewer accept multiple documents to openTor Lillqvist1-7/+10
It doesn't really work that well, though. With the right combination of different kinds of documents on the command line, it will even crash. Change-Id: Iccab34a714288fd04c52a21881b6256cfcb86081 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94980 Tested-by: Jenkins Reviewed-by: Tor Lillqvist <tml@collabora.com>
2020-03-06tdf#42949 Fix IWYU warnings in libreofficekit/Gabor Kelemen15-37/+18
Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: Ic57b1259e612cc38ad22f123edbaca690cd506ab Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89937 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-02-21Drop o3tl::optional wrapperStephan Bergmann6-7/+7
...now that macOS builds are guaranteed to have std::optional since 358146bbbd1b9775c12770fb5e497b6ec5adfc51 "Bump macOS build baseline to Xcode 11.3 and macOS 10.14.4". The change is done mostly mechanically with > for i in $(git grep -Fl optional); do > sed -i -e 's:<o3tl/optional\.hxx>\|\"o3tl/optional\.hxx\":<optional>:' \ > -e 's/\<o3tl::optional\>/std::optional/g' \ > -e 's/\<o3tl::make_optional\>/std::make_optional/g' "$i" > done > for i in $(git grep -Flw o3tl::nullopt); do > sed -i -e 's/\<o3tl::nullopt\>/std::nullopt/g' "$i" > done (though that causes some of the resulting #include <optional> to appear at different places relative to other includes than if they had been added manually), plus a few manual modifications: * adapt bin/find-unneeded-includes * adapt desktop/IwyuFilter_desktop.yaml * remove include/o3tl/optional.hxx * quote resulting "<"/">" as "&lt;"/"&gt;" in officecfg/registry/cppheader.xsl * and then solenv/clang-format/reformat-formatted-files Change-Id: I68833d9f7945e57aa2bc703349cbc5a56b342273 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89165 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-12-09Prefer O3TL_UNREACHABLE over assert(false)Stephan Bergmann1-2/+2
...so that -Werror=maybe-uninitialized is also silenced (cf. 281f3d5c418e50a2858619633ebca290bd626c03 "Silence -Werror=maybe-uninitialized") with --disable-assert-always-abort Change-Id: Ie31e18d27823b061375a0740b85bec95740bbecd Reviewed-on: https://gerrit.libreoffice.org/84752 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-12-04Silence -Werror=maybe-uninitializedStephan Bergmann1-0/+5
...where the members of aRectangle passed into gtv_calc_header_bar_draw_text (and unconditionally used there, see the definition further up in this file) are only set for ROW and COLUMN types. Lets assume that no other types can happen here? (This is part of libreofficekit/Executable_gtktiledviewer.mk, see libreofficekit/README for how to execute it.) Change-Id: I487be241e564127183751758710140ab24941f63 Reviewed-on: https://gerrit.libreoffice.org/84424 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-12-01Introduce o3tl::optional as an alias for std::optionalStephan Bergmann6-7/+7
...with a boost::optional fallback for Xcode < 10 (as std::optional is only available starting with Xcode 10 according to <https://en.cppreference.com/w/cpp/compiler_support>, and our baseline for iOS and macOS is still Xcode 9.3 according to README.md). And mechanically rewrite all code to use o3tl::optional instead of boost::optional. One immediate benefit is that disabling -Wmaybe-uninitialized for GCC as per fed7c3deb3f4ec81f78967c2d7f3c4554398cb9d "Slience bogus -Werror=maybe-uninitialized" should no longer be necessary (and whose check happened to no longer trigger for GCC 10 trunk, even though that compiler would still emit bogus -Wmaybe-uninitialized for uses of boost::optional under --enable-optimized, which made me ponder whether this switch from boost::optional to std::optional would be a useful thing to do; I keep that configure.ac check for now, though, and will only remove it in a follow up commit). Another longer-term benefit is that the code is now already in good shape for an eventual switch to std::optional (a switch we would have done anyway once we no longer need to support Xcode < 10). Only desktop/qa/desktop_lib/test_desktop_lib.cxx heavily uses boost::property_tree::ptree::get_child_optional returning boost::optional, so let it keep using boost::optional for now. After a number of preceding commits have paved the way for this change, this commit is completely mechanical, done with > git ls-files -z | grep -vz -e '^bin/find-unneeded-includes$' -e '^configure.ac$' -e '^desktop/qa/desktop_lib/test_desktop_lib.cxx$' -e '^dictionaries$' -e '^external/' -e '^helpcontent2$' -e '^include/IwyuFilter_include.yaml$' -e '^sc/IwyuFilter_sc.yaml$' -e '^solenv/gdb/boost/optional.py$' -e '^solenv/vs/LibreOffice.natvis$' -e '^translations$' -e '\.svg$' | xargs -0 sed -i -E -e 's|\<boost(/optional)?/optional\.hpp\>|o3tl/optional.hxx|g' -e 's/\<boost(\s*)::(\s*)(make_)?optional\>/o3tl\1::\2\3optional/g' -e 's/\<boost(\s*)::(\s*)none\>/o3tl\1::\2nullopt/g' (before committing include/o3tl/optional.hxx, and relying on some GNU features). It excludes some files where mention of boost::optional et al should apparently not be changed (and the sub-repo directory stubs). It turned out that all uses of boost::none across the code base were in combination with boost::optional, so had all to be rewritten as o3tl::nullopt. Change-Id: Ibfd9f4b3d5a8aee6e6eed310b988c4e5ffd8b11b Reviewed-on: https://gerrit.libreoffice.org/84128 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-11-22Extend loplugin:external to warn about classesStephan Bergmann5-0/+22
...following up on 314f15bff08b76bf96acf99141776ef64d2f1355 "Extend loplugin:external to warn about enums". Cases where free functions were moved into an unnamed namespace along with a class, to not break ADL, are in: filter/source/svg/svgexport.cxx sc/source/filter/excel/xelink.cxx sc/source/filter/excel/xilink.cxx svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx All other free functions mentioning moved classes appear to be harmless and not give rise to (silent, even) ADL breakage. (One remaining TODO in compilerplugins/clang/external.cxx is that derived classes are not covered by computeAffectedTypes, even though they could also be affected by ADL-breakage--- but don't seem to be in any acutal case across the code base.) For friend declarations using elaborate type specifiers, like class C1 {}; class C2 { friend class C1; }; * If C2 (but not C1) is moved into an unnamed namespace, the friend declaration must be changed to not use an elaborate type specifier (i.e., "friend C1;"; see C++17 [namespace.memdef]/3: "If the name in a friend declaration is neither qualified nor a template-id and the declaration is a function or an elaborated-type-specifier, the lookup to determine whether the entity has been previously declared shall not consider any scopes outside the innermost enclosing namespace.") * If C1 (but not C2) is moved into an unnamed namespace, the friend declaration must be changed too, see <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71882> "elaborated-type-specifier friend not looked up in unnamed namespace". Apart from that, to keep changes simple and mostly mechanical (which should help avoid regressions), out-of-line definitions of class members have been left in the enclosing (named) namespace. But explicit specializations of class templates had to be moved into the unnamed namespace to appease <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92598> "explicit specialization of template from unnamed namespace using unqualified-id in enclosing namespace". Also, accompanying declarations (of e.g. typedefs or static variables) that could arguably be moved into the unnamed namespace too have been left alone. And in some cases, mention of affected types in blacklists in other loplugins needed to be adapted. And sc/qa/unit/mark_test.cxx uses a hack of including other .cxx, one of which is sc/source/core/data/segmenttree.cxx where e.g. ScFlatUInt16SegmentsImpl is not moved into an unnamed namespace (because it is declared in sc/inc/segmenttree.hxx), but its base ScFlatSegmentsImpl is. GCC warns about such combinations with enabled-by-default -Wsubobject-linkage, but "The compiler doesn’t give this warning for types defined in the main .C file, as those are unlikely to have multiple definitions." (<https://gcc.gnu.org/onlinedocs/gcc-9.2.0/gcc/Warning-Options.html>) The warned-about classes also don't have multiple definitions in the given test, so disable the warning when including the .cxx. Change-Id: Ib694094c0d8168be68f8fe90dfd0acbb66a3f1e4 Reviewed-on: https://gerrit.libreoffice.org/83239 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-11-21loplugin:unusedfieldsNoel Grandin1-1/+0
Change-Id: Ic4cb8444123864fdaee64960f00a05b3066ae5fc Reviewed-on: https://gerrit.libreoffice.org/83387 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-11-19Improved loplugin:external, handling class typesStephan Bergmann1-2/+6
...plus follow-up loplugin:fakebool and loplugin:consttobool findings Change-Id: I2b19d80f7313d3d5b0e502581b39fe20147bdfcc Reviewed-on: https://gerrit.libreoffice.org/83121 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-11-14New loplugin:consttoboolStephan Bergmann6-25/+25
...to: "Find implicit conversions from non-'bool' constants (e.g., 'sal_False') to 'bool'". Due to how FALSE is defined as just #define FALSE (0) (i.e., a literal of type 'int') but TRUE is defined as #define TRUE (!FALSE) (i.e., an implicit conversion from 'int' to 'bool') in GLib (see the comment in ConstToBool::VisitImplicitCastExpr), we get more warnings about uses of 'TRUE' than of 'FALSE'. For example, in libreofficekit/source/gtk/lokdocview.cxx there is a warning about the 'TRUE' in g_main_context_iteration(nullptr, TRUE); but not about the 'FALSE' in g_main_context_iteration(nullptr, FALSE); (where the parameter of 'g_main_context_iteration' is of type 'gboolean'). Lets live with that asymmetry for now... (Besides the issues addressed directly in this commit, it also found the two bogus asserts at 7e09d08807b5ba2fd8b9831557752a415bdad562 "Fix useless assert(true) (which would never fire)" and 122a0be8ae480473bd1d7f35e197a2529f4621e3 "Fix useless assert(true) (which would never fire)", plus 5f0d6df7f57ae281fe161e61c7f25d67453fddd2 "Use two-argument form of static_assert".) Change-Id: Id77322de9f94b85a7b65608a03e0e9865d14467b Reviewed-on: https://gerrit.libreoffice.org/82667 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-11-13Extend loplugin:salbool to loplugin:fakeboolStephan Bergmann2-5/+5
...checking for unnecessary uses of more "fake bool" types. In the past, some of the checks involving the types of variables or data members, or the return types of functions, issued warnings that required surrounding code to be changed too (e.g., when changing the signature of a function whose address was taken). These checks have been tightened now to not warn in such cases (which avoids warnings that require changes to additional code, or changes that might even be impossible to make, at the cost of being less aggressive about removing all unnecessary uses of those "fake bool" types). Change-Id: I70eb75039817cda34ed611387ee27dc5f36a3e2e Reviewed-on: https://gerrit.libreoffice.org/82554 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-11-13lok: calc: switch row / column / grouping data to pixels.Michael Meeks1-4/+3
This simplifies lots of logic in the clients, making it trivial to get good row/column header alignment at any zoom. Ultimately TWIPS here are highly misleading print-twips, and in this state are ~impossible to map to pixels accurately unless all data is present back to the origin (which is not the current approach). Change-Id: I6ca30e77865b62e886e23860f7c23350e544c9fc Reviewed-on: https://gerrit.libreoffice.org/82572 Tested-by: Jenkins Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2019-11-09lok: tilebench: slightly sloppy pixel comparison & larger area.Michael Meeks2-17/+46
Change-Id: Ief9d4bc5ce0e83a9eb9564cb94f773a3ff6048ba Reviewed-on: https://gerrit.libreoffice.org/82357 Tested-by: Jenkins Reviewed-by: Michael Meeks <michael.meeks@collabora.com>