Commit Graph
6612 Commits
Author SHA1 Message Date
Noel Grandin e6ffb539ee loplugin:vclwidgets check for assigning from VclPt<T> to T*
Inspired by a recent bug report where we were assigning the result
of VclPtr<T>::Create to a raw pointer.

As a consequence, we also need to change various methods that were
returning newly created Window subclasses via raw pointer, to
instead return those via VclPtr

Change-Id: I8118e0195a5b2b4780e646cfb0e151692e54ae2b
Reviewed-on: https://gerrit.libreoffice.org/31318
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-11-29 06:45:42 +00:00
Markus Mohrhard 039261b3f6 orcus is mandatory now
We use it as a json parser, for calc cell styles and tests. Making it
optional is just making the code more complex and introduces more
sources for errors.

Change-Id: I8769628a4ab9519cafc3d43db7c0007e0aa265dc
Reviewed-on: https://gerrit.libreoffice.org/31307
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
2016-11-28 15:52:20 +00:00
Stephan Bergmann e19ffa1359 Revert "Timer::Start must be called with SolarMutex locked"
This reverts commit 1c3e88a4ffd927d4dda8bb9e0d05cddc6cd685c0; the static
AutoRecovery instance is only destroyed during exit, but wants to use
SolarMutex; that causes crashes at least in CppunitTest_services.  Apparently
needs more thought.
2016-11-22 16:46:14 +01:00
Stephan Bergmann 1c3e88a4ff Timer::Start must be called with SolarMutex locked
cf. DBG_TESTSOLARMUTEX added to Scheduler::Start in
c00d8271ba "vcl: assert solar mutex is held for
various timer / scheduler ops."

So cover operations on AutoRecovery::m_aTimer with SolarMutexGuard instead of
AutoRecovery's own mutex.  Is it safe to split guarding like that here?
Hopefully.  Would it be better to exclusively use SolarMutexGuard?  Maybe.

The DBG_TESTSOLARMUTEX assert fired at least on macOS when opening some .odb
file:

