summaryrefslogtreecommitdiff
path: root/svtools
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 /svtools
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 'svtools')
-rw-r--r--svtools/Library_svt.mk1
-rw-r--r--svtools/source/uno/generictoolboxcontroller.cxx224
2 files changed, 0 insertions, 225 deletions
diff --git a/svtools/Library_svt.mk b/svtools/Library_svt.mk
index b7ed7657d691..5072c5917592 100644
--- a/svtools/Library_svt.mk
+++ b/svtools/Library_svt.mk
@@ -166,7 +166,6 @@ $(eval $(call gb_Library_add_exception_objects,svt,\
svtools/source/uno/addrtempuno \
svtools/source/uno/fpicker \
svtools/source/uno/framestatuslistener \
- svtools/source/uno/generictoolboxcontroller \
svtools/source/uno/genericunodialog \
svtools/source/uno/miscservices \
svtools/source/uno/popupmenucontrollerbase \
diff --git a/svtools/source/uno/generictoolboxcontroller.cxx b/svtools/source/uno/generictoolboxcontroller.cxx
deleted file mode 100644
index 57f7f5553b44..000000000000
--- a/svtools/source/uno/generictoolboxcontroller.cxx
+++ /dev/null
@@ -1,224 +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 .
- */
-
-#include <svtools/generictoolboxcontroller.hxx>
-
-#include <com/sun/star/util/XURLTransformer.hpp>
-#include <com/sun/star/beans/PropertyValue.hpp>
-#include <com/sun/star/lang/DisposedException.hpp>
-#include <com/sun/star/frame/status/ItemStatus.hpp>
-#include <com/sun/star/frame/XDispatch.hpp>
-
-#include <vcl/svapp.hxx>
-#include <vcl/weld.hxx>
-
-using namespace css::awt;
-using namespace css::uno;
-using namespace css::beans;
-using namespace css::lang;
-using namespace css::frame;
-using namespace css::frame::status;
-using namespace css::util;
-
-namespace svt
-{
-
-namespace {
-
-struct ExecuteInfo
-{
- css::uno::Reference< css::frame::XDispatch > xDispatch;
- css::util::URL aTargetURL;
- css::uno::Sequence< css::beans::PropertyValue > aArgs;
-};
-
-}
-
-GenericToolboxController::GenericToolboxController( const Reference< XComponentContext >& rxContext,
- const Reference< XFrame >& rFrame,
- ToolBox* pToolbox,
- sal_uInt16 nID,
- const OUString& aCommand )
- : svt::ToolboxController( rxContext, rFrame, aCommand )
- , m_xToolbox( pToolbox )
- , m_nID( nID )
- , m_pToolbox(nullptr)
-{
- // Initialization is done through ctor
- m_bInitialized = true;
-
- // insert main command to our listener map
- if ( !m_aCommandURL.isEmpty() )
- m_aListenerMap.emplace( aCommand, Reference< XDispatch >() );
-}
-
-GenericToolboxController::GenericToolboxController( const Reference< XComponentContext >& rxContext,
- const Reference< XFrame >& rFrame,
- weld::Toolbar& rToolbar,
- const OUString& aCommand )
- : svt::ToolboxController( rxContext, rFrame, aCommand )
- , m_xToolbox( nullptr )
- , m_nID( 0 )
- , m_pToolbox(&rToolbar)
-{
- // Initialization is done through ctor
- m_bInitialized = true;
-
- // insert main command to our listener map
- if ( !m_aCommandURL.isEmpty() )
- m_aListenerMap.emplace( aCommand, Reference< XDispatch >() );
-}
-
-GenericToolboxController::~GenericToolboxController()
-{
-}
-
-void SAL_CALL GenericToolboxController::dispose()
-{
- SolarMutexGuard aSolarMutexGuard;
- m_xToolbox.clear();
- m_nID = 0;
- m_pToolbox = nullptr;
- svt::ToolboxController::dispose();
-}
-
-void SAL_CALL GenericToolboxController::execute( sal_Int16 /*KeyModifier*/ )
-{
- Reference< XDispatch > xDispatch;
- OUString aCommandURL;
-
- {
- SolarMutexGuard aSolarMutexGuard;
-
- if ( m_bDisposed )
- throw DisposedException();
-
- if ( m_bInitialized &&
- m_xFrame.is() &&
- !m_aCommandURL.isEmpty() )
- {
- aCommandURL = m_aCommandURL;
- URLToDispatchMap::iterator pIter = m_aListenerMap.find( m_aCommandURL );
- if ( pIter != m_aListenerMap.end() )
- xDispatch = pIter->second;
- }
- }
-
- if ( !xDispatch.is() )
- return;
-
- css::util::URL aTargetURL;
- Sequence<PropertyValue> aArgs;
-
- aTargetURL.Complete = aCommandURL;
- if ( m_xUrlTransformer.is() )
- m_xUrlTransformer->parseStrict( aTargetURL );
-
- // Execute dispatch asynchronously
- ExecuteInfo* pExecuteInfo = new ExecuteInfo;
- pExecuteInfo->xDispatch = xDispatch;
- pExecuteInfo->aTargetURL = aTargetURL;
- pExecuteInfo->aArgs = aArgs;
- Application::PostUserEvent( LINK(nullptr, GenericToolboxController , ExecuteHdl_Impl), pExecuteInfo );
-}
-
-void GenericToolboxController::statusChanged( const FeatureStateEvent& Event )
-{
- SolarMutexGuard aSolarMutexGuard;
-
- if ( m_bDisposed )
- return;
-
- if (m_xToolbox)
- {
- m_xToolbox->EnableItem( m_nID, Event.IsEnabled );
-
- ToolBoxItemBits nItemBits = m_xToolbox->GetItemBits( m_nID );
- nItemBits &= ~ToolBoxItemBits::CHECKABLE;
- TriState eTri = TRISTATE_FALSE;
-
- bool bValue;
- OUString aStrValue;
- ItemStatus aItemState;
-
- if ( Event.State >>= bValue )
- {
- // Boolean, treat it as checked/unchecked
- m_xToolbox->SetItemBits( m_nID, nItemBits );
- m_xToolbox->CheckItem( m_nID, bValue );
- if ( bValue )
- eTri = TRISTATE_TRUE;
- nItemBits |= ToolBoxItemBits::CHECKABLE;
- }
- else if ( Event.State >>= aStrValue )
- {
- m_xToolbox->SetItemText( m_nID, aStrValue );
- }
- else if ( Event.State >>= aItemState )
- {
- eTri = TRISTATE_INDET;
- nItemBits |= ToolBoxItemBits::CHECKABLE;
- }
-
- m_xToolbox->SetItemState( m_nID, eTri );
- m_xToolbox->SetItemBits( m_nID, nItemBits );
- }
-
- if (!m_pToolbox)
- return;
-
- OString sId = m_aCommandURL.toUtf8();
-
- m_pToolbox->set_item_sensitive(sId, Event.IsEnabled);
-
- bool bValue;
- OUString aStrValue;
-
- if ( Event.State >>= bValue )
- {
- // Boolean, treat it as checked/unchecked
- m_pToolbox->set_item_active(sId, bValue);
- }
- else if ( Event.State >>= aStrValue )
- {
- m_pToolbox->set_item_label(sId, aStrValue);
- }
- else
- m_pToolbox->set_item_active(sId, false);
-}
-
-IMPL_STATIC_LINK( GenericToolboxController, ExecuteHdl_Impl, void*, p, void )
-{
- ExecuteInfo* pExecuteInfo = static_cast<ExecuteInfo*>(p);
- try
- {
- // Asynchronous execution as this can lead to our own destruction!
- // Framework can recycle our current frame and the layout manager disposes all user interface
- // elements if a component gets detached from its frame!
- pExecuteInfo->xDispatch->dispatch( pExecuteInfo->aTargetURL, pExecuteInfo->aArgs );
- }
- catch ( Exception& )
- {
- }
- delete pExecuteInfo;
-}
-
-} // namespace
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */