/libpng/

fice-5-0 LibreOffice 核心代码仓库文档基金会
summaryrefslogtreecommitdiff
path: root/sfx2/source/control/bindings.cxx
AgeCommit message (Collapse)Author
2018-02-21tdf#115430 BindDispatch_Impl needs a disposal methodMaxim Monastirsky
The dtor will never be called otherwise, because the dispatcher is holding a reference to us, so removeStatusListener is needed first. Regression of a5dbe5a8a9e98f2d79f2c535182fc557b561ed0f ("use rtl::Reference in svl,sfx2") Change-Id: I52da6152f0ddb0030d7354f7201e969d5a1f11cf Reviewed-on: https://gerrit.libreoffice.org/49423 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com> (cherry picked from commit d09bdaaa660c40df241e6e1c0b8a3e905db85420) Reviewed-on: https://gerrit.libreoffice.org/49463 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2017-11-09new loplugin simplifydynamiccastNoel Grandin
simplify dynamic_cast followed by static_cast Change-Id: I965afcf05d1675094cfde53d3590a0fd00f26279 Reviewed-on: https://gerrit.libreoffice.org/44460 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-10-23loplugin:includeform: sfx2Stephan Bergmann
Change-Id: I5e9a7a2580a710880023288f5ed3584708c4769d
2017-10-06use rtl::Reference in svl,sfx2Noel Grandin
instead of manual ref-counting Change-Id: Icb6472ffadfb57c9723b26f6f247e78fff45e528 Reviewed-on: https://gerrit.libreoffice.org/43193 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-08-10loplugin:unusedenumconstantsNoel Grandin
Change-Id: I54c0c1fca8ea5c89e71c6cd1110fad081ed3d334 Reviewed-on: https://gerrit.libreoffice.org/40953 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-21loplugin:constparams in sfx2Noel Grandin
Change-Id: Id982c8fb5654433e9db10e2da6a86a6c8d90b9b4 Reviewed-on: https://gerrit.libreoffice.org/40261 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-21de-hrc various thingsCaolán McNamara
e.g. helpid[s].hrc -> helpids.h and insert include guards where missing move "ordinary" defines into .hxx files remove .hrc entries that are used as arguments to dialog factory when a dedicated method can be added instead Change-Id: I792fb8eb0adfaa63cf354e6e57401fc943e9196e
2017-06-21loplugin:unusedfields in sfx2 part2Noel Grandin
Change-Id: I227b643641250d47ac6b2218f57ddb231765960e Reviewed-on: https://gerrit.libreoffice.org/39038 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-06-16Make SfxItemSet ranges correct by constructionStephan Bergmann
This is a follow-up to 45a7f5b62d0b1b21763c1c94255ef2309ea4280b "Keep WID ranges sorted, and join adjacent ones". While SfxItemSet::MergeRange relies on the m_pWhichRanges being sorted (and, under DBG_UTIL, asserts if they are not), the various SfxItemSet constructors curiously only check (via assert or DBG_ASSERT) that each individual range has an upper bound not smaller than its lower bound. Arguably, all SfxItemSet instances should fulfill the stronger guarantees required and checked by MergeRange. And in many cases the ranges are statically known, so that the checking can happen at compile time. Therefore, replace the two SfxItemSet ctors taking explicit ranges with two other ctors that actually do proper checking. The (templated) overload taking an svl::Items struct should be used in all cases where the range values are statically known at compile time, while the overload taking a std::initializer_list<Pair> is for the remaining cases (that can only do runtime checking via assert). Most of those latter cases are simple cases with a single range covering a single item, but a few are more complex. (At least some of the uses of the existing SfxItemSet overload taking a const sal_uInt16* pWhichPairTable can probably also be strengthened, but that is left for another day.) This commit is the first in a series of two. Apart from the manual changes to compilerplugins/clang/store/sfxitemsetrewrite.cxx, include/svl/itemset.hxx, and svl/source/items/itemset.cxx, it only consists of automatic rewriting of the relevant SfxItemSet ctor calls (plus a few required manual fixes, see next). But it does not yet check that the individual ranges are properly sorted (see the TODO in svl::detail::validGap). That check will be enabled, and the ensuing manual fixes will be made in a follow-up commit, to reduce the likelyhood of accidents. There were three cases of necessary manual intervention: * sw/source/core/unocore/unostyle.cxx uses eAtr of enum type RES_FRMATR in braced-init-list syntax now, so needs explicit narrowing conversion to sal_uInt16. * In sw/source/uibase/uiview/formatclipboard.cxx, the trailiing comma in the definition of macro FORMAT_PAINTBRUSH_FRAME_IDS needed to be removed manually. * In svx/source/svdraw/svdoashp.cxx, svx/source/svdraw/svdotext.cxx, sw/source/uibase/app/docstyle.cxx, sw/source/uibase/shells/frmsh.cxx, sw/source/uibase/shells/grfsh.cxx, and sw/source/uibase/shells/textsh1.cxx, some comments had to be put back (see "TODO: the replaced range can contain relevant comments" in compilerplugins/clang/store/sfxitemsetrewrite.cxx). A few uses of the variadic form erroneously used nullptr instead of 0 for termination. But this should have been harmless even if promoted std::nullptr_t is larger than promoted sal_uInt16, assuming that the part of the nullptr value that was interpreted as sal_uInt16/promoted int was all-zero bits. Similarly, some uses made the harmless error of using 0L instead of 0. Change-Id: I2afea97282803cb311b9321a99bb627520ef5e35 Reviewed-on: https://gerrit.libreoffice.org/38861 Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Stephan Bergmann <sbergman@redhat.com>
2017-06-12cleanup unused css/frame/* includesJochen Nitschke
Change-Id: I173a29fd1ee889127369d2bc2fce8e010b89ca65 Reviewed-on: https://gerrit.libreoffice.org/38633 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-05-12remove unused uno::Reference varsNoel Grandin
found by temporarily marking Reference as SAL_WARN_UNUSED. Change-Id: I18809b62654467f890016adcc92576980ced393b Reviewed-on: https://gerrit.libreoffice.org/37511 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-04-03coverity#440972 Dereference before null checkCaolán McNamara
Change-Id: If4a1da1859dbdf19a7084341003fd6c41700971f Reviewed-on: https://gerrit.libreoffice.org/36040 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2017-03-29loplugin:unusedmethodsNoel Grandin
Change-Id: Ib008613fb06c82791c63d5b074a3e2ff1c3607a0 Reviewed-on: https://gerrit.libreoffice.org/35834 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-03-28remove enum slot code from sfx2Noel Grandin
since we only used it for the pseudo-slot stuff, which is now gone Change-Id: I72146090e7741d5b71d581fa0b5c6d43c154445a Reviewed-on: https://gerrit.libreoffice.org/35759 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-03-09Clean up uses of integer typesStephan Bergmann
Change-Id: If022ca9de8db49b885065c32b4f6f89debae1392
2017-03-08Simplify GetStateCache callStephan Bergmann
Change-Id: I527d8112f7cf0e4fbc6380484be0c6704f3dfdd4
2017-03-08No need for extra heap allocationStephan Bergmann
Change-Id: I69435ff2be66f8b2ed879bdf7998bd8145ef59b4
2017-03-08loplugin:loopvartoosmallStephan Bergmann
Change-Id: I788afd92bb404d8faf96b631d2e7c6f869e49c2d
2017-01-27use a define for invalid SfxPoolItemJochen Nitschke
and use helper function IsInvalidItem() more Change-Id: Ifd651a336a7bd4ef4f945219d765afb827465438 Reviewed-on: https://gerrit.libreoffice.org/33611 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Jochen Nitschke <j.nitschke+logerrit@ok.de> Tested-by: Jochen Nitschke <j.nitschke+logerrit@ok.de>
2017-01-23Change all Idle* LINKs to be Timer*Jan-Marek Glogowski
Seem UBSAN doesn't like my forced reinterpret_cast to set the Idles Link in the Timer class. Now there are two possible solution: 1. convert all (DECL|IMPL).*_LINK call sites to use a Timer* or 2. split the inheritance of Idle from Timer again to maintain different Link<>s and move all common code into a TimerBase. While the 1st is more correct, the 2nd has a better indicator for Idles. This implements the first solution. And while at it, this also converts all call sites of SetTimeoutHdl and SetIdleHdl to SetInvokeHandler and gets rid of some local Link objects, which are just passed to the SetInvokeHandler call. It also introduces ClearInvokeHandler() and replaces the respective call sites of SetInvokeHandler( Link<Timer *, void>() ). Change-Id: I40c4167b1493997b7f136add4dad2f4ff5504b69
2017-01-17tdf#97087 GDB pretty print the Scheduler task listJan-Marek Glogowski
In addition to the GDB pretty printer, this annotates a lot more Timers and Idles. Change-Id: I5b93fab02161b23bb753e65ef92643a04fb0789c
2016-12-08convert SFX_HINT to scoped enumNoel Grandin
Notes (*) In SC, BULK_DATACHANGED was or'ed into the hint id. Replaced with a dynamic_cast check. (*) In SC, removed the hint id field from ScIndexHint, no point in storing the hint id twice (*) Fold the SfxStyleSheetHintId enum into the new SfxHintId enum, no point in storing two different hint ids (*) In some cases, multiple #define's used to map to the same SFX_HINT value (notably the SFX_HINT_USER* values). I made all of those separate values. Change-Id: I990e2fb587335ebc51c9005588c6a44f768d9de5 Reviewed-on: https://gerrit.libreoffice.org/31751 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-10-19Revert "CppunitTest_desktop_lib: add ModifiedStatus callback testcase"Miklos Vajna
This reverts commit cdf08b3aa74bb32ea18b583a9c0c41b91d7819ac. It breaks 'make -sr CppunitTest_desktop_lib CPPUNIT_TEST_NAME="DesktopLOKTest::testPaintPartTile DesktopLOKTest::testWriterCommentInsertCursor" VALGRIND=memcheck' (it is terminated by SIGSEGV), and also it's the reason why sometimes the lo_ubsan buildbot fails, see e.g. <http://ci.libreoffice.org/job/lo_ubsan/329/console>. This has to be re-introduced once I find a way to process all binding updates at once without side-effects. Conflicts: desktop/qa/desktop_lib/test_desktop_lib.cxx sfx2/source/control/bindings.cxx Change-Id: Id6c49b9b31095ef1a1a8c1cd92cbae5deb316500
2016-10-17Don't swallow exceptions in DBG_UTIL modeStephan Bergmann
Besides, the original "on Windows..." comment from 600163882703c64103784ff66c4bedfbe83809eb "INTEGRATION: CWS fwkfinal1: #i43920#: catch hidden exceptions" looks bogus, anyway. Change-Id: I1a31b63ca5aa818db3730b2006d2381b749e4dd3
2016-10-05Remove _TYPED suffix from tools/link.hxx macrosStephan Bergmann
...which was introduced with 3ead3ad52f9bb2f9d1d6cf8dfc73a0a25e6778ed "Gradually typed Link" to distinguish the new, typed versions from the old, untyped ones, but is no longer necessary since 382eb1a23c390154619c385414bdbe6f6e461173 "remove untyped Link<>" removed the old versions. Change-Id: I494025df486a16a45861fcd8192dfe0275b1103c
2016-09-23perf: eliminate SfxSimpleHint and move to SfxHint, tdf#87101 relatedEike Rathke
There were over 150 places in *::Notify() functions that did some dynamic_cast<SfxSimpleHint*> of which ~98% were unnecessary because the base class SfxHint passed was an SfxSimpleHint anyway. dynamic_cast operations come with quite some cost, so avoid if possible. Specifically for ScFormulaCell::Notify() that created a bottleneck in scenarios where cells were notified that already handled a previous notification. In mass operations doing the dynamic_cast before it could be decided whether having to act on it or not this made 2/3 of all time spent in the Notify() call. To get rid of that rename/move SfxSimpleHint to SfxHint and let classes derive from SfxHint instead of SfxSimpleHint. This comes only with a slight cost that an additional sal_uInt32 is transported in such hints, initialized to 0, but this is neglectable compared to the huge gain. For the rare cases where a Notify() actually expects both, an SfxHint (formerly SfxSimpleHint) and a derived hint, this changed order of the dynamic_cast involved so the simple SfxHint::GetId() is handled last. Modules using such combinations can further optimize by treating the simple SfxHint::GetId() first once verified that none of the other derived hints use an ID not equal to zero respectively none of the ID values the simple hint uses. Change-Id: I9fcf723e3a4487ceb92336189d23a62c344cf0ce Reviewed-on: https://gerrit.libreoffice.org/29205 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Eike Rathke <erack@redhat.com>
2016-09-09loplugin:constantparam in sfx2Noel Grandin
Change-Id: If5d401001abb7bf3fc642d47f537b57836e6d9c5 Reviewed-on: https://gerrit.libreoffice.org/28772 Reviewed-by: Noel Grandin <noelgrandin@gmail.com> Tested-by: Noel Grandin <noelgrandin@gmail.com>
2016-09-01use SfxItemPool::IsSlot instead of custom implementationJochen Nitschke
Change-Id: I435fb78f10f361120ee1865465dab93aa4661806 Reviewed-on: https://gerrit.libreoffice.org/28565 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-06-17use assert, this time correctlyDavid Tardon
Change-Id: I845d9a8e49ca3ecbd7052875783519d18596dd52
2016-06-17use assertDavid Tardon
Change-Id: I12113ddefbba9120427aeed6d1246ff12c92188a
2016-06-08tdf#99815 use XNotifyingDispatch in sfx2Juergen Funk
- move DispatchHelper somewhere public - use it from generic dispatcher call sites in sfx2 - return result of dispatcher calls (conveyed via XDispatchResultListener) to calling code, instead of faking it Change-Id: Ie8041133e99dd99e45819f98798829b96532b9e6 Reviewed-on: https://gerrit.libreoffice.org/24953 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2016-05-22tdf#89329: use unique_ptr for pImpl in bindingsXisco Fauli
Change-Id: I57d06a0e534062259acdeb7ecb0aee71500dac2c Reviewed-on: https://gerrit.libreoffice.org/25304 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-20loplugin:unusedmethods in sfx2, SfxUnoControllerItem goesNoel Grandin
Change-Id: Ibbae76b45da924e44fb91dcb3548106e8b908fbf Reviewed-on: https://gerrit.libreoffice.org/25160 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-18update unusedmethods plugin to deal with constructorsNoel Grandin
and fix the operator< implementations in some of the other plugins too. Change-Id: Ie5631e0cdc8d2a994ad2af2533cdb558a6cfc035 Reviewed-on: https://gerrit.libreoffice.org/25057 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-10clang-tidy modernize-loop-convert sfx2Noel Grandin
Change-Id: Ief72064e2869945734215a7c67440adc6c1550c3 Reviewed-on: https://gerrit.libreoffice.org/24799 Reviewed-by: Noel Grandin <noelgrandin@gmail.com> Tested-by: Noel Grandin <noelgrandin@gmail.com>
2016-04-26update loplugin stylepolice to check local pointers varsNoel Grandin
are actually pointer vars. Also convert from regex to normal code, so we can enable this plugin all the time. Change-Id: Ie36a25ecba61c18f99c77c77646d6459a443cbd1 Reviewed-on: https://gerrit.libreoffice.org/24391 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-04-13loplugin:passstuffbyref in sfx2Noel Grandin
Change-Id: I8c9d6e972f74ee04c8befda3b4cabb6e9b6b2054