> frame #19: 0x00007fffc80e5893 libsystem_c.dylib`__assert_rtn + 320
> frame #20: 0x000000010f5e4dae libvcllo.dylib`ImplDbgTestSolarMutex() + 110 at vcl/source/app/dbggui.cxx:47
> frame #21: 0x000000010e6a5d62 libtllo.dylib`DbgTestSolarMutex() + 130 at tools/source/debug/debug.cxx:74
> frame #22: 0x000000010f5eeb3a libvcllo.dylib`Scheduler::Start(this=0x00000001489233a8) + 58 at vcl/source/app/scheduler.cxx:287
> frame #23: 0x000000010f62f03f libvcllo.dylib`Timer::Start(this=0x00000001489233a8) + 31 at vcl/source/app/timer.cxx:93
> frame #24: 0x00000001481b7483 libfwklo.dylib`(anonymous namespace)::AutoRecovery::implts_updateTimer(this=0x00000001489232a0) + 259 at framework/source/services/autorecovery.cxx:2274
> frame #25: 0x00000001481b3009 libfwklo.dylib`(anonymous namespace)::AutoRecovery::changesOccurred(this=0x00000001489232a0, aEvent=0x00007f92d87d0ec8) + 649 at framework/source/services/autorecovery.cxx:1678
> frame #26: 0x000000014807e04b libfwklo.dylib`framework::WeakChangesListener::changesOccurred(this=0x0000000148c42488, rEvent=0x00007f92d87d0ec8) + 155 at framework/inc/helper/mischelper.hxx:222
> frame #27: 0x000000011c13f29e libconfigmgrlo.dylib`configmgr::Broadcaster::send(this=0x00007000082f9e70) + 5694 at configmgr/source/broadcaster.cxx:187
> frame #28: 0x000000011c0fd9bc libconfigmgrlo.dylib`configmgr::Access::insertByName(this=0x0000000148c118e0, aName=0x00007000082fa258, aElement=0x00007000082fa118) + 3196 at configmgr/source/access.cxx:1232
> frame #29: 0x00000001481bdd23 libfwklo.dylib`(anonymous namespace)::AutoRecovery::implts_flushConfigItem(this=0x00000001489232a0, rInfo=0x00007000082fa600, bRemoveIt=false)::AutoRecovery::TDocumentInfo const&, bool) + 2483 at framework/source/services/autorecovery.cxx:2092
> frame #30: 0x00000001481bb09d libfwklo.dylib`(anonymous namespace)::AutoRecovery::implts_registerDocument(this=0x00000001489232a0, xDocument=0x00007000082fa790) + 3597 at framework/source/services/autorecovery.cxx:2519
> frame #31: 0x00000001481b2a35 libfwklo.dylib`(anonymous namespace)::AutoRecovery::documentEventOccured(this=0x00000001489232a0, aEvent=0x00007f92db3d8620) + 165 at framework/source/services/autorecovery.cxx:1571
> frame #32: 0x00000001481d025b libfwklo.dylib`framework::WeakDocumentEventListener::documentEventOccured(this=0x0000000148c42548, rEvent=0x00007f92db3d8620) + 155 at framework/inc/helper/mischelper.hxx:258
> frame #33: 0x0000000109fca69e libsfxlo.dylib`comphelper::OInterfaceContainerHelper2::NotifySingleListener<com::sun::star::document::XDocumentEventListener, com::sun::star::document::DocumentEvent>::operator(this=0x00007000082fa910, listener=0x00007000082fa880)(com::sun::star::uno::Reference<com::sun::star::document::XDocumentEventListener> const&) const + 126 at include/comphelper/interfacecontainer2.hxx:272
> frame #34: 0x0000000109fca4a3 libsfxlo.dylib`void comphelper::OInterfaceContainerHelper2::forEach<com::sun::star::document::XDocumentEventListener, comphelper::OInterfaceContainerHelper2::NotifySingleListener<com::sun::star::document::XDocumentEventListener, com::sun::star::document::DocumentEvent> >(this=0x00000001489186b8, func=0x00007000082fa910) + 163 at include/comphelper/interfacecontainer2.hxx:285
> frame #35: 0x0000000109fca0de libsfxlo.dylib`void comphelper::OInterfaceContainerHelper2::notifyEach<com::sun::star::document::XDocumentEventListener, com::sun::star::document::DocumentEvent>(this=0x00000001489186b8, NotificationMethod=21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00, Event=0x00007f92db3d8620)(com::sun::star::document::DocumentEvent const&), com::sun::star::document::DocumentEvent const&) + 126 at include/comphelper/interfacecontainer2.hxx:298
> frame #36: 0x0000000109fc9f08 libsfxlo.dylib`(anonymous namespace)::SfxGlobalEvents_Impl::implts_notifyListener(this=0x0000000148918628, aEvent=0x00007f92db3d8620) + 168 at sfx2/source/notify/globalevents.cxx:438
> frame #37: 0x0000000109fc6874 libsfxlo.dylib`(anonymous namespace)::SfxGlobalEvents_Impl::documentEventOccured(this=0x0000000148918628, Event=0x00007f92db3d8620) + 132 at sfx2/source/notify/globalevents.cxx:243
> frame #38: 0x000000014957597e libdbalo.dylib`comphelper::OInterfaceContainerHelper2::NotifySingleListener<com::sun::star::document::XDocumentEventListener, com::sun::star::document::DocumentEvent>::operator(this=0x00007000082fab30, listener=0x00007000082faaa0)(com::sun::star::uno::Reference<com::sun::star::document::XDocumentEventListener> const&) const + 126 at include/comphelper/interfacecontainer2.hxx:272
> frame #39: 0x0000000149575753 libdbalo.dylib`void comphelper::OInterfaceContainerHelper2::forEach<com::sun::star::document::XDocumentEventListener, comphelper::OInterfaceContainerHelper2::NotifySingleListener<com::sun::star::document::XDocumentEventListener, com::sun::star::document::DocumentEvent> >(this=0x00007f92db0965f0, func=0x00007000082fab30) + 163 at include/comphelper/interfacecontainer2.hxx:285
> frame #40: 0x000000014957407e libdbalo.dylib`void comphelper::OInterfaceContainerHelper2::notifyEach<com::sun::star::document::XDocumentEventListener, com::sun::star::document::DocumentEvent>(this=0x00007f92db0965f0, NotificationMethod=21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00, Event=0x00007f92db3d8620)(com::sun::star::document::DocumentEvent const&), com::sun::star::document::DocumentEvent const&) + 126 at include/comphelper/interfacecontainer2.hxx:298
> frame #41: 0x0000000149573dfb libdbalo.dylib`dbaccess::DocumentEventNotifier_Impl::impl_notifyEvent_nothrow(this=0x00007f92db0965a0, _rEvent=0x00007f92db3d8620) + 379 at dbaccess/source/core/dataaccess/documenteventnotifier.cxx:196
> frame #42: 0x0000000149574580 libdbalo.dylib`dbaccess::DocumentEventNotifier_Impl::processEvent(this=0x00007f92db0965a0, _rEvent=0x00007f92db3d8610) + 224 at dbaccess/source/core/dataaccess/documenteventnotifier.cxx:229
> frame #43: 0x000000010832ba30 libcomphelper.dylib`comphelper::AsyncEventNotifierBase::execute(this=0x000000014df32dd0) + 1184 at comphelper/source/misc/asyncnotification.cxx:163
> frame #44: 0x000000010832e28a libcomphelper.dylib`comphelper::AsyncEventNotifierAutoJoin::run(this=0x000000014df32dd0) + 90 at comphelper/source/misc/asyncnotification.cxx:263
> frame #45: 0x000000010832f23e libcomphelper.dylib`::threadFunc(param=0x000000014df32dd0) + 30 at include/osl/thread.hxx:185
> frame #46: 0x0000000107e9bc27 libuno_sal.dylib.3`osl_thread_start_Impl(pData=0x00007f92db351d30) + 295 at sal/osl/unx/thread.cxx:240
> frame #47: 0x00007fffc82a1aab libsystem_pthread.dylib`_pthread_body + 180
> frame #48: 0x00007fffc82a19f7 libsystem_pthread.dylib`_pthread_start + 286
> frame #49: 0x00007fffc82a1221 libsystem_pthread.dylib`thread_start + 13

