summaryrefslogtreecommitdiff
path: root/framework/source/uielement/toolbarmanager.cxx
AgeCommit message (Collapse)Author
2018-07-30Add missing sal/log.hxx headersGabor Kelemen
rtl/string.hxx and rtl/ustring.hxx both unnecessarily #include <sal/log.hxx> (and don't make use of it themselves), but many other files happen to depend on it. This is a continuation of commit 6ff2d84ade299cb3d14d4110e4cf1a4b8070c030 to be able to remove those unneeded includes. This commit adds missing headers to every file found by: grep -FwL sal/log.hxx $(git grep -Elw 'SAL_INFO|SAL_INFO_IF|SAL_WARN|SAL_WARN_IF|SAL_DETAIL_LOG_STREAM|SAL_WHERE|SAL_STREAM|SAL_DEBUG') to directories from filter to jvmfwk Change-Id: I2a73d63f2aaef5f26d7d08957daaa8a30b412ac5 Reviewed-on: https://gerrit.libreoffice.org/58204 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2018-04-27make WB_LINESPACING a bool field on ToolboxNoel Grandin
Change-Id: If9332993a4917b00c230d2a3693daf8c5d3f5559 Reviewed-on: https://gerrit.libreoffice.org/53521 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-04-13Fix typosAndrea Gelmini
Change-Id: If4bc1698af2a43a2dbc45b8518c0f5b736d6abaf Reviewed-on: https://gerrit.libreoffice.org/52278 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2018-04-01remove unused processfactory.hxx includesJochen Nitschke
and fix fallout Change-Id: Id06bf31f2075111e426ba40c84c885ae70697bee Reviewed-on: https://gerrit.libreoffice.org/52206 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jochen Nitschke <j.nitschke+logerrit@ok.de>
2018-03-17Use for-range loops in frameworkJulien Nabet
Change-Id: I72ea832848fd7c76863bcee70a3303de488c0b0f Reviewed-on: https://gerrit.libreoffice.org/51471 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2018-02-14loplugin:changetoolsgen in filter..frameworkNoel Grandin
Change-Id: I622da8a0c096c74efd97326451c4576b230f0483 Reviewed-on: https://gerrit.libreoffice.org/49701 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-12More loplugin:cstylecast: frameworkStephan Bergmann
auto-rewrite with <https://gerrit.libreoffice.org/#/c/47798/> "Enable loplugin:cstylecast for some more cases" plus solenv/clang-format/reformat-formatted-files Change-Id: I8981ef6de675bf10c103e1af0afccd620762268d
2017-12-20Related: tdf#79657 Different approach to disable the context menuMaxim Monastirsky
... in the overflow toolbar. Using ToolBoxMenuType::NONE is wrong as it might affect the layout. Can be easily triggered here by adding FloatWinPopupFlags::GrabFocus to StartPopupMode (which likely will be needed to fully solve tdf#79657). Another case was fixed in 91053763a7189c8ac03a59dc996e6333404f846e ("Fix sub-toolbar tearoff for .uno:ChooseControls"), but without providing a solution for the context menu. Change-Id: I4a0b4560fe49106613fa2337b5dd83eb7fa29f47 Reviewed-on: https://gerrit.libreoffice.org/46837 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com>
2017-10-23loplugin:includeform: frameworkStephan Bergmann
Change-Id: Ib5eaab06ff0cc1b44db9e4057ab349a0990af14d
2017-10-16tdf#79657 Support add-on controls in the overflow toolbarMaxim Monastirsky
Change-Id: Idf76887a49561475587329c304329007034610a1 Reviewed-on: https://gerrit.libreoffice.org/43436 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com>
2017-09-25tdf#83320 Hide vertical text commands earlyMaxim Monastirsky
Instead of listing all commands in one big "if", just do it unconditionally in the shared controller. Change-Id: Ie415c4551a77ca8e1e29e73c0dabaff1dd13cbcb Reviewed-on: https://gerrit.libreoffice.org/42715 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com>
2017-08-11convert std::map::insert to std::map::emplace IINoel Grandin
Change-Id: Ief8bd59c903625ba65b75114b7b52c3b7ecbd331 Reviewed-on: https://gerrit.libreoffice.org/41019 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-21migrate to boost::gettextCaolán McNamara
* all .ui files go from <interface> to <interface domain="MODULE"> e.g. vcl * all .src files go away and the english source strings folded into the .hrc as NC_("context", "source string") * ResMgr is dropped in favour of std::locale imbued by boost::locale::generator pointed at matching MODULE .mo files * UIConfig translations are folded into the module .mo, so e.g. UIConfig_cui goes from l10n target to normal one, so the res/lang.zips of UI files go away * translation via Translation::get(hrc-define-key, imbued-std::locale) * python can now be translated with its inbuilt gettext support (we keep the name strings.hrc there to keep finding the .hrc file uniform) so magic numbers can go away there * java and starbasic components can be translated via the pre-existing css.resource.StringResourceWithLocation mechanism * en-US res files go away, their strings are now the .hrc keys in the source code * remaining .res files are replaced by .mo files * in .res/.ui-lang-zip files, the old scheme missing translations of strings results in inserting the english original so something can be found, now the standard fallback of using the english original from the source key is used, so partial translations shrink dramatically in size * extract .hrc strings with hrcex which backs onto xgettext -C --add-comments --keyword=NC_:1c,2 --from-code=UTF-8 --no-wrap * extract .ui strings with uiex which backs onto xgettext --add-comments --no-wrap * qtz for gettext translations is generated at runtime as ascii-ified crc32 of content + "|" + msgid * [API CHANGE] remove deprecated binary .res resouce loader related uno apis com::sun::star::resource::OfficeResourceLoader com::sun::star::resource::XResourceBundleLoader com::sun::star::resource::XResourceBundle when translating strings via uno apis com.sun.star.resource.StringResourceWithLocation can continue to be used Change-Id: Ia2594a2672b7301d9c3421fdf31b6cfe7f3f8d0a
2017-07-20loplugin:constparams in frameworkNoel Grandin
Change-Id: Iecd19a0cbb3cc78158c17bfa064cc23bafc44b18 Reviewed-on: https://gerrit.libreoffice.org/40206 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-06-25loplugin:oncevar in formula..frameworkNoel Grandin
Change-Id: I96d6af49c1994ebd7d6dcc41469127e3151b4350 Reviewed-on: https://gerrit.libreoffice.org/39186 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-05-28remove unnecessary use of OString::getStrNoel Grandin
Change-Id: I0490efedf459190521f4339854b3394d57765fdb Reviewed-on: https://gerrit.libreoffice.org/38058 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-05-17FwkResId and FwlResId are the sameCaolán McNamara
and FWK_RESSTR/.toString can be removed now Change-Id: I7d2d56681fc9be31948bbb4dae737a75cc59d065
2017-05-14tdf#106999 Feedback for style commandsMaxim Monastirsky
The .uno:StyleApply command takes some arguments, which make it possible to apply any style of any type. The problem is that it doesn't provide toggle state to be used when placing such commands on a toolbar or a menubar. The reason is that sfx2, by design, can provide status updates only for the .uno:StyleApply command as a whole, ignoring any arguments that might be specified in the UI element description. This behavior is even documented in the XDispatch idl. wrt solution, changing the generic UI code to handle the specifics of an individual command can never be a good idea. The usual approach in such cases is to create separate commands which will handle the status updates correctly. This is however not possible in our case because styles can be created by users, and we can't predict their names and create separate commands for all of them (given that now it's easy to add style commands to toolbars and menus - see tdf#106681). One possible solution is to create a toolbar button controller on top of .uno:StyleApply, which will be able to translate its status update to a state compatible with the toolbar. The downside is that it won't work when placing such command inside a menu, and in general the menu code in framework doesn't provide any way to control individual menu items, only a whole sub-menus via a popup menu controller. To fix the menu use-case too, this commit introduces a "proxy" dispatch implementation, which can be used by MenuBarManager in a transparent way, as if it was the "real" application-level dispatcher. This means that the changes needed in MenuBarManager are minimal and do not over-complicate the code, which is a good thing (Alternatively, such dispatcher could be registered via the dispatch interception mechanism, but it will add no gain, given the current requirements, and just add more complexity). And to make it easier to reuse the code, the new dispatcher is also used for the toolbar solution. Change-Id: Ia73b0fa70fd4d1d59360b255aa8fd19570b971ee Reviewed-on: https://gerrit.libreoffice.org/37590 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com>
2017-05-07revert OSL_ASSERT changesChris Sherlock
Change-Id: I365d140446bd2a62cf8256acbfdd53fe72987380
2017-05-07tdf#43157: convert framework module away from OSL_ASSERT to assertChris Sherlock
Change-Id: Iac0093a2a69d53c91c827ebba01fcdb5353e9b96
2017-05-02loplugin:checkunusedparams in frameworkNoel Grandin
Change-Id: I963159550da9d735bb70636917ecc290744298b4 Reviewed-on: https://gerrit.libreoffice.org/37142 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-04-14rework POPUPMENU_TOOLBAR_QUICKCUSTOMIZATIONCaolán McNamara
don't create a menu in order to copy certain entries under certain conditions to another menu, just insert the specific entries from more elemental parts Change-Id: I2254753fdc374742422afdb40fed7e78ae5dfbb2
2017-03-13Clean up integer types representing positions in ToolBox's item vectorStephan Bergmann
(vs. uses of sal_uInt16 representing such items' IDs). APPEND and ITEM_NOTFOUND are members of ToolBox now (and have been bumped to the corresponding type's max). The payload of VclEventIds ToolboxButtonStateChanged ToolboxClick ToolboxHighlightOff ToolboxItemAdded ToolboxItemDisabled ToolboxItemEnabled ToolboxItemRemoved ToolboxItemTextChanged ToolboxItemUpdated ToolboxItemWindowChanged ToolboxSelect has been changed too (note that reading/writing of those payloads isn't very consistent, though: for some of these, values are written that are never read, while for some others no values are ever written but the reading code would like to receive some value if the payload wasn't a nullptr). Change-Id: I4856ffb3637404b8d866621a3503d7922b1b8141
2017-02-28new loplugin unoanyNoel Grandin
Change-Id: I5d6c4a67cb2a09e7cd5bd620c6b262d188701b89 Reviewed-on: https://gerrit.libreoffice.org/34714 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-02-21Use module name when getting labelsMaxim Monastirsky
Change-Id: I1d5196e1ca888dfb11d5bd6ef4676937dce49fdc
2017-02-21tdf#95844 Refactor CommandInfoProviderRohan Kumar
Instead of a singleton, CommandInfoProvider should just be a set of static methods. Change-Id: I16d4406e361a72f013d78f18d6bd0ae20c0cc5e9
2017-02-14Convert WindowType to scoped enumNoel Grandin
Change-Id: I85cfe02f28729e13f2c0dd3d91cd89e6f3e3b6a9 Reviewed-on: https://gerrit.libreoffice.org/34219 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-02-12tdf#42029 Use a floating toolbar to show clipped itemsMaxim Monastirsky
Change-Id: I6b366f115258ef8497807163179d3e08ab3d5e6f Reviewed-on: https://gerrit.libreoffice.org/34180 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com>
2017-02-06MenuToolbarController improvementsMaxim Monastirsky
- Make it self-contained, instead of having its code spread across ToolBarManager. - Base it on svt::ToolboxController directly, since it uses nothing from GenericToolbarController. - Move the code from dtor to dispose method. - Call ToolBox::SetItemDown to make the button work on a second click. Change-Id: I5b38ef532ba40ef0ac31bc53de5b6be4ccd1a118 Reviewed-on: https://gerrit.libreoffice.org/33982 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com>
2017-02-06Add missing #includesStephan Bergmann
...and remove some unncessary using directives/declarations, in preparation of removing now-unnecessary #includes from cppumaker-generated files, post e57ca02849c3d87142ff5ff9099a212e72b8139c "Remove dynamic exception specifications". Change-Id: Iaf1f268871e2ee1d1c76cf90f03557527ebc9067
2017-02-05Restore custom tooltip supportMaxim Monastirsky
This reverts the toolbarmanager.cxx part of 38839ae10cb565ff1977b1839de1c8278eac657b ("Remove the ability to set tooltips in the toolbar xml files"). It is true that tooltips can't be set in xml files, but toolbars can also be created/modified via the UIConfigurationManager and LayoutManager APIs, e.g. the test doc of i#105626 . Change-Id: Ida1559e61e7fd9bd6dcdd7b7159bc5efe070c721
2017-02-05HelpURL toolbar property is unusedMaxim Monastirsky
Change-Id: I74b22509f59899b7c15aa791a01c60c8d982221f
2017-01-26Remove dynamic exception specificationsStephan Bergmann
...(for now, from LIBO_INTERNAL_CODE only). See the mail thread starting at <https://lists.freedesktop.org/archives/libreoffice/2017-January/076665.html> "Dynamic Exception Specifications" for details. Most changes have been done automatically by the rewriting loplugin:dynexcspec (after enabling the rewriting mode, to be committed shortly). The way it only removes exception specs from declarations if it also sees a definition, it identified some dead declarations-w/o-definitions (that have been removed manually) and some cases where a definition appeared in multiple include files (which have also been cleaned up manually). There's also been cases of macro paramters (that were used to abstract over exception specs) that have become unused now (and been removed). Furthermore, some code needed to be cleaned up manually (avmedia/source/quicktime/ and connectivity/source/drivers/kab/), as I had no configurations available that would actually build that code. Missing @throws documentation has not been applied in such manual clean-up. Change-Id: I3408691256c9b0c12bc5332de976743626e13960 Reviewed-on: https://gerrit.libreoffice.org/33574 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
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-10framework: fix race in ToolBarManager creationMichael Stahl
ToolbarLayoutManager::createToolbar() may be called concurrently on different threads, and then it can happen that both threads want to create the same toolbar URL, see that it does not exist in line 457, then both release the SolarMutex and create a new ToolBarManager and the first inserts it and then the second overwrites it on line 514 without disposing the first one. The non-disposed extra ToolBarManager is kept alive because it is registered as a listener on the Frame. When the Frame::close() is called, the ToolbarLayoutManager is disposed, and that disposes all the ToolBarManagers it knows about, but not the extra one, which is then un-ref'd and then has a live VclPtr m_pToolBar, which asserts because the SolarMutex is not locked since commit e794ce1eef6730e5a46d5fb0aa6db2895ede85e7. (This commit is thanks to rr, which recorded the JunitTest_framework_complex execution and allowed debugging this.) Change-Id: I8f5333e8e36ac8ea347ef545e014ffc10501aebb
2016-11-11update vclwidget loplugin to find ref-dropping assigmentNoel Grandin
Look for places where we are accidentally assigning a returned-by-value VclPtr<T> to a T*, which generally ends up in a use-after-free. Change-Id: I4f361eaca88820cdb7aa3b8340212db61580fdd9 Reviewed-on: https://gerrit.libreoffice.org/30749 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-11-09Avoid starting m_aAsyncUpdateControllersTimer of disposed ToolBarManagerStephan Bergmann
Seen a Jenkins build fail in JunitTest_framework_complex as below, and the only remotely plausible scenario I can think of is that a call from Frame::contextChanged -> ToolBarManager::frameAction started the timer after Frame::close -> dispose -> ... -> ToolBarManager::dispose had been called but before Frame::close -> dispose -> ... -> ~ToolBarManager had been called. (And tracing the calls to Frame member functions, there indeed appear to be call patterns during JunitTest_framework_complex where Frame::contextChanged is called from within Frame::close -> dispose -> ...) Any other calls to m_aAsyncUpdateControllersTimer.Start() in ToolBarManager appear to already check for !m_bDisposed. <http://ci.libreoffice.org/job/lo_tb_master_linux_dbg/9049/console>: > #7 0x00002b2653546566 in __assert_fail_base () at /lib64/libc.so.6 > #8 0x00002b2653546612 in () at /lib64/libc.so.6 > #9 0x00002b2676f23777 in framework::ToolBarManager::~ToolBarManager() (this=0x3a48710, __in_chrg=<optimized out>) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/framework/source/uielement/toolbarmanager.cxx:198 > #10 0x00002b2676f23978 in framework::ToolBarManager::~ToolBarManager() (this=0x3a48710, __in_chrg=<optimized out>) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/framework/source/uielement/toolbarmanager.cxx:201 > #11 0x00002b2655fd5328 in cppu::OWeakObject::release() (this=0x3a48710) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/cppuhelper/source/weak.cxx:233 > #12 0x00002b2676ec7138 in cppu::WeakImplHelper<com::sun::star::frame::XFrameActionListener, com::sun::star::lang::XComponent, com::sun::star::ui::XUIConfigurationListener>::release() (this=0x3a48710) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/include/cppuhelper/implbase.hxx:113 > #13 0x00002b2655ef353a in com::sun::star::uno::cpp_release(void*) (pCppI=0x3a48738) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/include/com/sun/star/uno/genfunc.hxx:48 > #14 0x00002b2655c5d4ab in cppu::idestructElements(void*, _typelib_TypeDescriptionReference*, int, int, void (*)(void*)) (pElements=0x32c5a28, pElementType=0x1670d90, nStartIndex=0, nStopIndex=5, release=0x2b2655ef3517 <com::sun::star::uno::cpp_release(void*)>) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/cppu/source/uno/destr.hxx:238 > p = 0x3a48738 > nPos = 4 > #15 0x00002b2655c5d64f in cppu::idestroySequence(_sal_Sequence*, _typelib_TypeDescriptionReference*, _typelib_TypeDescription*, void (*)(void*)) (pSeq=0x32c5a20, pType=0x24a6cf0, pTypeDescr=0x24a6cf0, release=0x2b2655ef3517 <com::sun::star::uno::cpp_release(void*)>) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/cppu/source/uno/destr.hxx:284 > __PRETTY_FUNCTION__ = "void cppu::idestroySequence(uno_Sequence*, typelib_TypeDescriptionReference*, typelib_TypeDescription*, uno_ReleaseFunc)" > #16 0x00002b2655c8952f in uno_type_sequence_destroy(uno_Sequence*, typelib_TypeDescriptionReference*, uno_ReleaseFunc) (sequence=0x32c5a20, type=0x24a6cf0, release=0x2b2655ef3517 <com::sun::star::uno::cpp_release(void*)>) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/cppu/source/uno/sequence.cxx:916 > #17 0x00002b2655f31ba6 in com::sun::star::uno::Sequence<com::sun::star::uno::Reference<com::sun::star::uno::XInterface> >::~Sequence() (this=0x2679070, __in_chrg=<optimized out>) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/include/com/sun/star/uno/Sequence.hxx:113 > rType = invalid uno::Type > #18 0x00002b2655f2ef92 in cppu::OInterfaceIteratorHelper::~OInterfaceIteratorHelper() (this=0x2b26785beaf0, __in_chrg=<optimized out>) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/cppuhelper/source/interfacecontainer.cxx:103 > bShared = false > #19 0x00002b2655f2fb98 in cppu::OInterfaceContainerHelper::disposeAndClear(com::sun::star::lang::EventObject const&) (this=0x32bd280, rEvt=...) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/cppuhelper/source/interfacecontainer.cxx:288 > aGuard = {pT = 0x0} > aIt = {rCont = @0x32bd280, bIsList = 1 '\001', aData = {pAsSequence = 0x2679070, pAsInterface = 0x2679070}, nRemain = 0} > #20 0x00002b2655f308d7 in cppu::OMultiTypeInterfaceContainerHelper::disposeAndClear(com::sun::star::lang::EventObject const&) (this=0x38bc030, rEvt=...) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/cppuhelper/source/interfacecontainer.cxx:477 > i = 0 > nSize = 3 > ppListenerContainers = std::unique_ptr<cppu::OInterfaceContainerHelper *> containing 0x2f7c650 > #21 0x00002b2676e37180 in (anonymous namespace)::Frame::disposing() (this=0x38bbf30) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/framework/source/services/frame.cxx:2242 > parent = uno::Reference to (com::sun::star::uno::XInterface *) 0x2b26785beca0 > xThis = uno::Reference to ((anonymous namespace)::Frame *) 0x38bbfa0 > layoutMgr = uno::Reference to (framework::LayoutManager *) 0x2fa5190 > aEvent = {Source = uno::Reference to ((anonymous namespace)::Frame *) 0x38bbfa0} > xDisposableCtrl = uno::Reference to (com::sun::star::uno::XInterface *) 0x2b26785beca0 > xDisposableComp = uno::Reference to (com::sun::star::uno::XInterface *) 0x2b2676e34200 <(anonymous namespace)::Frame::isActive()+160> > disp = 0x2f7c650 > xDispatchHelper = uno::Reference to (com::sun::star::uno::XInterface *) 0x2b26785bec80 > old = Application::Off > contWin = uno::Reference to (com::sun::star::uno::XInterface *) 0x2b26785bf050 > #22 0x00002b2655f2b262 in cppu::WeakComponentImplHelperBase::dispose() (this=0x38bbf30) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/cppuhelper/source/implbase.cxx:107 > aEvt = {Source = uno::Reference to ((anonymous namespace)::Frame *) 0x38bbf30} > aGuard2 = {pT = 0x39553a0} > aGuard = {pT = 0x0} > #23 0x00002b2676e3f0a6 in cppu::PartialWeakComponentImplHelper<com::sun::star::lang::XServiceInfo, com::sun::star::frame::XFrame2, com::sun::star::awt::XWindowListener, com::sun::star::awt::XTopWindowListener, com::sun::star::awt::XFocusListener, com::sun::star::document::XActionLockable, com::sun::star::util::XCloseable, com::sun::star::frame::XComponentLoader, com::sun::star::frame::XTitle, com::sun::star::frame::XTitleChangeBroadcaster, com::sun::star::beans::XPropertySet, com::sun::star::beans::XPropertySetInfo>::dispose() (this=0x38bbf30) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/include/cppuhelper/compbase.hxx:94 > #24 0x00002b2676e34edb in (anonymous namespace)::Frame::close(sal_Bool) (this=0x38bbf30, bDeliverOwnership=0 '\000') at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/framework/source/services/frame.cxx:1829 > xSelfHold = uno::Reference to ((anonymous namespace)::Frame *) 0x38bbf30 > aSource = {Source = uno::Reference to ((anonymous namespace)::Frame *) 0x38bbf30} > pContainer = 0x33c4ba0 > aWriteLock = {m_bCleared = true, m_solarMutex = @0x16529c0} > #25 0x00002b26752971a1 in gcc3::callVirtualMethod(void*, unsigned int, void*, _typelib_TypeDescriptionReference*, bool, unsigned long*, unsigned int, unsigned long*, double*) (pThis=0x38bbfd0, nVtableIndex=5, pRegisterReturn=0x0, pReturnTypeRef=0x165a1b0, bSimpleReturn=true, pStack=0x2b26785bf1a0, nStack=0, pGPR=0x2b26785bf2c0, pFPR=0x2b26785bf2f0) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/bridges/source/cpp_uno/gcc3_linux_x86-64/callvirtualmethod.cxx:133 > data = {pMethod = 47444203360446, pStack = 0x2b26785bf1a0, nStack = 0, pGPR = 0x2b26785bf2c0, pFPR = 0x2b26785bf2f0, rax = 47444228043088, rdx = 47444228043040, xmm0 = 4.9549649932863477e-314, xmm1 = 2.3440563169523938e-310} > pMethod = 47444209328504 > #26 0x00002b26752960bc in cpp_call(bridges::cpp_uno::shared::UnoInterfaceProxy*, bridges::cpp_uno::shared::VtableSlot, typelib_TypeDescriptionReference*, sal_Int32, typelib_MethodParameter*, void*, void**, uno_Any**) (pThis=0x2f330e0, aVtableSlot=..., pReturnTypeRef=0x165a1b0, nParams=1, pParams=0x3200050, pUnoReturn=0x0, pUnoArgs=0x3a70260, ppUnoExc=0x2b26785bf478) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:245 > pStack = 0x2b26785bf1a0 > pFPR = {2.34405631697769e-310, 2.3440546323697648e-310, 1.0609978954826362e-313, 2.3440563169796168e-310, 2.5903774855902888e-316, -9.6283901862001054e-07, 2.3440563169800615e-310, 0} > __PRETTY_FUNCTION__ = "void cpp_call(bridges::cpp_uno::shared::UnoInterfaceProxy*, bridges::cpp_uno::shared::VtableSlot, typelib_TypeDescriptionReference*, sal_Int32, typelib_MethodParameter*, void*, void**, uno_Any**)" > pCppArgs = 0x2b26785bf170 > pStackStart = 0x2b26785bf1a0 > pGPR = {59490256, 0, 47444228043568, 47444174450194, 0, 52429824} > nTempIndices = 0 > nFPR = 0 > pAdjustedThisPtr = 0x38bbfd0 > ppTempParamTypeDescr = 0x2b26785bf180 > nGPR = 2 > pReturnTypeDescr = 0x165a1b0 > pCppReturn = 0x0 > bSimpleReturn = true > pTempIndices = 0x2b26785bf178 > #27 0x00002b2675296ada in bridges::cpp_uno::shared::unoInterfaceProxyDispatch(_uno_Interface*, _typelib_TypeDescription const*, void*, void**, _uno_Any**) (pUnoI=0x2f330e0, pMemberDescr=0x3200400, pReturn=0x0, pArgs=0x3a70260, ppException=0x2b26785bf478) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:436 > nMemberPos = 5 > aVtableSlot = {offset = 0, index = 5} > pThis = 0x2f330e0 > pTypeDescr = 0x2590e40 > __PRETTY_FUNCTION__ = "void bridges::cpp_uno::shared::unoInterfaceProxyDispatch(uno_Interface*, const typelib_TypeDescription*, void*, void**, uno_Any**)" > #28 0x00002b267653517a in binaryurp::IncomingRequest::execute_throw(binaryurp::BinaryAny*, std::__debug::vector<binaryurp::BinaryAny, std::allocator<binaryurp::BinaryAny> >*) const (this=0x3aba970, returnValue=0x2b26785bf8a0, outArguments=0x2b26785bf920) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/binaryurp/source/incomingrequest.cxx:242 > exc = <error reading variable: Cannot access memory at address 0x3aba87808> > pexc = 0x2b26785bf4a0 > retType = {_pTypeDescr = 0x165a1b0} > nSize = 0 > retBuf = std::__debug::vector of length 0, capacity 0 > outBufs = empty std::__debug::list > args = std::__debug::vector of length 1, capacity 1 = {0x3a331c0} > __PRETTY_FUNCTION__ = "bool binaryurp::IncomingRequest::execute_throw(binaryurp::BinaryAny*, std::__debug::vector<binaryurp::BinaryAny>*) const" > isExc = false > #29 0x00002b2676533f7a in binaryurp::IncomingRequest::execute() const (this=0x3aba970) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/binaryurp/source/incomingrequest.cxx:77 > resetCc = true > oldCc = {m_pUnoI = 0x0} > ret = {data_ = _uno_Any(void)} > outArgs = std::__debug::vector of length 0, capacity 0 > isExc = false > #30 0x00002b2676554a88 in binaryurp::(anonymous namespace)::request(void*) (pThreadSpecificData=0x3aba970) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/binaryurp/source/reader.cxx:85 > __PRETTY_FUNCTION__ = "void binaryurp::{anonymous}::request(void*)" > #31 0x00002b2655c27f0b in cppu_threadpool::JobQueue::enter(long, bool) (this=0x398ea80, nDisposeId=39254816, bReturnWhenNoJob=true) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/cppu/source/threadpool/jobqueue.cxx:107 > guard = {pT = 0x398ea80} > job = {pThreadSpecificData = 0x3aba970, doRequest = 0x2b2676554a1f <binaryurp::(anonymous namespace)::request(void*)>} > pReturn = 0x0 > #32 0x00002b2655c2cb57 in cppu_threadpool::ORequestThread::run() (this=0x256fb20) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/cppu/source/threadpool/thread.cxx:168 > #33 0x00002b2655c2d04d in osl::threadFunc(void*) (param=0x256fb30) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/include/osl/thread.hxx:185 > pObj = 0x256fb30 > #34 0x00002b2652f08340 in osl_thread_start_Impl(void*) (pData=0x2570ac0) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/sal/osl/unx/thread.cxx:240 > terminate = false > pImpl = 0x2570ac0 > __PRETTY_FUNCTION__ = "void* osl_thread_start_Impl(void*)" > #35 0x00002b26538e1dc5 in start_thread () at /lib64/libpthread.so.0 > #36 0x00002b265360eced in clone () at /lib64/libc.so.6 Change-Id: I27e15a72f6b96484cb45928eaabae589cf9d7ed7
2016-11-08Return early from double ToolBarManager::disposeStephan Bergmann
...if that should ever happen. Also means that ToolBarManager::RemoveControllers will now only be called with m_bDispose being false. Change-Id: If17d60f291cc8dad19d6f6e33d39e08c7f8ad7aa
2016-11-08Clean up (calls to) ToolBarManager::RemoveControllersStephan Bergmann
...which turns out to be only called with SolarMutex locked Change-Id: I3264b0a043da7111b8ca12c59ee7a590f1a43b8e
2016-11-07loplugin:oncevar in frameworkNoel Grandin
Change-Id: I7528a4afd59a19b069bcad2106ca80f429ef12e0 Reviewed-on: https://gerrit.libreoffice.org/30525 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-10-30tdf#95014 initial support for 32 px icons in toolbarTomaž Vajngerl
This adds support for 32 pixel icons - mainly to get them into the toolbar. Most changes made are to change the behavior of having only small and large icons as a boolean choice, but not every code path was converted to non-boolean choice yet. Breeze icon theme has the 32px variants so it can be used already. Change-Id: Iadf832a87826c16b3a83522104dd6c35d61a0f87 Reviewed-on: https://gerrit.libreoffice.org/30398 Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Tested-by: Tomaž Vajngerl <quikee@gmail.com>
2016-10-30Let Menu dispose submenusMaxim Monastirsky
(I'm not sure about how good are the changes from ScopedVclPtr to non-scoped, and disposeAndClear to clear. They aren't really needed, because of the VclReferenceBase::mbDisposed logic. But at least they should be safe, as long as we have disposeOnce calls in Menu's dtor.) See also previous commits: 4433d95b374c13a3501cdf3a6e273f68eb49873a ("MenuItemData now properly disposes the submenu") 89c23b4aaef931b5d6009efaf44ce6e6c976e8d4 ("Sub menus no longer need manual disposing") Change-Id: I9d455a94590f5eec9b097947f6984f1b3e477b52
2016-10-13Don't add experimental commands to the ToolbarSamuel Mehrbrodt
Change-Id: I1c1eb33f938bf8d6acac13dfe0a2119a4967e2a1
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-05convert ToolBoxButtonSize to scoped enumNoel Grandin
Change-Id: I365b0e34361eb339b04e5f4792f54eff5bf582a5
2016-06-23tdf#97527 - vcl: reference-count MenuNoel Grandin
some places are marked with "dodgy"- need to check those to see what is going on, because they are leaving dangling pointers behind in the Menu class Change-Id: I41d5c7c0fec2f70ce9e3ffdc48cd03d26c0a869b Reviewed-on: https://gerrit.libreoffice.org/26516 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-25tdf#98753 Find Toolbar does not display "Search key not found"Samuel Mehrbrodt
Revert "Toolbar: Refactor insert toolitem code" This reverts commit 27bdc70d83d4a4f1ebb89429f61b39084e739aaa. Change-Id: I1d46cddfd656ab8c809b6cd6308725a8e67fe538 Reviewed-on: https://gerrit.libreoffice.org/25433 Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> Tested-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2016-05-16Resolves: tdf#99857 missing items from toolbar right clickCaolán McNamara
we do an activate/deactivate to force the vcl menu to update so we have a full model before we try to show the gtk one. This particular toplevel menu has a deactivate handler which empties out the submenus on the deactivate, so we don't get the full thing, so we end up with missing entries. The Deactivate to empty the menu is a bit dubious. Even if we limited the activate/deactivate to submenus we still get the deactivate before the "select" so the ordering is fragile. The Deactivate handler seems dubious anyway, why not just clear it out after the Execute has finished which is simpler and more direct anyway dde83e3cea5b5fc1f91ebd336a2071ce8ff75e75 Change-Id: I56145f6236db1787cc4ee623c513cb927bf2a972
2016-05-10Convert TOOLBOX_MENUTYPE_ to scoped enumNoel Grandin
Change-Id: I8eb25fc274b45b8add04dfc03e4b52f130ad04de Reviewed-on: https://gerrit.libreoffice.org/24827 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>