summaryrefslogtreecommitdiff
path: root/framework
AgeCommit message (Collapse)AuthorFilesLines
2023-01-14XUnoTunnel->dynamic_cast in VCLXMenuNoel Grandin2-4/+4
Change-Id: Iee992e2e09647a7678fd05321e601a4c5bf0c430 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145469 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-01-14use more VCLXPopupMenu instead of XPopupMenuNoel Grandin14-24/+25
which avoids a bunch of casting and makes the dependency explicit instead of implicit Change-Id: I754da72916fbbc51e7edc3c806155da34d347bd8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145472 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-01-11fix deadlock observed on jenkinsNoel Grandin1-2/+4
where we are locking SolarMutex and UndoManagerHelper_Impl::m_aMutex in different orders in different code-paths, which is deadly when we call into the same class recursively. Thread 2 (Thread 0x7f5cf303b700 (LWP 22637)): (this=0x7f5cf3037cd8) at include/vcl/svapp.hxx:1373 framework::UndoManagerHelper_Impl::impl_clear() (this=0x5f90d50) at framework/source/fwe/helper/undomanagerhelper.cxx:691 holds UndoManagerHelper_Impl::m_aMutex tries to acquire SolarMutex framework::UndoManagerHelper_Impl::clear(framework::IMutexGuard&)::$_3::operator()() const (this=0x5519040) at framework/source/fwe/helper/undomanagerhelper.cxx:403 framework::UndoManagerHelper_Impl::clear(framework::IMutexGuard&)::$_3>::_M_invoke(std::_Any_data const&) (__functor=...) at /opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/bits/std_function.h:316 (this=0x5519040) at /opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/bits/std_function.h:706 namespace)::UndoManagerRequest::execute() (this=0x5519030) at framework/source/fwe/helper/undomanagerhelper.cxx:160 framework::UndoManagerHelper_Impl::impl_processRequest(std::function<void ()> const&, framework::IMutexGuard&) (this=0x5f90d50, i_request=..., i_instanceLock=...) at framework/source/fwe/helper/undomanagerhelper.cxx:490 framework::UndoManagerHelper_Impl::clear(framework::IMutexGuard&) (this=0x5f90d50, i_instanceLock=...) at framework/source/fwe/helper/undomanagerhelper.cxx:402 framework::UndoManagerHelper::clear(framework::IMutexGuard&) (this=0x5f90c38, i_instanceLock=...) at framework/source/fwe/helper/undomanagerhelper.cxx:999 at chart2/source/model/main/UndoManager.cxx:278 void*, _typelib_TypeDescriptionReference*, bool, unsigned long*, unsigned int, unsigned long*, double*) (pThis=0x5f90bc8, nVtableIndex=18, pRegisterReturn=0x0, pReturnTypeRef=0xa2dac0, bSimpleReturn=true, pStack=0x7f5cf30380e0, nStack=0, pGPR=0x7f5cf30383e0, pFPR=0x7f5cf30383a0) at bridges/source/cpp_uno/gcc3_linux_x86-64/callvirtualmethod.cxx:77 cpp_call(bridges::cpp_uno::shared::UnoInterfaceProxy*, bridges::cpp_uno::shared::VtableSlot, _typelib_TypeDescriptionReference*, int, _typelib_MethodParameter*, void*, void**, _uno_Any**) (pThis=0x5e40ac0, aVtableSlot=..., pReturnTypeRef=0xa2dac0, nParams=0, pParams=0x0, pUnoReturn=0x0, pUnoArgs=0x0, ppUnoExc=0x7f5cf30388e0) at bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:233 pMemberDescr=0x551dd30, pReturn=0x0, pArgs=0x0, ppException=0x7f5cf30388e0) at bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:413 binaryurp::IncomingRequest::execute_throw(binaryurp::BinaryAny*, std::__debug::vector<binaryurp::BinaryAny, std::allocator<binaryurp::BinaryAny> >*) const (this=0x28a3cc0, returnValue=0x7f5cf3039040, outArguments=0x7f5cf3039008) at binaryurp/source/incomingrequest.cxx:236 (this=0x28a3cc0) at binaryurp/source/incomingrequest.cxx:79 Thread 1 (Thread 0x7f5cfd03eec0 (LWP 22302)): (this=0x7ffcdf1b1720, t=...) at include/osl/mutex.hxx:144 comphelper::OInterfaceContainerHelper3<com::sun::star::util::XModifyListener>::addInterface(com::sun::star::uno::Reference<com::sun::star::util::XModifyListener> const&) (this=0x5f90da0, rListener=...) at include/comphelper/interfacecontainer3.hxx:313 trying to acquire UndoManagerHelper_Impl::m_aMutex framework::UndoManagerHelper_Impl::addModifyListener(com::sun::star::uno::Reference<com::sun::star::util::XModifyListener> const&) (this=0x5f90d50, i_listener=...) at framework/source/fwe/helper/undomanagerhelper.cxx:286 framework::UndoManagerHelper::addModifyListener(com::sun::star::uno::Reference<com::sun::star::util::XModifyListener> const&) (this=0x5f90c38, i_listener=...) at framework/source/fwe/helper/undomanagerhelper.cxx:1047 chart::UndoManager::addModifyListener(com::sun::star::uno::Reference<com::sun::star::util::XModifyListener> const&) (this=0x5f90bc0, i_listener=...) at chart2/source/model/main/UndoManager.cxx:338 (this=0x1d470d0) at chart2/source/controller/main/UndoCommandDispatch.cxx:57 chart::CommandDispatchContainer::getDispatchForURL(com::sun::star::util::URL const&) (this=0x5f66e58, rURL=...) at chart2/source/controller/main/CommandDispatchContainer.cxx:93 chart::ChartController::queryDispatch(com::sun::star::util::URL const&, rtl::OUString const&, int) (this=0x5f66c50, rURL=..., rTargetFrameName=...) at chart2/source/controller/main/ChartController.cxx:1055 locks SolarMutex chart::ChartController::queryDispatch(com::sun::star::util::URL const&, rtl::OUString const&, int) () at /home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_clang_dbgutil_64/instdir/program/../program/libchartcontrollerlo.so framework::DispatchProvider::implts_queryFrameDispatch(com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&, com::sun::star::util::URL const&, rtl::OUString const&, int) (this=0x5f5e6c0, xFrame=..., aURL=..., sTargetFrameName=..., nSearchFlags=0) at framework/source/dispatch/dispatchprovider.cxx:352 framework::DispatchProvider::queryDispatch(com::sun::star::util::URL const&, rtl::OUString const&, int) (this=0x5f5e6c0, aURL=..., sTargetFrameName=..., nSearchFlags=0) at framework/source/dispatch/dispatchprovider.cxx:106 framework::DispatchProvider::queryDispatch(com::sun::star::util::URL const&, rtl::OUString const&, int) () at /home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_clang_dbgutil_64/instdir/program/libfwklo.so framework::InterceptionHelper::queryDispatch(com::sun::star::util::URL const&, rtl::OUString const&, int) (this=0x5f59ce0, aURL=..., sTargetFrameName=..., nSearchFlags=0) at framework/source/dispatch/interceptionhelper.cxx:87 framework::InterceptionHelper::queryDispatch(com::sun::star::util::URL const&, rtl::OUString const&, int) () at /home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_clang_dbgutil_64/instdir/program/libfwklo.so namespace)::XFrameImpl::queryDispatch(com::sun::star::util::URL const&, rtl::OUString const&, int) (this=0x5f599c0, aURL=..., sTargetFrameName=..., nSearchFlags=0) at framework/source/services/frame.cxx:2329 namespace)::XFrameImpl::queryDispatch(com::sun::star::util::URL const&, rtl::OUString const&, int) () at /home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_clang_dbgutil_64/instdir/program/libfwklo.so (this=0x5fe8b00) at svtools/source/uno/toolboxcontroller.cxx:520 (this=0x5fe8b00) at svtools/source/uno/toolboxcontroller.cxx:242 (this=0x5fdd060) at framework/source/uielement/toolbarmanager.cxx:731 framework::ToolBarManager::AsyncUpdateControllersHdl(Timer*) (this=0x5fdd060) at framework/source/uielement/toolbarmanager.cxx:2298 framework::ToolBarManager::LinkStubAsyncUpdateControllersHdl(void*, Timer*) (instance=0x5fdd060, data=0x5fdd258) at framework/source/uielement/toolbarmanager.cxx:2285 (this=0x5fdd278, data=0x5fdd258) at include/tools/link.hxx:111 vcl/source/app/timer.cxx:75 vcl/source/app/scheduler.cxx:474 vcl/inc/saltimer.hxx:54 (this=0xa1ab10, bExecuteTimers=true) at vcl/headless/svpinst.cxx:161 Change-Id: I1971d094513cc747eff44db8e2a131ad0aae1506 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145316 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-01-05Revert all the recent loplugin:unocast changesStephan Bergmann6-34/+5
...as obsoleted by ef533553559fe09b4afab651fc692885d1acf4ed "Rudimentary support for dynamic_cast on UNO proxy objects". This reverts all of: 4cfcc9ac37b90ce64c8402a41eb4638adb185b5c "loplugin:unocast (framework::Desktop)" 03efbf72f4ddf7a84aa8aabef348331bd4b75e8a "loplugin:unocast (vclcanvas::TextLayout)" 80099fdd51a69eaa6c36ca88ef772810e4a777fa "loplugin:unocast (SalGtkXWindow)" cc147f576d8687fb79c77d47d41dc4ba1678a469 "loplugin:unocast (sdext::presenter::CachablePresenterView)" 40db42be1d8fd0f9c6c8c5ba3767ddb9ee2034c2 "loplugin:unocast (vclcanvas::CanvasFont)" 2d1e7995eae29e2826449eb5179f5fae181794a5 "loplugin:unocast (CairoColorSpace)" 4c0bbe4bd97636207cf71a6aa120c67698891da9 "loplugin:unocast (canvas::ParametricPolyPolygon)" 89803666621c07d1b1ac9d3bd883f0ca192a91a0 "loplugin:unocast (vclcanas::CanvasBitmap)" d5e0c2c8db71878d21c2a7255af08cf5f9a6dd04 "loplugin:unocast (sfx2::DigitalSignatures)" c0c4519e0d5b555f59bbc04cc616454edfd1f4ce "loplugin:unocast (VCLXAccessibleComponent)" feb8b833a6245d42400f42a0bc789dc84594ee6f "loplugin:unocast (VCLXDialog)" 1fa58cc6cc9c3849753342a5d9a6ddfa461b5e66 "loplugin:unocast (VCLXMultiPage)" f481f036deb1b1b46f3038074c4659f3a91b9c6c "loplugin:unocast (DocumentSettingsSerializer)" 73df933f5fa5932f94e5a1b338a3eda00a9ce354 "loplugin:unocast (css::embed::EmbeddedUpdate)" 420165ab0ef03c0467f9d17f504de2d2fc78f0e6 "loplugin:unocast (canvas::tools' StandardColorSpace, StandardNoAlphaColorSpace)" 9abe8ee067e6c00f19d8a13346d53c4641c27166 "loplugin:unocast (MutableTreeNode)" 9f3022ceb036f23b4b0994c3e2fbd1001bff225a "loplugin:unocast (VCLXTabPage)" 1be70dda02c12a60778b7607cff2520ae1aa611e "loplugin:unocast (vcl::unotools::VclCanvasBitmap)" d6a70bb641b96e8e5616448c2378131ed62658b4 "loplugin:unocast (basegfx::unotools::UnoPolyPolygon)" 5a14f009e6782c077463c8cbb8e9cea3d7950107 "loplugin:unocast (xmlsecurity::Certificate)" 99009c9535dfa3e0d838989ccc7d84bfa2320ff4 "loplugin:unocast (sd::Annotation)" 0c7585c5fa78887e5459885ed744e8044fd76137 "loplugin:unocast (sd::TextApiObject)" 24e14afd1bfcaed6c200ab081973fba7e47267ca "loplugin:unocast (SignatureVerifierImpl)" 1a7ad0c10d286ce9ae2700ceb2fd50eed1fb43a4 "loplugin:unocast (pcr::PropertyEventTranslation)" a97e2d2702d9a6f37775ccee2c08c4f3b2479c4b "loplugin:unocast (RangePageBreaks)" 19dfdf86ad1f5b08041d8b7a9f196caf881231ab "iloplugin:unocast (pcr::OFormattedNumericControl)" f9785ea595fd8e911f6370e836fa579225b9e571 "loplugin:unocast (frm::OInterfaceContainer)" 5e5f40a4a92a31b0932c690219d002fcf18598cf "loplugin:unocast (ScVbaShapes)" 27b35b2c215b4832d4378ec3a7ecbba926552d06 "loplugin:unocast (ScVbaShapeRange)" cb3108f860065928552a86cf8acc4b3a95718ecf "cid#1517812 Dereference null return value" feba0ddb1521d1142560fe54b7d7696ee910237f "loplugin:unocast (weld::TransportAsXWindow)" 4d6c23216559eb48f9943bb49d6e475a6d64ba15 "loplugin:unocast (oox::ForumlaImExportBase)" 4844c096a8ab6a9a620c410a0949d4499f12a504 "loplugin:unocast (cairocanvas::SurfaceProvider)" 9a0b523e0a84d403b9092176ccec4b3e3efe42d0 "loplugin:unocast (cairocanvas::CanvasBitmap)" 8a5648d8e59b4b007dbbf3824777c19a21efc61e "loplugin:unocast (cairocanvas::TextLayout)" 28c27a0623bc78a0590858f97d03b620985bc84c "loplugin:unocast (cairocanvas::CanvasFont)" 53bc223cb3288e32a417696ee61c29e5f01f209d "loplugin:unocast (cairocanvas::RepaintTarget)" 5f70b0b9f6bc4ab145ddbd9155590ed4a3b1b9ec "loplugin:unocast (SvXMLImport)" 068187a898cdd2e26e9b16c348ecc1ed2dee3f29 "loplugin:unocast (VCLXWindow)" 88b4f966202717cd4ad38a30a8eda22c3e69ed35 "loplugin:unocast (sfx2::sidebar::SidebarController)" f1b7a69b280aefe2f1b3b0f32193494fd765f2bd "loplugin:unocast (SvxLineStyleToolBoxControl)" ba76f0ba7e8de4d2953739c952004b7d9af47197 "loplugin:unocast (i18npool::Calendar_gregorian)" 840154daf934d8df52ead1cb7acd798c4d30f007 "loplugin:unocast (framework::AddonsToolBarWrapper)" b0e9c4c5f063cefa9557810e3349bdb9c7493091 "loplugin:unocast (GrammarCheckingIterator)" 8ee6cfc9655ce9de4617cea1a0d9cb9d7a4fbfac "loplugin:unocast (ucb::ucp::ext::Content)" 5b8cd77c112bc8c0e92b8fec215c3c8e802bbc0a "loplugin:unocast (basic::SfxScriptLibraryContainer)" 9e73ff9fce12e102bb3c3cea8d8bb96c88f2c9ad "loplugin:unocast (sdext::presenter::PresenterNotesView)" a98acca8fbc38d3fd5600ae5056a8e42b6d8a40d "loplugin:unocast (SelectionChangeHandler)" c0b59ad6e35b0cb0dea0821e95f95569739078c1 "Consistently use comphelper::getSomethingImpl<I>(aIdentifier, this)" 276e3ccbdd3259ec3daf8a1a98fa7f406b14e21c "loplugin:unocast (vclcanvas::RepaintTarget)" Change-Id: I37c73e3422a5154bf6cb647640d2d3f23db8bc34 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145063 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-12-23loplugin:unocast (framework::Desktop)Stephan Bergmann2-1/+12
(See the upcoming commit introducing that loplugin:unocast on why such dynamic_casts from UNO types are dangerous.) Change-Id: Ifcf713b0543e78a124f613bcbda496069a280dab Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144762 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-12-20loplugin:unocast (weld::TransportAsXWindow)Stephan Bergmann1-1/+2
(See the upcoming commit introducing that loplugin:unocast on why such dynamic_casts from UNO types are dangerous.) On macOS, where we implicitly use -fvisibility-inlines-hidden-static-local-var since <https://github.com/llvm/llvm-project/commit/d46f2c51e4c849683434bb5a0fb6164957474b8f> "Make -fvisibility-inlines-hidden apply to static local variables in inline functions on Darwin", the static id local var in weld::TransportAsXWindow::getUnoTunnelId cannot be in an inline function implicitly hidden via -fvisibility-inlines-hidden. Explicitly marking the function as VCL_DLLPUBLIC would help, but would in turn cause MSVC error 2487 ("member of a dll interface class may not be declared with dll interface"). So just make the function non-inline in a new vcl/source/window/weldutils.cxx (which would arguably be the best approach for the whole class, anyway). Change-Id: Ib5615f6aae19346ea05b8b85ff77c0e5ea860994 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144331 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-12-16Use rtl::Reference to avoid a dynamic_castStephan Bergmann1-7/+7
Change-Id: I3b9781cf00df7b740c8b29c6834e54035b255269 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144327 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-12-16Use rtl::Reference to avoid a dynamic_castStephan Bergmann4-6/+10
Change-Id: I1a439df62a33c7edccbbe62e373690b17b2f6161 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144315 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-12-14loplugin:implinheritancehelper in frameworkNoel Grandin2-72/+3
use more ImplInheritanceHelper to reduce boilerplate Change-Id: I47eefb8edc2041fa89e64f930b1997566562d51a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144162 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-12-14loplugin:unocast (framework::AddonsToolBarWrapper)Stephan Bergmann3-3/+20
(See the upcoming commit introducing that loplugin:unocast on why such dynamic_casts from UNO types are dangerous.) Change-Id: I8014f683b939da9d638545c77dbddb3e478a385e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144143 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-12-12tdf#151376 framework: fix calling in-document macros with reused framesMiklos Vajna3-0/+15
The bugdoc has a macro in it, and after closing the document -> start center -> opening it again, you could no longer trigger the macro by clicking on the URL field in the Calc cell. The problem is that we cache protocol handler instances since 3f768cddd28a2f04eb1ffa30bed4474deb6fbfc4 (framework: avoid re-creating protocol handler instances all the time, 2022-05-02) in frames, but we failed to invalidate this cache when the component of the frame changes. Fix the problem by clearing the cache in XFrameImpl::setComponent(), which gets called in this somewhat rare case when a frame gets reused to host a different component. [ No testcase, I'm not sure how to close a document without disposing its XFrame from code. ] Change-Id: I73ee83ec017f476803010cbf9e514315fc797371 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143998 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2022-12-06tdf#152134 Customize: assign user macro to menu hangsNoel Grandin1-21/+12
regression from commit d4257daba1155ebccbfebea99bad0e4152ca9b08 Author: Noel Grandin <noelgrandin@gmail.com> Date: Fri Dec 24 20:58:28 2021 +0200 use comphelper::WeakComponentImplHelper in MenuBarManager We should not hold the mutex while firing events, since the mutex is now non-recursive. Change-Id: I6ee45df0bf27df3ca1fd31857285ceb820161d61 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143671 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-11-22CppunitTest_framework_services: inherit from UnoApiTestXisco Fauli2-25/+10
Change-Id: I8963f0dbf5e70347ee98e639dc6eeecc0f43b821 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143099 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2022-11-22CppunitTest_framework_loadenv: inherit from UnoApiTestXisco Fauli2-15/+10
Change-Id: I9c997691d6b7f0c46089eec86b614bcd1a0d71a5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143102 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2022-11-22CppunitTest_framework_dispatch: inherit from UnoApiTestXisco Fauli2-27/+10
Change-Id: I9a839ffe01e1d5da49268bd8ad78dbedd8dadc25 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143100 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2022-11-10Simplify the method and fix its descriptionMike Kaganski1-9/+5
The description had the copy-paste error since commit 648106f879fdf6609db1e0d4c8acb43b3a997833 (Fri Apr 04 16:12:43 2003 +0000) when impl_searchMatchingInterceptor was replaced with findByPattern. Change-Id: I84d8c867b6606ef8adb74df823046b58cf6d9b51 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142541 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-10-31lok: fix convert-to batch mode, quiet interactionHenry Castro1-0/+8
If it is a batch mode to convert *.csv to *.ods, use the quiet interaction to avoid unwanted filter dialogs. Signed-off-by: Henry Castro <hcastro@collabora.com> Change-Id: I4ef82c1079888ae099084072c146b5db4cc0f2a0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141950 Tested-by: Jenkins Reviewed-by: Ashod Nakashian <ash@collabora.com>
2022-10-28It's Frame-Controller-Model, not Model-View-ControllerMike Kaganski1-2/+2
Change-Id: I23a867623f77502baed6639ad3e255c06673d67f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141957 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-10-28Introduce utl::ConnectModelViewControllerMike Kaganski1-5/+2
And use it to avoid code duplication Change-Id: I18447bc1a0388d57a273b310977a0f0fb54152b1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141946 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-10-11Deduplicate O(U)StringConcatenationMike Kaganski1-1/+1
And use an overloaded helper function with a better (?) unified name to show that the result is not an O(U)String. Change-Id: I8956338b05d02bf46a6185828130ea8ef145d46b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141203 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-10-03tdf#127856: sc: Status bar "languages" when you click...Henry Castro1-1/+5
the popup "More.." button it will show the format cells dialog. Signed-off-by: Henry Castro <hcastro@collabora.com> Change-Id: Idb60decf1c582c906d24d10fc248cfd20f8f4cbf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138499 Tested-by: Jenkins
2022-09-30tdf#151172 crash in notebookbar with extension enabledMaxim Monastirsky1-2/+3
Change-Id: I60d777b27ffee095807490f4b181b1b08ed88462 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140683 Tested-by: Jenkins Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com>
2022-09-29split utl::TempFile into fast and named variantsNoel Grandin1-3/+1
which makes it easier to know what each variant requires to stay on it's happy path Change-Id: I3275a2543573367714bc78092e882f6535507285 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140469 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-09-28use more string_view in frameworkNoel Grandin5-43/+44
Change-Id: I9a79eef6d41696f1de7569f40d6eaf1d85ff77bf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140638 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-09-18use more string_view in utl::TempFileNoel Grandin1-4/+1
Change-Id: I151c66479053b9b5b7699a4938a622b4320aeaa0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140104 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-09-14Fix typo signes->signsAndrea Gelmini1-1/+1
Change-Id: I3e673aba3190f3183c357681c2a379b2be8e2c84 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139925 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2022-09-14move ErrCode to comphelper and improve debug output stringNoel Grandin3-3/+3
need to move it, because modules "below" vcl want to use the debug output method Change-Id: Ibcaf4089a1e0b3fcc0b5189c7ebf1aae90f50b48 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139791 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-09-06tdf#150682 - bad shortcut in french langageNoel Grandin1-0/+1
the = key is } on a french keyboard, so remap the ctrl-alt-= shortcuts to ctrl-alt-} which means the user gets to keep pressing keys in roughly the same physical location for this action, regardless of keyboard Change-Id: I03e251dacc1c19e543182a44ae23fde2a57cfa45 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139474 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-09-04tdf#150773: Avoid bringing loading files to front several timesMike Kaganski2-19/+24
The change attempts to establish this logic: 1. Honor the ForceFocusAndToFront setting uniformly: previously, it was ignored when reusing existing windows (opening in Start Center, in place of an empty document, or trying to open an already opened document); 2. When ForceFocusAndToFront is set, try to activate the window as early as possible (before loading begind), as a feedback to user, and also to avoid situations when activation would be impossible later (e.g., there is a timespan on Windows, during which entitled applications can bring themselves to foreground; a lengthy loading process can exceed that time); 3. If activated once, do not activate second time after loading ends, to avoid nagging users who deliberately switched to other tasks. Explicit calls to impl_makeFrameWindowVisible were removed from impl_searchAlreadyLoaded and impl_isFrameAlreadyUsedForLoading, because those functions are called from impl_loadContent, which makes sure that they are followed by a call to impl_makeFrameWindowVisible (either in impl_setResult -> impl_reactForLoadingState, or directly). A fix to tdf#83773 was adjusted; I checked that the bug doesn't reappear after that. Change-Id: I4bdcf978d43016d1e8979adf2fdf108a37f6ba2d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139362 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-09-04Some refactorMike Kaganski1-8/+8
Change-Id: I5b87f9298bfeec70848654eacf5086803c19080a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139354 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-08-30tdf#149956 Rework toolbar image flippingMaxim Monastirsky3-1/+105
An unified code, covering both vcl and weld cases. For SidebarToolBox, the controller is created before items are inserted, so we listen for item insert event to set initially correct state. Change-Id: I3841f21883104b4d3f8541c97ec7fa5fc0bec575 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139022 Tested-by: Jenkins Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com>
2022-08-30tdf#149741 tdf#149956 Make flipping work also in the sidebarMaxim Monastirsky1-1/+13
- Reset the icon each time, as there seems to be no easy way to retrieve the existing icon from a gtk widget in order to mirror it, like we used to do for vcl. Similar approach is currently taken in ToolboxButtonColorUpdaterBase::Update. - Store the flipping state also in GtkInstanceToolbar, similar to vcl's ToolBox. This seems to be the easiest way to make flipping not break on icon theme change, covering all 4 cases (ToolBarManager, SidebarToolBox, ToolbarUnoDispatcher, GenericToolbarController), w/o too involved changes in each. This might benefit from some refactoring later on, but should be good enough for now. - One unsolved problem is the appearance of flipped icons with svg themes, as the regular variant is handed to gtk directly, whereas the flipped one is loaded by us, resulting with a different (blurry) look. Change-Id: I48c16827b46fb75fd798a041851af6e2648ae8fe Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139021 Tested-by: Jenkins Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com>
2022-08-30tdf#149956 Remove previous vcl only solutionMaxim Monastirsky2-10/+0
Change-Id: Id67b75856a230e175ccc6328ec0838c78589191b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139020 Tested-by: Jenkins Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com>
2022-08-29ref-count SdrObjectNoel Grandin1-0/+2
Which means we can get rid of the majestic hack of ScCaptionPtr Previously, SdrObject was manually managed, and the ownership passed around in very complicated fashion. Notes: (*) SvxShape has a strong reference to SdrObject, where previously it had a weak reference. It is now strong since otherwise the SdrObject will go away very eagerly. (*) SdrObject still has a weak reference to SvxShape (*) In the existing places that an SdrObject is being deleted, we now just clear the reference (*) instead of SwVirtFlyDrawObj removing itself from the page that contains inside it's destructor, make the call site do the removing from the page. (*) Needed to take the SolarMutex in UndoManagerHelper_Impl::impl_clear because this can be called from UNO (e.g. sfx2_complex JUnit test) and the SdrObjects need the SolarMutex when destructing. (*) handle a tricky situation with SwDrawVirtObj in the SwDrawModel destructor because the existing code wants mpDrawObj in SwAnchoredObject to be sometimes owning, sometimes not, which results in a cycle with the new code. Change-Id: I4d79df1660e386388e5d51030653755bca02a163 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138837 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-08-18Move tools/diagnose_ex.h to comphelper/diagnose_ex.hxxStephan Bergmann15-15/+15
...so that its TOOLS_WARN_EXCEPTION can be used in comphelper/source/misc/logging.cxx in a follow-up commit. (And while at it, rename from diangose_ex.h to the more appropriate diagnose_ex.hxx. The comphelper module is sufficiently low-level for this immediate use case, so use that at least for now; o3tl might be even more suitable but doesn't have a Library until now. Also, for the immediate use case it would have sufficed to only break DbgGetCaughtException, exceptionToString, TOOLS_WARN_EXCEPTION, TOOLS_WARN_EXCEPTION_IF, and TOOLS_INFO_EXCEPTION out of include/tools/diagnose_ex.h into an additional new include/comphelper/diagnose_ex.hxx, but its probably easier overall to just move the complete include file as is.) Change-Id: I9f3222d4ccf1a9ac29d7eb9ba1530d53e2affaee Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138451 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-08-16No need to use throwing Reference ctor from 'this'Mike Kaganski1-2/+1
Change-Id: I1a9d69d101d3adede0455e94d4026e38131e6c77 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138350 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-08-16Drop redundant warning after throwing checkMike Kaganski1-3/+2
Change-Id: I1cc9ce6c415eb8aef9a250b3b5f342a425071b54 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138349 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-08-10Missing colon in toolbar help idsMaxim Monastirsky1-1/+1
Regression of 5200a73627d13e2997f81b53f61e143e77e328ee ("use more string_view in various"). Change-Id: I402eb6c03dcfa661c79c5469cfca3c86ac528f60 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138066 Tested-by: Jenkins Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com>
2022-08-10Make ToolBox::InsertItem take the command nameMaxim Monastirsky2-8/+4
For the next patch for tdf#149956 I need the command to be already set when the VclEventId::ToolboxItemAdded event is emitted. Change-Id: I3d8ce44b426a3ed5704d4520d6e62bc4efbf8e44 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138038 Tested-by: Jenkins Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com>
2022-08-10Unnecessary ToolBox::SetItemText callMaxim Monastirsky2-8/+3
Change-Id: I8d15e9657b3a6d01de9d07130ae3aa8284fbd178 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138037 Tested-by: Jenkins Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com>
2022-08-04tdf#150249 close of popover not detectedCaolán McNamara1-12/+16
the popover listened to here isn't the one that ends up getting actually used, its contents are transferred to another one, so the OnPopoverClosed wasn't called, its sufficient to just use the SubToolbarControl dtor to detect what is wanted here Change-Id: I3f4a038acfc183b863457919bf89d600517ddc01 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137792 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-08-03tdf#149966 Crash on Windows and freeze on Linux when customizing MenuNoel Grandin1-21/+13
use the notifyEach helper, which unlocks the mutex while we are calling listeners, which means we can tolerate a re-entrant call to removeConfigurationListener. regression from commit dab35c152af3345786b8335e83cd067b67d08b81 Author: Noel Grandin <noelgrandin@gmail.com> Date: Sat Dec 18 20:24:15 2021 +0200 osl::Mutex->std::mutex in ModuleUIConfigurationManager Change-Id: I7a2fbffb1c734b8bd0e952614592ce12c1611328 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137705 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-07-21elide some makeStringAndClear() callsNoel Grandin2-3/+3
Change-Id: I8636102554a76f2ba3f6297219b40761473a4489 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137285 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-07-20move wintypes.hxx from tools to vclChris Sherlock1-1/+1
Change-Id: Ief9949fd4252de9e33df172af07aa7ed097b5520 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136560 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2022-07-19Replace old png writer in imagemanagerimpl.cxxofftkp1-3/+4
Change-Id: I8bc30a218b67d165d1a8ae3d663e5482a8113aa8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137118 Tested-by: Tomaž Vajngerl <quikee@gmail.com> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2022-07-18Simplify by using InitAnyPropertySequenceMaxim Monastirsky1-29/+16
Change-Id: I145ce892e101ba4e8906cbdb0d32a52a4c655d43 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137151 Tested-by: Jenkins Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com>
2022-07-18Remove the broken SupportsVisible hackMaxim Monastirsky1-8/+0
pController is always empty since commit ac1aefd5174258d9bcb41465ce566ed1a0819f3d ("Extend ToolBarManager to build weld::Toolbar"). But even before that it did nothing, as it was set only for controllers created by the sfx2 legacy factory, but neither .uno:SwitchXFormsDesignMode nor .uno:ViewDataSourceBrowser had such controllers (It did however work in the past for some other commands before commit fb60217569b0fb5bc949c58b054da71992fe2582 ("tdf#83320 Hide vertical text commands early"). Also, searching the codebase for SfxVisibilityItem reveals more commands that set visibility, and I'm not sure if hardcoding all of them here is a good approach in general. Change-Id: Id8c22e729d2402837de0598fa8ca4d41160804c0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137150 Tested-by: Jenkins Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com>
2022-07-17No need for SfxWeldToolBoxControllerFactoryMaxim Monastirsky3-59/+11
sfx2::sidebar::ControllerFactory::CreateToolBoxController only supports creating controllers using the uno factory, or GenericToolbarController as a fallback. Given that we already handle the uno factory case in ToolBarManager::CreateControllers, all this complexity is really just for creating GenericToolbarController with a different ctor, which we can do locally as well. Change-Id: I3a5a3cda95a6c5db97615286e93630214f76cbfc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137149 Tested-by: Jenkins Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com>
2022-07-15Fix typo "vetor"->"vector"Andrea Gelmini1-1/+1
Change-Id: Ie706797e1bda4d1cd279fa68e93fb15beabb6a2e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137077 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2022-07-13tdf#149956 Pass the correct frame to VclStatusListenerMaxim Monastirsky2-0/+10
Starting directly to Writer (i.e. with "--writer") will attempt to create VclStatusListeners for .uno:ImageOrientation before the frame is activated, causing the dispatcher to not be found. Also defer that stuff to after a toolbar is filled, so we get a correct initial state for toolbars which shown when the current paragraph is rtl already. (There is a similar problem with the NB, but it isn't handled in this patch.) Change-Id: Ie482007c10a4014b4a2fd4d53f05d433777ecfb6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137014 Tested-by: Jenkins Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com>