Change-Id: I58fe8d61bfc491fa635b75d471a221bbb55c0f6e
2016-11-22 15:59:01 +01:00
Caolán McNamara 19c3559e87 Resolves: rhbz#1397181 toolbar layout manager not respecting drag cancel
plus restore original mbDockCanceled state after wayland-enforced
cancel otherwise next drag won't work

Change-Id: Idefed25b925b36d0bf72b77609c4fc2eb47f71b9
2016-11-22 14:13:42 +00:00
Noel Grandin 0a840edcc1 includes should be at the top of the file
not randomly scattered through the code

found with something like:
   git ls-files *.cpp | xargs grep -Pzl "(?s){.*#include"

Change-Id: I9c242fa4ef99e8677f2800d7ec9f16d16e488351
Reviewed-on: https://gerrit.libreoffice.org/30952
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-11-18 09:25:06 +00:00
Noel Grandin 7cca2c7fb3 new loplugin finalprotected
look for final classes, and make sure they don't have protected members

Change-Id: I1fa810659bba02b61a5160dbfd8e24185ec9abf4
Reviewed-on: https://gerrit.libreoffice.org/30895
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-11-16 09:10:16 +00:00
Maxim Monastirsky 01be56c648 Type detection can handle empty doc service just fine
But actually I can't imagine why the doc service could be
empty here, esp. since 8655fa318c
("Fix property name: ModuleName -> ModuleIdentifier").

