diff options
author | Noel Grandin <noelgrandin@gmail.com> | 2022-01-29 12:45:23 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2022-01-29 15:51:30 +0100 |
commit | 2781c7a50f3a9bcf48e84a8c5f450b16d576a8e6 (patch) | |
tree | 468c5a764c12481ede8ded07215612cb5debea73 /chart2/source/model | |
parent | 8c5619b0272a67530760573993814fe7968a6c97 (diff) |
use more concrete types in chart2, Legend
Change-Id: Ifbf8ddd92eacd4caaf6fdaa061821222e543a1a6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129133
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'chart2/source/model')
-rw-r--r-- | chart2/source/model/main/Diagram.cxx | 13 | ||||
-rw-r--r-- | chart2/source/model/main/Legend.cxx | 2 | ||||
-rw-r--r-- | chart2/source/model/main/Legend.hxx | 102 |
3 files changed, 12 insertions, 105 deletions
diff --git a/chart2/source/model/main/Diagram.cxx b/chart2/source/model/main/Diagram.cxx index 91b4a6b31c7b..60bcbd5124f7 100644 --- a/chart2/source/model/main/Diagram.cxx +++ b/chart2/source/model/main/Diagram.cxx @@ -31,6 +31,7 @@ #include <SceneProperties.hxx> #include <unonames.hxx> #include <BaseCoordinateSystem.hxx> +#include <Legend.hxx> #include <basegfx/numeric/ftools.hxx> #include <com/sun/star/beans/PropertyAttribute.hpp> @@ -274,7 +275,8 @@ Diagram::Diagram( const Diagram & rOther ) : if ( rOther.m_xFloor ) m_xFloor = new Wall( *rOther.m_xFloor ); m_xTitle.set( CloneHelper::CreateRefClone< chart2::XTitle >()( rOther.m_xTitle )); - m_xLegend.set( CloneHelper::CreateRefClone< chart2::XLegend >()( rOther.m_xLegend )); + if (rOther.m_xLegend) + m_xLegend = new Legend(*rOther.m_xLegend); if ( m_xWall ) m_xWall->addModifyListener( m_xModifyEventForwarder ); @@ -349,7 +351,14 @@ uno::Reference< chart2::XLegend > SAL_CALL Diagram::getLegend() void SAL_CALL Diagram::setLegend( const uno::Reference< chart2::XLegend >& xNewLegend ) { - Reference< chart2::XLegend > xOldLegend; + auto pLegend = dynamic_cast<Legend*>(xNewLegend.get()); + assert(!xNewLegend || pLegend); + setLegend(rtl::Reference< Legend >(pLegend)); +} + +void Diagram::setLegend( const rtl::Reference< Legend >& xNewLegend ) +{ + rtl::Reference< Legend > xOldLegend; { MutexGuard aGuard( m_aMutex ); if( m_xLegend == xNewLegend ) diff --git a/chart2/source/model/main/Legend.cxx b/chart2/source/model/main/Legend.cxx index 27eae67764ed..741b90039370 100644 --- a/chart2/source/model/main/Legend.cxx +++ b/chart2/source/model/main/Legend.cxx @@ -17,7 +17,7 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ -#include "Legend.hxx" +#include <Legend.hxx> #include <LinePropertiesHelper.hxx> #include <FillProperties.hxx> #include <CharacterProperties.hxx> diff --git a/chart2/source/model/main/Legend.hxx b/chart2/source/model/main/Legend.hxx deleted file mode 100644 index 8748a4592393..000000000000 --- a/chart2/source/model/main/Legend.hxx +++ /dev/null @@ -1,102 +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 <OPropertySet.hxx> -#include <cppuhelper/basemutex.hxx> -#include <cppuhelper/implbase.hxx> -#include <comphelper/uno3.hxx> -#include <com/sun/star/chart2/XLegend.hpp> -#include <com/sun/star/lang/XServiceInfo.hpp> -#include <com/sun/star/util/XCloneable.hpp> -#include <ModifyListenerHelper.hxx> - -namespace chart -{ - -namespace impl -{ -typedef ::cppu::WeakImplHelper< - css::chart2::XLegend, - css::lang::XServiceInfo, - css::util::XCloneable, - css::util::XModifyBroadcaster, - css::util::XModifyListener > - Legend_Base; -} - -class Legend final : - public cppu::BaseMutex, - public impl::Legend_Base, - public ::property::OPropertySet -{ -public: - explicit Legend(); - virtual ~Legend() override; - - /// XServiceInfo declarations - virtual OUString SAL_CALL getImplementationName() override; - virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override; - virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override; - - /// merge XInterface implementations - DECLARE_XINTERFACE() - /// merge XTypeProvider implementations - DECLARE_XTYPEPROVIDER() - -private: - explicit Legend( const Legend & rOther ); - - // ____ OPropertySet ____ - virtual void GetDefaultValue( sal_Int32 nHandle, css::uno::Any& rAny ) const override; - - // ____ OPropertySet ____ - virtual ::cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper() override; - - // ____ XPropertySet ____ - virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL - getPropertySetInfo() override; - - // ____ XCloneable ____ - virtual css::uno::Reference< css::util::XCloneable > SAL_CALL createClone() override; - - // ____ XModifyBroadcaster ____ - virtual void SAL_CALL addModifyListener( - const css::uno::Reference< css::util::XModifyListener >& aListener ) override; - virtual void SAL_CALL removeModifyListener( - const css::uno::Reference< css::util::XModifyListener >& aListener ) override; - - // ____ XModifyListener ____ - virtual void SAL_CALL modified( - const css::lang::EventObject& aEvent ) override; - - // ____ XEventListener (base of XModifyListener) ____ - virtual void SAL_CALL disposing( - const css::lang::EventObject& Source ) override; - - // ____ OPropertySet ____ - virtual void firePropertyChangeEvent() override; - using OPropertySet::disposing; - - rtl::Reference<ModifyEventForwarder> m_xModifyEventForwarder; -}; - -} // namespace chart - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |