[Libreoffice-commits] core.git: framework/inc framework/Library_fwk.mk framework/source
framework/Library_fwk.mk |1 framework/inc/uiconfiguration/imagemanager.hxx|2 framework/inc/uiconfiguration/moduleimagemanager.hxx | 73 framework/source/uiconfiguration/imagemanager.cxx |6 framework/source/uiconfiguration/moduleimagemanager.cxx | 155 -- framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx | 12 framework/source/uiconfiguration/uiconfigurationmanager.cxx | 18 - 7 files changed, 15 insertions(+), 252 deletions(-) New commits: commit ef19c82f6ade323e2708b93d77cf50ffe8b9fcfd Author: Noel Grandin AuthorDate: Mon Jul 19 09:14:21 2021 +0200 Commit: Noel Grandin CommitDate: Mon Jul 19 10:55:10 2021 +0200 merge ModuleImageManager into ImageManager they share an underlying impl, so no need to have separate classes Change-Id: I1093f72265f67c7ccf3c2a064c86441d792512d2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119156 Tested-by: Jenkins Reviewed-by: Noel Grandin diff --git a/framework/Library_fwk.mk b/framework/Library_fwk.mk index 2d4fdda1c1ef..c8ffb1f1b36b 100644 --- a/framework/Library_fwk.mk +++ b/framework/Library_fwk.mk @@ -168,7 +168,6 @@ $(eval $(call gb_Library_add_exception_objects,fwk,\ framework/source/uiconfiguration/graphicnameaccess \ framework/source/uiconfiguration/imagemanager \ framework/source/uiconfiguration/imagemanagerimpl \ -framework/source/uiconfiguration/moduleimagemanager \ framework/source/uiconfiguration/moduleuicfgsupplier \ framework/source/uiconfiguration/moduleuiconfigurationmanager \ framework/source/uiconfiguration/uicategorydescription \ diff --git a/framework/inc/uiconfiguration/imagemanager.hxx b/framework/inc/uiconfiguration/imagemanager.hxx index 1688ba44c10c..aacc8bbd3c72 100644 --- a/framework/inc/uiconfiguration/imagemanager.hxx +++ b/framework/inc/uiconfiguration/imagemanager.hxx @@ -35,7 +35,7 @@ namespace framework class ImageManager final : public ::cppu::WeakImplHelper< css::ui::XImageManager, css::lang::XServiceInfo> { public: -ImageManager( const css::uno::Reference< css::uno::XComponentContext >& rxContext ); +ImageManager( const css::uno::Reference< css::uno::XComponentContext >& rxContext, bool bForModule ); virtual ~ImageManager() override; virtual OUString SAL_CALL getImplementationName() override diff --git a/framework/inc/uiconfiguration/moduleimagemanager.hxx b/framework/inc/uiconfiguration/moduleimagemanager.hxx deleted file mode 100644 index d9fc98971b9d.. --- a/framework/inc/uiconfiguration/moduleimagemanager.hxx +++ /dev/null @@ -1,73 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#pragma once - -#include -#include - -#include -#include - -#include - -namespace framework -{ -class ImageManagerImpl; - -class ModuleImageManager final : public ::cppu::WeakImplHelper< css::ui::XImageManager> -{ -public: -ModuleImageManager( const css::uno::Reference< css::uno::XComponentContext >& xContext ); -virtual ~ModuleImageManager() override; - -// XComponent -virtual void SAL_CALL dispose() override; -virtual void SAL_CALL addEventListener( const css::uno::Reference< css::lang::XEventListener >& xListener ) override; -virtual void SAL_CALL removeEventListener( const css::uno::Reference< css::lang::XEventListener >& aListener ) override; - -// XInitialization -virtual void SAL_CALL initialize( const css::uno::Sequence< css::uno::Any >& aArguments ) override; - -// XImageManager -virtual void SAL_CALL reset() override; -virtual css::uno::Sequence< OUString > SAL_CALL getAllImageNames( ::sal_Int16 nImageType ) override; -virtual sal_Bool SAL_CALL hasImage( ::sal_Int16 nImageType, const OUString& aCommandURL ) override; -virtual css::uno::Sequence< css::uno::Reference< css::
[Libreoffice-commits] core.git: framework/inc framework/Library_fwk.mk framework/source solenv/clang-format
framework/Library_fwk.mk|1 framework/inc/uielement/addonstoolbarmanager.hxx| 64 -- framework/inc/uielement/addonstoolbarwrapper.hxx|1 framework/inc/uielement/toolbarmanager.hxx | 12 framework/source/uielement/addonstoolbarmanager.cxx | 430 framework/source/uielement/addonstoolbarwrapper.cxx | 14 framework/source/uielement/toolbarmanager.cxx | 171 +-- solenv/clang-format/excludelist |2 8 files changed, 132 insertions(+), 563 deletions(-) New commits: commit 37892578e97ea0f0c948116d639797060ac5f21f Author: Maxim Monastirsky AuthorDate: Thu Aug 20 12:07:24 2020 +0300 Commit: Maxim Monastirsky CommitDate: Thu Aug 20 16:42:52 2020 +0200 Base addon toolbars on the regular ToolBarManager ToolBarManager already supported addon buttons because of the toolbar merging feature. Besides the cleanup, this gives access to addon devs to all toolbar features like aliases or style buttons. Change-Id: I7adf830ac71c7f5354a924d60a531d8001e37571 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101071 Tested-by: Jenkins Reviewed-by: Maxim Monastirsky diff --git a/framework/Library_fwk.mk b/framework/Library_fwk.mk index 12434b7a4b74..754090d5512f 100644 --- a/framework/Library_fwk.mk +++ b/framework/Library_fwk.mk @@ -175,7 +175,6 @@ $(eval $(call gb_Library_add_exception_objects,fwk,\ framework/source/uiconfiguration/uicategorydescription \ framework/source/uiconfiguration/uiconfigurationmanager \ framework/source/uiconfiguration/windowstateconfiguration \ -framework/source/uielement/addonstoolbarmanager \ framework/source/uielement/addonstoolbarwrapper \ framework/source/uielement/buttontoolbarcontroller \ framework/source/uielement/comboboxtoolbarcontroller \ diff --git a/framework/inc/uielement/addonstoolbarmanager.hxx b/framework/inc/uielement/addonstoolbarmanager.hxx deleted file mode 100644 index d13c3f14b58a.. --- a/framework/inc/uielement/addonstoolbarmanager.hxx +++ /dev/null @@ -1,64 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#ifndef INCLUDED_FRAMEWORK_INC_UIELEMENT_ADDONSTOOLBARMANAGER_HXX -#define INCLUDED_FRAMEWORK_INC_UIELEMENT_ADDONSTOOLBARMANAGER_HXX - -#include - -#include - -#include - -class ToolBox; - -namespace framework -{ - -class AddonsToolBarManager final : public ToolBarManager -{ -public: -AddonsToolBarManager( const css::uno::Reference< css::uno::XComponentContext >& rxContext, - const css::uno::Reference< css::frame::XFrame >& rFrame, - const OUString& rResourceName, - ToolBox* pToolBar ); -virtual ~AddonsToolBarManager() override; - -// XComponent -void SAL_CALL dispose() override; - -virtual void RefreshImages() override; -using ToolBarManager::FillToolbar; -void FillToolbar( const css::uno::Sequence< css::uno::Sequence< css::beans::PropertyValue > >& rAddonToolbar ); - -private: -DECL_LINK(Click, ToolBox *, void); -DECL_LINK(DoubleClick, ToolBox *, void); -DECL_LINK(Select, ToolBox *, void); -DECL_LINK(StateChanged, StateChangedType const *, void ); -DECL_LINK(DataChanged, DataChangedEvent const *, void ); - -virtual bool MenuItemAllowed( sal_uInt16 ) const override; -}; - -} - -#endif // INCLUDED_FRAMEWORK_INC_UIELEMENT_ADDONSTOOLBARMANAGER_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/framework/inc/uielement/addonstoolbarwrapper.hxx b/framework/inc/uielement/addonstoolbarwrapper.hxx index 6d6fee13f4c4..2970ce6d13fa 100644 --- a/framework/inc/uielement/addonstoolbarwrapper.hxx +++ b/framework/inc/uielement/addonstoolbarwrapper.hxx @@ -28,7 +28,6 @@ namespace framework { -class AddonsToolBarManager; class AddonsToolBarWrapper final : public UIElementWrapperBase { public: diff --git a/framework/inc/uielement/toolbarmanager.hxx b/framework/inc/uielement/toolbar
[Libreoffice-commits] core.git: framework/inc framework/Library_fwk.mk framework/source framework/util
framework/Library_fwk.mk |1 framework/inc/recording/dispatchrecorder.hxx | 10 -- framework/inc/services.h |1 framework/inc/uielement/langselectionmenucontroller.hxx| 10 -- framework/source/recording/dispatchrecorder.cxx| 34 --- framework/source/register/registertemp.cxx | 63 - framework/source/uielement/langselectionmenucontroller.cxx | 30 -- framework/util/fwk.component |8 + 8 files changed, 60 insertions(+), 97 deletions(-) New commits: commit c435ee5c9c9882d0817039d5e53990418c3d1066 Author: Noel Grandin AuthorDate: Wed Jul 8 18:39:27 2020 +0200 Commit: Noel Grandin CommitDate: Thu Jul 9 08:46:19 2020 +0200 framework: create instances with uno constructors See tdf#74608 for motivation Change-Id: Ia2d9447b687f0792d9d3a98d30cd2b8fe54049ee Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98388 Tested-by: Noel Grandin Reviewed-by: Noel Grandin diff --git a/framework/Library_fwk.mk b/framework/Library_fwk.mk index 61bb9d825906..12434b7a4b74 100644 --- a/framework/Library_fwk.mk +++ b/framework/Library_fwk.mk @@ -150,7 +150,6 @@ $(eval $(call gb_Library_add_exception_objects,fwk,\ framework/source/loadenv/targethelper \ framework/source/recording/dispatchrecorder \ framework/source/recording/dispatchrecordersupplier \ -framework/source/register/registertemp \ framework/source/services/ContextChangeEventMultiplexer \ framework/source/services/autorecovery \ framework/source/services/desktop \ diff --git a/framework/inc/recording/dispatchrecorder.hxx b/framework/inc/recording/dispatchrecorder.hxx index 54a9cb0e2185..806fe3cb2f22 100644 --- a/framework/inc/recording/dispatchrecorder.hxx +++ b/framework/inc/recording/dispatchrecorder.hxx @@ -57,12 +57,10 @@ class DispatchRecorder final DispatchRecorder( const css::uno::Reference< css::uno::XComponentContext >& xSMGR ); virtual ~DispatchRecorder() override; -// XInterface, XTypeProvider, XServiceInfo -DECLARE_XSERVICEINFO_NOFACTORY -/* Helper for registry */ -/// @throws css::uno::Exception -static css::uno::Reference< css::uno::XInterface > SAL_CALL impl_createInstance( const css::uno::Reference< css::lang::XMultiServiceFactory >& xServiceManager ); -static css::uno::Reference< css::lang::XSingleServiceFactory > impl_createFactory ( const css::uno::Reference< css::lang::XMultiServiceFactory >& xServiceManager ); +/* interface XServiceInfo */ +virtual OUString SAL_CALL getImplementationName() override; +virtual sal_Bool SAL_CALL supportsService( const OUString& sServiceName ) override; +virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override; // XDispatchRecorder virtual void SAL_CALLstartRecording ( const css::uno::Reference< css::frame::XFrame >& xFrame ) override; diff --git a/framework/inc/services.h b/framework/inc/services.h index 8e1044811157..01a93213abd9 100644 --- a/framework/inc/services.h +++ b/framework/inc/services.h @@ -35,7 +35,6 @@ namespace framework{ #define IMPLEMENTATIONNAME_QUICKLAUNCHER "com.sun.star.comp.desktop.QuickstartWrapper" #define IMPLEMENTATIONNAME_FWK_TASKCREATOR "com.sun.star.comp.framework.TaskCreator" -#define IMPLEMENTATIONNAME_LANGUAGESELECTIONMENUCONTROLLER "com.sun.star.comp.framework.LanguageSelectionMenuController" } // namespace framework diff --git a/framework/inc/uielement/langselectionmenucontroller.hxx b/framework/inc/uielement/langselectionmenucontroller.hxx index cdf682e3e02b..32f2a45bac9c 100644 --- a/framework/inc/uielement/langselectionmenucontroller.hxx +++ b/framework/inc/uielement/langselectionmenucontroller.hxx @@ -38,12 +38,10 @@ namespace framework LanguageSelectionMenuController( const css::uno::Reference< css::uno::XComponentContext >& xContext ); virtual ~LanguageSelectionMenuController() override; -// XServiceInfo -DECLARE_XSERVICEINFO_NOFACTORY -/* Helper for registry */ -/// @throws css::uno::Exception -static css::uno::Reference< css::uno::XInterface > SAL_CALL impl_createInstance( const css::uno::Reference< css::lang::XMultiServiceFactory >& xServiceManager ); -static css::uno::Reference< css::lang::XSingleServiceFactory > impl_createFactory ( const css::uno::Reference< css::lang::XMultiServiceFactory >& xServiceManager ); +/* interface XServiceInfo */ +virtual OUString SAL_CALL getImplementationName() override; +virtual sal_Bool SAL_CALL supportsService(
[Libreoffice-commits] core.git: framework/inc framework/Library_fwk.mk framework/source
framework/Library_fwk.mk |1 framework/inc/uielement/FixedImageToolbarController.hxx| 59 ++ framework/inc/uielement/toolbarmerger.hxx |1 framework/source/uielement/FixedImageToolbarController.cxx | 113 + framework/source/uielement/toolbarmerger.cxx |3 5 files changed, 177 insertions(+) New commits: commit 2187cff2d452e20aa1fdfd5d8aa7473242cd1eb6 Author: Serge Krot AuthorDate: Fri Oct 18 17:40:11 2019 +0200 Commit: Thorsten Behrens CommitDate: Mon Nov 4 01:20:00 2019 +0100 Toolbar: Added usage of ImageControl as toolbar control Reviewed-on: https://gerrit.libreoffice.org/81064 Reviewed-by: Serge Krot (CIB) Tested-by: Serge Krot (CIB) (cherry picked from commit 48f945a3be16ee0eba0c526e51280dc8deafc316) Change-Id: I2536a505650b6e4c98e79f749c3b237518cc995d Reviewed-on: https://gerrit.libreoffice.org/81872 Tested-by: Jenkins Reviewed-by: Thorsten Behrens diff --git a/framework/Library_fwk.mk b/framework/Library_fwk.mk index 5d59402c2be5..1fe75ccab4b7 100644 --- a/framework/Library_fwk.mk +++ b/framework/Library_fwk.mk @@ -132,6 +132,7 @@ $(eval $(call gb_Library_add_exception_objects,fwk,\ framework/source/uielement/controlmenucontroller \ framework/source/uielement/dropdownboxtoolbarcontroller \ framework/source/uielement/edittoolbarcontroller \ +framework/source/uielement/FixedImageToolbarController \ framework/source/uielement/FixedTextToolbarController \ framework/source/uielement/genericstatusbarcontroller \ framework/source/uielement/generictoolbarcontroller \ diff --git a/framework/inc/uielement/FixedImageToolbarController.hxx b/framework/inc/uielement/FixedImageToolbarController.hxx new file mode 100644 index ..2fa55e4e8cc5 --- /dev/null +++ b/framework/inc/uielement/FixedImageToolbarController.hxx @@ -0,0 +1,59 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef INCLUDED_FRAMEWORK_INC_UIELEMENT_FIXEDIMAGETOOLBARCONTROLLER_HXX +#define INCLUDED_FRAMEWORK_INC_UIELEMENT_FIXEDIMAGETOOLBARCONTROLLER_HXX + +#include +#include + +#include + +class ToolBox; +class ImageControl; + +namespace framework +{ +class FixedImageToolbarController : public ComplexToolbarController +{ +public: +FixedImageToolbarController(const css::uno::Reference& rxContext, +const css::uno::Reference& rFrame, +ToolBox* pToolBar, sal_uInt16 nID, const OUString& aCommand); + +// XComponent +virtual void SAL_CALL dispose() override; + +void CheckAndUpdateImages(); + +protected: +virtual void executeControlCommand(const css::frame::ControlCommand& rControlCommand) override; + +protected: +DECL_LINK(MiscOptionsChanged, LinkParamNone*, void); + +private: +VclPtr m_pFixedImageControl; +sal_Int16 m_eSymbolSize; +}; +} // namespace framework + +#endif // INCLUDED_FRAMEWORK_INC_UIELEMENT_FIXEDIMAGETOOLBARCONTROLLER_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ \ No newline at end of file diff --git a/framework/inc/uielement/toolbarmerger.hxx b/framework/inc/uielement/toolbarmerger.hxx index cfe236f8328a..bb41a2bece60 100644 --- a/framework/inc/uielement/toolbarmerger.hxx +++ b/framework/inc/uielement/toolbarmerger.hxx @@ -27,6 +27,7 @@ #include #include #include +#include #include #include diff --git a/framework/source/uielement/FixedImageToolbarController.cxx b/framework/source/uielement/FixedImageToolbarController.cxx new file mode 100644 index ..6338287a8dd9 --- /dev/null +++ b/framework/source/uielement/FixedImageToolbarController.cxx @@ -0,0 +1,113 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work cov
[Libreoffice-commits] core.git: framework/inc framework/Library_fwk.mk framework/source
framework/Library_fwk.mk |1 framework/inc/uielement/FixedTextToolbarController.hxx| 55 +++ framework/inc/uielement/toolbarmerger.hxx |1 framework/source/uielement/FixedTextToolbarController.cxx | 98 ++ framework/source/uielement/toolbarmerger.cxx |3 5 files changed, 158 insertions(+) New commits: commit c538764082f29ef98fb859cae37a895cee2de889 Author: Serge Krot AuthorDate: Fri Oct 18 13:57:22 2019 +0200 Commit: Thorsten Behrens CommitDate: Fri Nov 1 00:24:05 2019 +0100 Toolbar: add usage of FixedText as toolbar control Change-Id: I26a79c485fa2e168058025e058bcfb793af7515f Reviewed-on: https://gerrit.libreoffice.org/81039 Reviewed-by: Serge Krot (CIB) Tested-by: Serge Krot (CIB) (cherry picked from commit c2682ba52ea0cbb7af95e80f6d67b286061aeae2) Reviewed-on: https://gerrit.libreoffice.org/81643 Reviewed-by: Thorsten Behrens Tested-by: Thorsten Behrens diff --git a/framework/Library_fwk.mk b/framework/Library_fwk.mk index 665df00be044..5d59402c2be5 100644 --- a/framework/Library_fwk.mk +++ b/framework/Library_fwk.mk @@ -132,6 +132,7 @@ $(eval $(call gb_Library_add_exception_objects,fwk,\ framework/source/uielement/controlmenucontroller \ framework/source/uielement/dropdownboxtoolbarcontroller \ framework/source/uielement/edittoolbarcontroller \ +framework/source/uielement/FixedTextToolbarController \ framework/source/uielement/genericstatusbarcontroller \ framework/source/uielement/generictoolbarcontroller \ framework/source/uielement/imagebuttontoolbarcontroller \ diff --git a/framework/inc/uielement/FixedTextToolbarController.hxx b/framework/inc/uielement/FixedTextToolbarController.hxx new file mode 100644 index ..cd8afb9499eb --- /dev/null +++ b/framework/inc/uielement/FixedTextToolbarController.hxx @@ -0,0 +1,55 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef INCLUDED_FRAMEWORK_INC_UIELEMENT_FIXEDTEXTTOOLBARCONTROLLER_HXX +#define INCLUDED_FRAMEWORK_INC_UIELEMENT_FIXEDTEXTTOOLBARCONTROLLER_HXX + +#include +#include + +#include + +class ToolBox; +class FixedText; + +namespace framework +{ +class FixedTextToolbarController : public ComplexToolbarController +{ +public: +FixedTextToolbarController(const css::uno::Reference& rxContext, + const css::uno::Reference& rFrame, + ToolBox* pToolBar, sal_uInt16 nID, const OUString& aCommand); + +// XComponent +virtual void SAL_CALL dispose() override; + +protected: +virtual void executeControlCommand(const css::frame::ControlCommand& rControlCommand) override; +virtual css::uno::Sequence +getExecuteArgs(sal_Int16 KeyModifier) const override; + +private: +VclPtr m_pFixedTextControl; +}; +} + +#endif // INCLUDED_FRAMEWORK_INC_UIELEMENT_FIXEDTEXTTOOLBARCONTROLLER_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ \ No newline at end of file diff --git a/framework/inc/uielement/toolbarmerger.hxx b/framework/inc/uielement/toolbarmerger.hxx index cc0448a8f76f..cfe236f8328a 100644 --- a/framework/inc/uielement/toolbarmerger.hxx +++ b/framework/inc/uielement/toolbarmerger.hxx @@ -27,6 +27,7 @@ #include #include #include +#include #include #include diff --git a/framework/source/uielement/FixedTextToolbarController.cxx b/framework/source/uielement/FixedTextToolbarController.cxx new file mode 100644 index ..7a2a41ae9c0f --- /dev/null +++ b/framework/source/uielement/FixedTextToolbarController.cxx @@ -0,0 +1,98 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation
[Libreoffice-commits] core.git: framework/inc framework/Library_fwk.mk framework/source
framework/Library_fwk.mk |1 framework/inc/helper/statusindicatorfactory.hxx|7 -- framework/inc/helper/wakeupthread.hxx | 57 +++ framework/source/helper/statusindicatorfactory.cxx | 25 framework/source/helper/wakeupthread.cxx | 60 + 5 files changed, 132 insertions(+), 18 deletions(-) New commits: commit d3b03032b7140a98946bfe8fc475a322e6eb6f9a Author: Noel Grandin AuthorDate: Tue Aug 20 10:14:19 2019 +0200 Commit: Noel Grandin CommitDate: Tue Aug 20 11:13:46 2019 +0200 tdf#125869 LibreOffice UI freezes (shows not responding) while exporting a pdf Revert "use vcl::Timer in StatusIndicatorFactory" This reverts commit 848058625c7fad21e2469c95c2a2078678925a5a, which seems to have been a bad idea Change-Id: I68be1757717352f164ce27c300a4a0487680891c Reviewed-on: https://gerrit.libreoffice.org/9 Tested-by: Jenkins Reviewed-by: Noel Grandin diff --git a/framework/Library_fwk.mk b/framework/Library_fwk.mk index 7a433735ce43..6d1f124f2f5a 100644 --- a/framework/Library_fwk.mk +++ b/framework/Library_fwk.mk @@ -88,6 +88,7 @@ $(eval $(call gb_Library_add_exception_objects,fwk,\ framework/source/helper/uiconfigelementwrapperbase \ framework/source/helper/uielementwrapperbase \ framework/source/helper/vclstatusindicator \ +framework/source/helper/wakeupthread \ framework/source/interaction/quietinteraction \ framework/source/jobs/job \ framework/source/jobs/jobdata \ diff --git a/framework/inc/helper/statusindicatorfactory.hxx b/framework/inc/helper/statusindicatorfactory.hxx index a2a073821d8e..4f6e183e8a54 100644 --- a/framework/inc/helper/statusindicatorfactory.hxx +++ b/framework/inc/helper/statusindicatorfactory.hxx @@ -25,6 +25,7 @@ #include // include files of own module +#include #include // include uno interfaces @@ -44,9 +45,7 @@ #include #include -#include #include -#include #include #include @@ -166,7 +165,7 @@ class StatusIndicatorFactory : public ::cppu::WeakImplHelper< /** Notify us if a fix time is over. We use it to implement an intelligent "Reschedule" ... */ -boost::optional m_xWakeUpTimer; +rtl::Reference m_pWakeUp; /** Our WakeUpThread calls us in our interface method "XUpdatable::update(). There we set this member m_bAllowReschedule to sal_True. Next time if our impl_reschedule() @@ -183,8 +182,6 @@ class StatusIndicatorFactory : public ::cppu::WeakImplHelper< /** prevent recursive calling of Application::Reschedule(). */ static sal_Int32 m_nInReschedule; -DECL_LINK( WakeupTimerHdl, Timer*, void ); - // interface public: diff --git a/framework/inc/helper/wakeupthread.hxx b/framework/inc/helper/wakeupthread.hxx new file mode 100644 index ..50e234f23713 --- /dev/null +++ b/framework/inc/helper/wakeupthread.hxx @@ -0,0 +1,57 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef INCLUDED_FRAMEWORK_INC_HELPER_WAKEUPTHREAD_HXX +#define INCLUDED_FRAMEWORK_INC_HELPER_WAKEUPTHREAD_HXX + +#include + +#include +#include +#include +#include +#include +#include + +namespace com { namespace sun { namespace star { namespace util { +class XUpdatable; +} } } } + +namespace framework{ + +class WakeUpThread: public salhelper::Thread { +css::uno::WeakReference updatable_; +osl::Condition condition_; + +osl::Mutex mutex_; +bool terminate_; + +void execute() override; + +public: +WakeUpThread(css::uno::Reference const & updatable); + +void stop(); +}; + +} + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/framework/source/helper/statusindicatorfactory.cxx b/framework/source/helper/statusindicatorfactory.cxx index ee33a646cadd..5e4ba3adf4e3 100644 --- a/framework/source/helper/statusindicatorfactory.cxx +++ b/framework/source/helper/statusindicatorfactory.cxx @@ -537,27 +537,26 @@ void StatusIndicatorFactory::impl_startWakeUpThread()
[Libreoffice-commits] core.git: framework/inc framework/Library_fwk.mk framework/source
framework/Library_fwk.mk |1 framework/inc/helper/statusindicatorfactory.hxx|7 +- framework/inc/helper/wakeupthread.hxx | 57 --- framework/source/helper/statusindicatorfactory.cxx | 25 framework/source/helper/wakeupthread.cxx | 60 - 5 files changed, 18 insertions(+), 132 deletions(-) New commits: commit 848058625c7fad21e2469c95c2a2078678925a5a Author: Noel Grandin AuthorDate: Fri May 24 11:49:44 2019 +0200 Commit: Noel Grandin CommitDate: Fri May 24 14:20:24 2019 +0200 use vcl::Timer in StatusIndicatorFactory does not need a separate thread Change-Id: I47bf2b255a331f4ec3ea24ad3a5d4c3ca398557e Reviewed-on: https://gerrit.libreoffice.org/72901 Tested-by: Jenkins Reviewed-by: Noel Grandin diff --git a/framework/Library_fwk.mk b/framework/Library_fwk.mk index 9057aaa6048a..3957a5ace0ff 100644 --- a/framework/Library_fwk.mk +++ b/framework/Library_fwk.mk @@ -88,7 +88,6 @@ $(eval $(call gb_Library_add_exception_objects,fwk,\ framework/source/helper/uiconfigelementwrapperbase \ framework/source/helper/uielementwrapperbase \ framework/source/helper/vclstatusindicator \ -framework/source/helper/wakeupthread \ framework/source/interaction/quietinteraction \ framework/source/jobs/job \ framework/source/jobs/jobdata \ diff --git a/framework/inc/helper/statusindicatorfactory.hxx b/framework/inc/helper/statusindicatorfactory.hxx index d343fe35395e..1ad060516313 100644 --- a/framework/inc/helper/statusindicatorfactory.hxx +++ b/framework/inc/helper/statusindicatorfactory.hxx @@ -25,7 +25,6 @@ #include // include files of own module -#include #include // include uno interfaces @@ -45,7 +44,9 @@ #include #include +#include #include +#include #include #include @@ -165,7 +166,7 @@ class StatusIndicatorFactory : public ::cppu::WeakImplHelper< /** Notify us if a fix time is over. We use it to implement an intelligent "Reschedule" ... */ -rtl::Reference m_pWakeUp; +boost::optional m_xWakeUpTimer; /** Our WakeUpThread calls us in our interface method "XUpdatable::update(). There we set this member m_bAllowReschedule to sal_True. Next time if our impl_reschedule() @@ -182,6 +183,8 @@ class StatusIndicatorFactory : public ::cppu::WeakImplHelper< /** prevent recursive calling of Application::Reschedule(). */ static sal_Int32 m_nInReschedule; +DECL_LINK( WakeupTimerHdl, Timer*, void ); + // interface public: diff --git a/framework/inc/helper/wakeupthread.hxx b/framework/inc/helper/wakeupthread.hxx deleted file mode 100644 index 50e234f23713.. --- a/framework/inc/helper/wakeupthread.hxx +++ /dev/null @@ -1,57 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#ifndef INCLUDED_FRAMEWORK_INC_HELPER_WAKEUPTHREAD_HXX -#define INCLUDED_FRAMEWORK_INC_HELPER_WAKEUPTHREAD_HXX - -#include - -#include -#include -#include -#include -#include -#include - -namespace com { namespace sun { namespace star { namespace util { -class XUpdatable; -} } } } - -namespace framework{ - -class WakeUpThread: public salhelper::Thread { -css::uno::WeakReference updatable_; -osl::Condition condition_; - -osl::Mutex mutex_; -bool terminate_; - -void execute() override; - -public: -WakeUpThread(css::uno::Reference const & updatable); - -void stop(); -}; - -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/framework/source/helper/statusindicatorfactory.cxx b/framework/source/helper/statusindicatorfactory.cxx index b4b17c1617e4..540cc3d4ade5 100644 --- a/framework/source/helper/statusindicatorfactory.cxx +++ b/framework/source/helper/statusindicatorfactory.cxx @@ -537,26 +537,27 @@ void StatusIndicatorFactory::impl_startWakeUpThread() if (m_bDisableReschedule) return; -if (!m_pWakeUp.is()) +if (!m_xWakeUpTimer) { -m_pWakeUp = new WakeUpThread(this); -m
[Libreoffice-commits] core.git: framework/inc framework/Library_fwk.mk framework/source
framework/Library_fwk.mk |1 framework/inc/uielement/styletoolbarcontroller.hxx| 81 ++ framework/source/uielement/menubarmanager.cxx |5 framework/source/uielement/styletoolbarcontroller.cxx | 238 ++ framework/source/uielement/toolbarmanager.cxx |6 5 files changed, 330 insertions(+), 1 deletion(-) New commits: commit b91fb08fd63207e663dca83abe1305d8025b4b48 Author: Maxim Monastirsky Date: Wed May 10 02:03:37 2017 +0300 tdf#106999 Feedback for style commands 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 Reviewed-by: Maxim Monastirsky diff --git a/framework/Library_fwk.mk b/framework/Library_fwk.mk index e20b8b22cc17..9057aaa6048a 100644 --- a/framework/Library_fwk.mk +++ b/framework/Library_fwk.mk @@ -153,6 +153,7 @@ $(eval $(call gb_Library_add_exception_objects,fwk,\ framework/source/uielement/statusbarmerger \ framework/source/uielement/statusbarwrapper \ framework/source/uielement/statusindicatorinterfacewrapper \ +framework/source/uielement/styletoolbarcontroller \ framework/source/uielement/subtoolbarcontroller \ framework/source/uielement/thesaurusmenucontroller \ framework/source/uielement/togglebuttontoolbarcontroller \ diff --git a/framework/inc/uielement/styletoolbarcontroller.hxx b/framework/inc/uielement/styletoolbarcontroller.hxx new file mode 100644 index ..8947647d6fc9 --- /dev/null +++ b/framework/inc/uielement/styletoolbarcontroller.hxx @@ -0,0 +1,81 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#ifndef INCLUDED_FRAMEWORK_INC_UIELEMENT_STYLETOOLBARCONTROLLER_HXX +#define INCLUDED_FRAMEWORK_INC_UIELEMENT_STYLETOOLBARCONTROLLER_HXX + +#include +#include + +namespace framework { + +/** + * A dispatcher that serves as a proxy for style commands with arguments + * i.e. .uno:StyleApply?... in order to provide useful status updates to + * generic UI elements such as toolbars or menubar. It listens to special + * status commands, and computes a boolean status out of them. Then it + * forwards that boolean status to the listener, as if it was the status + * of the original command. + * + * Note that the implementation is minimal: Although the UI element appears + * to be the owner of the dispatcher, it's still responsible, as usual, to + * call removeStatusListener same amount of times as addStatusListener, + * otherwise the dispatcher might not be destructed. In a
[Libreoffice-commits] core.git: framework/inc framework/Library_fwk.mk framework/source
framework/Library_fwk.mk |1 framework/inc/classes/fwktabwindow.hxx| 127 -- framework/source/classes/fwktabwindow.cxx | 359 -- 3 files changed, 487 deletions(-) New commits: commit b0e678c86136ef6d65cea66168a99217664c0278 Author: Maxim Monastirsky Date: Tue Apr 12 00:39:53 2016 +0300 FwkTabWindow is unused since d6d86237b1b438919609988049ac4a152612fee1 Change-Id: Ifad573ac687548a889165012e7b7bb2f4b82750c diff --git a/framework/Library_fwk.mk b/framework/Library_fwk.mk index d1927cd..ab6518a 100644 --- a/framework/Library_fwk.mk +++ b/framework/Library_fwk.mk @@ -67,7 +67,6 @@ $(eval $(call gb_Library_add_exception_objects,fwk,\ framework/source/accelerators/presethandler \ framework/source/accelerators/storageholder \ framework/source/classes/framecontainer \ -framework/source/classes/fwktabwindow \ framework/source/classes/taskcreator \ framework/source/dispatch/closedispatcher \ framework/source/dispatch/dispatchinformationprovider \ diff --git a/framework/inc/classes/fwktabwindow.hxx b/framework/inc/classes/fwktabwindow.hxx deleted file mode 100644 index 6fdea7a..000 --- a/framework/inc/classes/fwktabwindow.hxx +++ /dev/null @@ -1,127 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ -#ifndef INCLUDED_FRAMEWORK_INC_CLASSES_FWKTABWINDOW_HXX -#define INCLUDED_FRAMEWORK_INC_CLASSES_FWKTABWINDOW_HXX - -#include - -#include - -#include -#include -#include -#include -#include - -namespace com { namespace sun { namespace star { -namespace awt { -class XWindow; -class XContainerWindowProvider; -class XContainerWindowEventHandler; } -namespace beans { -struct NamedValue; } -} } } - -namespace framework -{ - -class FwkTabControl : public TabControl -{ -public: -FwkTabControl(vcl::Window* pParent); - -void BroadcastEvent( sal_uLong nEvent ); -}; - -class FwkTabPage : public TabPage -{ -private: -OUString m_sPageURL; -css::uno::Reference< css::awt::XWindow >m_xPage; -css::uno::Reference< css::awt::XContainerWindowEventHandler > m_xEventHdl; -css::uno::Reference< css::awt::XContainerWindowProvider > m_xWinProvider; - -voidCreateDialog(); -boolCallMethod( const OUString& rMethod ); - -public: -FwkTabPage( -vcl::Window* pParent, -const OUString& rPageURL, -const css::uno::Reference< css::awt::XContainerWindowEventHandler >& rEventHdl, -const css::uno::Reference< css::awt::XContainerWindowProvider >& rProvider ); - -virtual ~FwkTabPage(); -virtual voiddispose() override; - -virtual voidActivatePage() override; -virtual voidDeactivatePage() override; -virtual voidResize() override; -}; - -struct TabEntry -{ -sal_Int32 m_nIndex; -ScopedVclPtr m_pPage; -OUStringm_sPageURL; -css::uno::Reference< css::awt::XContainerWindowEventHandler > m_xEventHdl; - -TabEntry() : -m_nIndex( -1 ), m_pPage( nullptr ) {} - -TabEntry( sal_Int32 nIndex, const OUString& sURL, const css::uno::Reference< css::awt::XContainerWindowEventHandler > & rEventHdl ) : -m_nIndex( nIndex ), m_pPage( nullptr ), m_sPageURL( sURL ), m_xEventHdl( rEventHdl ) {} -~TabEntry() { m_pPage.disposeAndClear(); } -}; - -typedef std::vector< TabEntry* > TabEntryList; - -class FwkTabWindow : public vcl::Window -{ -private: -VclPtr m_aTabCtrl; -TabEntryList m_TabList; - -css::uno::Reference< css::awt::XContainerWindowProvider > m_xWinProvider; - -voidClearEntryList(); -TabEntry* FindEntry( sal_Int32 nIndex ) const; -boolRemoveEntry( sal_Int32 nIndex ); - -DECL_DLLPRIVATE_LINK_TYPED(ActivatePageHdl, TabControl *, void); -DECL_DLLPRIVATE_LINK_TYPED(DeactivatePageHdl, TabControl *, bool); - -public: -FwkTabWindow( vcl::Window* pParent ); -virtual ~FwkTabWindow(); -virtual voiddispose() ove