Change-Id: I9a39cf0840910069769b4bedd61930aab2155e1b
2016-11-11 11:14:25 +02:00
Maxim Monastirsky 2a778b4a4d RecentFile::aTitle is never read
Change-Id: Ic9f613f10914113af62fe6876e1a837a610a5782
2016-11-11 11:13:27 +02:00
Maxim Monastirsky ecdb04638c RecentFilesMenuController: Remove duplicate dispatch handling
Change-Id: I3f2729bfe82c059bbf934510cb4066a77867f3c8
2016-11-11 11:11:11 +02:00
Caolán McNamara a6d324f30b Resolves: rhbz#1391418 wayland toolbars can't be docked after undocking
see gnome#768128 for extra details

under wayland, given the misery here I'm going to just disable toggling between
docked and undocked under wayland, and throw away user config on toggling
docked/undocked away from the defaults. You can still drag docked things around
to new docking position, but you can't pull them out of the dock to float.

non-wayland is unaffected

Change-Id: Iaa859f3420e6d1b103a8b93d1ad8f82dbffe75d4
Reviewed-on: https://gerrit.libreoffice.org/30752
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
2016-11-11 08:51:10 +00:00
Noel Grandin 78b4a1fb01 update vclwidget loplugin to find ref-dropping assigment
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-11 06:55:41 +00:00
Stephan Bergmann 574d331e76 Avoid starting m_aAsyncUpdateControllersTimer of disposed ToolBarManager
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-09 17:19:53 +01:00
Stephan Bergmann 5d80555938 Return early from double ToolBarManager::dispose
...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-08 17:18:44 +01:00
Stephan Bergmann 991dad0a93 Clean up (calls to) ToolBarManager::RemoveControllers
...which turns out to be only called with SolarMutex locked

Change-Id: I3264b0a043da7111b8ca12c59ee7a590f1a43b8e
2016-11-08 16:53:57 +01:00
Stephan Bergmann cb34498395 Clean up (calls to) StatusBarManger::RemoveControllers
...which turns out to be only called with SolarMutex locked and m_bDisposed
being false

Change-Id: I454e7951ea579fb6d9dc71d0aabebd373380b3e4
2016-11-08 16:14:32 +01:00
Stephan Bergmann c0da11fb1c There's no derivations from StatusBarManager
Change-Id: Ifa2970cf838209b72e286109f14b98e77f389c0b
2016-11-08 15:52:40 +01:00
Noel Grandin 98460e7a50 loplugin:expandablemethods in framework
Change-Id: I444f31f06d2445392a59879c2d7fb1f8ad1c24c6
Reviewed-on: https://gerrit.libreoffice.org/30684
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-11-08 08:53:09 +00:00
Noel Grandin 525a45f22f loplugin:unnecessaryvirtual in framework
Change-Id: I893bf955e45e661e3ec440dbd530fca22931c23b
Reviewed-on: https://gerrit.libreoffice.org/30666
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-11-08 06:11:28 +00:00
Miklos Vajna 6f7016a9df officecfg: add .uno:SignPDF label
And replace the existing .uno:Signature in the File menus with a submenu
that contains .uno:Signature and the new .uno:SignPDF.

Change-Id: I801b9332c697985446c64dd208c25dea2494350e
2016-11-07 17:28:22 +01:00
Noel Grandin 7f509501e9 loplugin:oncevar in framework
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-11-07 06:38:52 +00:00
Maxim Monastirsky ba28100d81 NewDocument is now unused
Change-Id: Ifce80cec8935b960b14716d09080f76351633c0b
2016-11-06 22:05:06 +02:00
Maxim Monastirsky cea3b8762b NewMenuController: Fix template manager icon
The current logic is swapped. MenuAttributes::aImageId can be
only handled by SvFileInformationManager, while the menu item
command is what might be (in case of .uno command) handled
by CommandInfoProvider.

This gone wrong in tdf#96059 which wrongly assumed that
GetImageFromURL is equivalent to what's provided by
CommandInfoProvider (so other places should be checked too).

