summaryrefslogtreecommitdiff
path: root/framework
diff options
context:
space:
mode:
authorMaxim Monastirsky <momonasmon@gmail.com>2020-08-13 01:05:59 +0300
committerMaxim Monastirsky <momonasmon@gmail.com>2020-08-14 17:03:55 +0200
commit7bb20ab2e84cf4d84d24bfcd8103946e92f2ae06 (patch)
treee86cc948a970fb0f68af2dc229527ac79992cb51 /framework
parentc5301f215fec9016c3a75ff4a6a0c6c22f152718 (diff)
One toolbar generic controller is enough
The one from framework is more feature complete, so use that one. Change-Id: I499f0ae1d20c588cfc04beebc643819559325882 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100726 Tested-by: Jenkins Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com>
Diffstat (limited to 'framework')
-rw-r--r--framework/inc/uielement/generictoolbarcontroller.hxx71
-rw-r--r--framework/source/uielement/generictoolbarcontroller.cxx42
-rw-r--r--framework/source/uielement/toolbarmanager.cxx2
-rw-r--r--framework/source/uielement/toolbarmerger.cxx2
4 files changed, 43 insertions, 74 deletions
diff --git a/framework/inc/uielement/generictoolbarcontroller.hxx b/framework/inc/uielement/generictoolbarcontroller.hxx
deleted file mode 100644
index 35934818ccb7..000000000000
--- a/framework/inc/uielement/generictoolbarcontroller.hxx
+++ /dev/null
@@ -1,71 +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_GENERICTOOLBARCONTROLLER_HXX
-#define INCLUDED_FRAMEWORK_INC_UIELEMENT_GENERICTOOLBARCONTROLLER_HXX
-
-#include <svtools/toolboxcontroller.hxx>
-#include <vcl/vclptr.hxx>
-
-class ToolBox;
-
-namespace framework
-{
-
-class GenericToolbarController final : public svt::ToolboxController
-{
- public:
- GenericToolbarController( const css::uno::Reference< css::uno::XComponentContext >& rxContext,
- const css::uno::Reference< css::frame::XFrame >& rFrame,
- ToolBox* pToolBar,
- sal_uInt16 nID,
- const OUString& aCommand );
- virtual ~GenericToolbarController() override;
-
- // XComponent
- virtual void SAL_CALL dispose() override;
-
- // XToolbarController
- virtual void SAL_CALL execute( sal_Int16 KeyModifier ) override;
-
- // XStatusListener
- virtual void SAL_CALL statusChanged( const css::frame::FeatureStateEvent& Event ) override;
-
- DECL_STATIC_LINK( GenericToolbarController, ExecuteHdl_Impl, void*, void );
-
- struct ExecuteInfo
- {
- css::uno::Reference< css::frame::XDispatch > xDispatch;
- css::util::URL aTargetURL;
- css::uno::Sequence< css::beans::PropertyValue > aArgs;
- };
-
- private:
- VclPtr<ToolBox> m_xToolbar;
- sal_uInt16 m_nID;
- bool m_bEnumCommand : 1,
- m_bMadeInvisible : 1;
- OUString m_aEnumCommand;
-};
-
-}
-
-#endif // INCLUDED_FRAMEWORK_INC_UIELEMENT_GENERICTOOLBARCONTROLLER_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/framework/source/uielement/generictoolbarcontroller.cxx b/framework/source/uielement/generictoolbarcontroller.cxx
index 8bea883d90d6..f8dc874b2902 100644
--- a/framework/source/uielement/generictoolbarcontroller.cxx
+++ b/framework/source/uielement/generictoolbarcontroller.cxx
@@ -17,7 +17,7 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
-#include <uielement/generictoolbarcontroller.hxx>
+#include <framework/generictoolbarcontroller.hxx>
#include <com/sun/star/util/XURLTransformer.hpp>
#include <com/sun/star/frame/XDispatchProvider.hpp>
@@ -28,6 +28,7 @@
#include <vcl/svapp.hxx>
#include <vcl/toolbox.hxx>
+#include <vcl/weld.hxx>
#include <tools/urlobj.hxx>
#include <strings.hrc>
#include <classes/fwkresid.hxx>
@@ -92,6 +93,20 @@ GenericToolbarController::GenericToolbarController( const Reference< XComponentC
{
if ( m_bEnumCommand )
addStatusListener( getMasterCommand( aCommand ) );
+
+ addStatusListener( aCommand );
+
+ // Initialization is done through ctor
+ m_bInitialized = true;
+}
+
+GenericToolbarController::GenericToolbarController( const Reference< XComponentContext >& rxContext,
+ const Reference< XFrame >& rFrame,
+ weld::Toolbar& rToolbar,
+ const OUString& aCommand ) :
+ GenericToolbarController( rxContext, rFrame, nullptr, 0, aCommand )
+{
+ m_pToolbar = &rToolbar;
}
GenericToolbarController::~GenericToolbarController()
@@ -104,6 +119,7 @@ void SAL_CALL GenericToolbarController::dispose()
svt::ToolboxController::dispose();
+ m_pToolbar = nullptr;
m_xToolbar.clear();
m_nID = 0;
}
@@ -159,6 +175,30 @@ void GenericToolbarController::statusChanged( const FeatureStateEvent& Event )
if ( m_bDisposed )
return;
+ if ( m_pToolbar )
+ {
+ OString sId = m_aCommandURL.toUtf8();
+
+ m_pToolbar->set_item_sensitive(sId, Event.IsEnabled);
+
+ bool bValue;
+ OUString aStrValue;
+
+ if ( Event.State >>= bValue )
+ {
+ // Boolean, treat it as checked/unchecked
+ m_pToolbar->set_item_active(sId, bValue);
+ }
+ else if ( Event.State >>= aStrValue )
+ {
+ m_pToolbar->set_item_label(sId, aStrValue);
+ }
+ else
+ m_pToolbar->set_item_active(sId, false);
+
+ return;
+ }
+
if ( !m_xToolbar )
return;
diff --git a/framework/source/uielement/toolbarmanager.cxx b/framework/source/uielement/toolbarmanager.cxx
index e3d8a20f8b4b..2582bcd109d9 100644
--- a/framework/source/uielement/toolbarmanager.cxx
+++ b/framework/source/uielement/toolbarmanager.cxx
@@ -23,7 +23,7 @@
#include <uielement/toolbarmanager.hxx>
-#include <uielement/generictoolbarcontroller.hxx>
+#include <framework/generictoolbarcontroller.hxx>
#include <uielement/styletoolbarcontroller.hxx>
#include <properties.h>
#include <framework/sfxhelperfunctions.hxx>
diff --git a/framework/source/uielement/toolbarmerger.cxx b/framework/source/uielement/toolbarmerger.cxx
index b2307a9483de..c012576fa35b 100644
--- a/framework/source/uielement/toolbarmerger.cxx
+++ b/framework/source/uielement/toolbarmerger.cxx
@@ -18,7 +18,7 @@
*/
#include <uielement/toolbarmerger.hxx>
-#include <uielement/generictoolbarcontroller.hxx>
+#include <framework/generictoolbarcontroller.hxx>
#include <uielement/buttontoolbarcontroller.hxx>
#include <uielement/comboboxtoolbarcontroller.hxx>