Change-Id: Ia487c602753dde3fb0d0462ef4b3d63209398b36
2016-11-06 21:37:27 +02:00
Maxim Monastirsky 5bd6b61a7c NewMenuController: Remove duplicate async dispatch handling
Change-Id: I881e6781c5ba82b0b998891532f8b7c281567b73
2016-11-06 21:36:25 +02:00
Samuel Mehrbrodt 291d8d4f94 SafeMode: Add indicator to window title when in Safe Mode
Change-Id: I1d8350315768093b4c4af1cd8b732602c5217edb
Reviewed-on: https://gerrit.libreoffice.org/30518
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2016-11-03 12:20:11 +00:00
Tomaž Vajngerl b1426b5b50 tdf#95014 initial support for 32 px icons in toolbar
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-30 18:00:05 +00:00
Maxim Monastirsky 94876fe270 Let Menu dispose submenus
(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:

4433d95b37
("MenuItemData now properly disposes the submenu")

89c23b4aae
("Sub menus no longer need manual disposing")

Change-Id: I9d455a94590f5eec9b097947f6984f1b3e477b52
2016-10-30 15:50:31 +02:00
Maxim Monastirsky 99da628e17 BmkMenu is dead now
Change-Id: I9b6e762fd4c231a5bd54eb546026499da2efa0e6
2016-10-30 15:40:39 +02:00
Caolán McNamara d164f7e93e coverity#1374317 Uncaught exception
Change-Id: I37a7b2f12cec522e116ccf4b1aa550ad2cba14ea
2016-10-27 21:32:18 +01:00
Maxim Monastirsky 074449ee34 GenericPopupToolbarController: deal with main command being disabled
Try to set another command from the dropdown, if there is any
enabled. Otherwise give up and disable the button altogether.

Change-Id: I7fa46a946826056d04851faee9c7ad85f00c3678
2016-10-27 11:05:38 +03:00
Maxim Monastirsky e59013d6e9 GenericPopupToolbarController: Support replacing the main command
If a second arg is passed in the "Value" property, it will be
treated as boolean. If true - the button will be
ToolBoxItemBits::DROPDOWN, and will keep replacing the main
command with the last selected one from the dropdown. It will
also respond to status updates of that command, currently for
enabled/disabled and boolean (true treated as pressed) states.

Change-Id: I09a5c20e6d2a010867037754f036096246749ec4
2016-10-27 11:05:38 +03:00
Maxim Monastirsky 853c9efd00 MenuBarManager should pass the menubar flag down
... to popup menu controllers it creates, similar to what
is does for child MenuBarManager instances. That way a
child ResourceMenuController placed inside a popup menu
won't mistakenly think it's inside the main menu.

Change-Id: I75eea28eeb38f16bfaaa5526752a957859ef0d32
2016-10-27 11:05:38 +03:00
Caolán McNamara 5d5564fa7a coverity#1374282 Uncaught exception
Change-Id: I1b31825ec27d2395ca030ca79b6c932b7814d901
2016-10-26 09:56:30 +01:00
Samuel Mehrbrodt 4846c0fed9 Open menu: Simplify inserting menu entries
Change-Id: Ia75f2fe349580003b16735fccf429392d0cf8363
Reviewed-on: https://gerrit.libreoffice.org/30082
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
Tested-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2016-10-20 10:02:54 +00:00
Samuel Mehrbrodt e39983fdaf Toolbar Open menu: Insert separator between clear list and open entries
Change-Id: I037c5d09ecb70480f4559697e291c40567fea615
Reviewed-on: https://gerrit.libreoffice.org/30081
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
Tested-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2016-10-20 10:00:41 +00:00
Samuel Mehrbrodt eb4ad667b6 Add "Open as Template" to toolbar open menu
Change-Id: Ia8bea19f8f9377f27ab425c335e2a65bd2abcb2b
Reviewed-on: https://gerrit.libreoffice.org/30078
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
Tested-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2016-10-20 09:57:53 +00:00
Olivier Hallot e91a1abe4c tdf#96015 (part) link to Doc'tation in Help menu
Add the entry "Documentation" to the modules Help menu.

on click, the system browser opens
http://hub.libreoffice.org/documentation/?&LOlang=<locale>

<locale> is obtained from .getLocale()

Patch2: create a member with try/catch for external URLs

Patch3
Use sfx2::openUriExternally
Revert to User Guides.. in UI.

Change-Id: I8332253c31bd3be330cdd794f9e056b632b38037
Patch4: remove 1st '&' in URLs
Reviewed-on: https://gerrit.libreoffice.org/28817
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
2016-10-19 16:07:33 +00:00
Noel Grandin 423936ffac loplugin:expandablemethodds in formula..framework
Change-Id: I6c8b1bb3b664faa92b2dc05955c30bfd35f6dfaa
Reviewed-on: https://gerrit.libreoffice.org/30015
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-10-19 07:57:11 +00:00
Jochen Nitschke d1ea6ecda6 replace <<= with assign for <<= with rhs Any
found by deleting specialization of '<<=' template

Change-Id: I253f15177ab20fd3ef9baf4158da8c662cb47e6c
Reviewed-on: https://gerrit.libreoffice.org/29956
Reviewed-by: Jochen Nitschke <j.nitschke+logerrit@ok.de>
Tested-by: Jochen Nitschke <j.nitschke+logerrit@ok.de>
2016-10-18 19:16:44 +00:00
Maxim Monastirsky 1cb46e2747 Avoid warning when opening the save dropdown
Change-Id: I92980d8d9326b8c0ed865d2ce796dccb7729e3e7
2016-10-18 17:27:57 +03:00
Samuel Mehrbrodt b23d20d6d2 Make 'IsExperimental' property boolean
Change-Id: If88ea931ead8dd031fda9b17d9023a771ab0a0d0
Reviewed-on: https://gerrit.libreoffice.org/29970
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
Tested-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2016-10-18 06:58:23 +00:00
Noel Grandin 292560a957 loplugin:unusedmethods
Change-Id: Icf773925c37dde8b7404edac9864e7b10fe113b4
Reviewed-on: https://gerrit.libreoffice.org/29968
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-10-18 06:15:55 +00:00
Hieronymous f85439d415 tdf#88205 Adapt uses of css::uno::Sequence to use initializer_list ctor
Change-Id: Id97c6698d9ecac07348d3bdd3e031dbbb8486ae7
Reviewed-on: https://gerrit.libreoffice.org/29824
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
2016-10-16 11:02:22 +00:00
Hieronymous f2c3efb124 tdf#88205 Adapt uses of css::uno::Sequence to use initializer_list ctor
Change-Id: I5b484c6f6e950a59e811da818be8a5e1e6cfc65d
Reviewed-on: https://gerrit.libreoffice.org/29827
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
2016-10-16 11:00:34 +00:00
Hieronymous ad59a9a9cd tdf#88205 css::uno::Sequence to use initializer_list ctor.
Change-Id: If4f2e8e369930f028c342bc81c4f49df7350e238
Reviewed-on: https://gerrit.libreoffice.org/29811
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
2016-10-16 10:58:15 +00:00
Samuel Mehrbrodt 1b4165b0f3 Formatting: Make this readable without a 30" screen
Change-Id: I34ebbb009f682d55a5e1232b28eef56aa39a1b17
Reviewed-on: https://gerrit.libreoffice.org/29812
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
Tested-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2016-10-14 12:26:16 +00:00
Hieronymous dd5e0814cd tdf#88205 Adapt uses of css::uno::Sequence to use initialize_list ctor
Change-Id: Idb456f6cf0b4f3dda4b92d341ae6de59cb9879e2
Reviewed-on: https://gerrit.libreoffice.org/29797
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-10-14 06:31:00 +00:00
Maxim Monastirsky 55d0284885 -Werror=reorder
Change-Id: I827911df1bc379a0f0e303a15d44b30309a8bc04
2016-10-13 23:28:09 +03:00
Samuel Mehrbrodt dad3e93a78 Improve formatting
Change-Id: I088997f51b6ed5131dec706f52b568671605d6e5
2016-10-13 21:53:06 +02:00
Samuel Mehrbrodt ac20f98e49 Don't add experimental commands to the Menu
Change-Id: I76b1c745d4c4d99f3a0a8d7573f1beae99503ef9
2016-10-13 21:53:06 +02:00