56e17186ff
Both sfx2::XmlDump and css::qa::XDumper were (only) used to dump various data from ChartModel and ChartView instances in debugging (e.g., F12 and Shift-F12 in an SW_DEBUG=1 Writer) and testing scenarios. The problem with XmlDump was that it was used as the target of a dynamic_cast from a UNO type, which is dangerous (see the upcoming commit introducing loplugin:unocast for details). One fix would have been to replace that dynamic_cast with a use of XUnoTunnel, and make ChartModel and ChartView implement that. But those classes already implement XDumper, so it looks more natural to use XDumper for that purpose too. However, the information that was obtained via XDumper was rather different from the information that was obtained via XmlDump. So make an incompatible change to the (unpublished) XDumper, adding a kind parameter distinguishing the original behavior of XDumper (kind == "shapes") from the original behavior of XmlDump (kind == ""). Change-Id: Ia7379bedfc45ab62a298fdc2f030cebaf21c4885 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144145 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
487 lines
19 KiB
C++
487 lines
19 KiB
C++
/* -*- 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 <LifeTime.hxx>
|
|
|
|
#include <com/sun/star/frame/XStorable2.hpp>
|
|
#include <com/sun/star/util/XModifiable.hpp>
|
|
#include <com/sun/star/util/XCloseable.hpp>
|
|
#include <com/sun/star/util/XUpdatable.hpp>
|
|
#include <com/sun/star/document/XDocumentPropertiesSupplier.hpp>
|
|
#include <com/sun/star/document/XUndoManagerSupplier.hpp>
|
|
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
|
|
#include <com/sun/star/lang/XServiceInfo.hpp>
|
|
#include <com/sun/star/lang/XInitialization.hpp>
|
|
#include <com/sun/star/util/XCloneable.hpp>
|
|
#include <com/sun/star/embed/XVisualObject.hpp>
|
|
#include <com/sun/star/document/XStorageBasedDocument.hpp>
|
|
#include <com/sun/star/lang/XUnoTunnel.hpp>
|
|
#include <com/sun/star/util/XNumberFormatsSupplier.hpp>
|
|
#include <com/sun/star/container/XChild.hpp>
|
|
#include <com/sun/star/chart2/data/XDataSource.hpp>
|
|
#include <com/sun/star/qa/XDumper.hpp>
|
|
|
|
// public API
|
|
#include <com/sun/star/chart2/data/XDataReceiver.hpp>
|
|
|
|
#include <com/sun/star/chart2/XChartDocument.hpp>
|
|
#include <com/sun/star/chart2/XTitled.hpp>
|
|
|
|
#include <com/sun/star/frame/XLoadable.hpp>
|
|
#include <com/sun/star/datatransfer/XTransferable.hpp>
|
|
|
|
#include <osl/mutex.hxx>
|
|
#include <rtl/ref.hxx>
|
|
#include <cppuhelper/implbase.hxx>
|
|
#include <comphelper/interfacecontainer2.hxx>
|
|
#include <vcl/GraphicObject.hxx>
|
|
|
|
#include <memory>
|
|
|
|
typedef struct _xmlTextWriter* xmlTextWriterPtr;
|
|
|
|
namespace com::sun::star::awt { class XRequestCallback; }
|
|
namespace com::sun::star::chart2::data { class XDataProvider; }
|
|
namespace com::sun::star::document { class XFilter; }
|
|
namespace com::sun::star::embed { class XStorage; }
|
|
namespace com::sun::star::frame { class XModel; }
|
|
namespace com::sun::star::uno { class XComponentContext; }
|
|
namespace com::sun::star::uno { class XAggregation; }
|
|
|
|
class SvNumberFormatter;
|
|
class SvNumberFormatsSupplierObj;
|
|
|
|
namespace chart
|
|
{
|
|
class Diagram;
|
|
class ChartTypeManager;
|
|
class ChartTypeTemplate;
|
|
class InternalDataProvider;
|
|
class NameContainer;
|
|
class PageBackground;
|
|
|
|
namespace impl
|
|
{
|
|
|
|
// Note: needed for queryInterface (if it calls the base-class implementation)
|
|
typedef cppu::WeakImplHelper<
|
|
// css::frame::XModel //comprehends XComponent (required interface), base of XChartDocument
|
|
css::util::XCloseable //comprehends XCloseBroadcaster
|
|
,css::frame::XStorable2 //(extension of XStorable)
|
|
,css::util::XModifiable //comprehends XModifyBroadcaster (required interface)
|
|
,css::lang::XServiceInfo
|
|
,css::lang::XInitialization
|
|
,css::chart2::XChartDocument // derived from XModel
|
|
,css::chart2::data::XDataReceiver // public API
|
|
,css::chart2::XTitled
|
|
,css::frame::XLoadable
|
|
,css::util::XCloneable
|
|
,css::embed::XVisualObject
|
|
,css::lang::XMultiServiceFactory
|
|
,css::document::XStorageBasedDocument
|
|
,css::lang::XUnoTunnel
|
|
,css::util::XNumberFormatsSupplier
|
|
,css::container::XChild
|
|
,css::util::XModifyListener
|
|
,css::datatransfer::XTransferable
|
|
,css::document::XDocumentPropertiesSupplier
|
|
,css::chart2::data::XDataSource
|
|
,css::document::XUndoManagerSupplier
|
|
,css::util::XUpdatable
|
|
,css::qa::XDumper
|
|
>
|
|
ChartModel_Base;
|
|
}
|
|
|
|
class UndoManager;
|
|
class ChartView;
|
|
|
|
class OOO_DLLPUBLIC_CHARTTOOLS SAL_LOPLUGIN_ANNOTATE("crosscast") ChartModel final :
|
|
public impl::ChartModel_Base
|
|
{
|
|
|
|
private:
|
|
mutable ::apphelper::CloseableLifeTimeManager m_aLifeTimeManager;
|
|
|
|
mutable ::osl::Mutex m_aModelMutex;
|
|
bool volatile m_bReadOnly;
|
|
bool volatile m_bModified;
|
|
sal_Int32 m_nInLoad;
|
|
bool volatile m_bUpdateNotificationsPending;
|
|
|
|
bool mbTimeBased;
|
|
|
|
mutable rtl::Reference<ChartView> mxChartView;
|
|
|
|
OUString m_aResource;
|
|
css::uno::Sequence< css::beans::PropertyValue > m_aMediaDescriptor;
|
|
css::uno::Reference< css::document::XDocumentProperties > m_xDocumentProperties;
|
|
::rtl::Reference< UndoManager > m_pUndoManager;
|
|
|
|
::comphelper::OInterfaceContainerHelper2 m_aControllers;
|
|
css::uno::Reference< css::frame::XController > m_xCurrentController;
|
|
sal_uInt16 m_nControllerLockCount;
|
|
|
|
css::uno::Reference< css::uno::XComponentContext > m_xContext;
|
|
css::uno::Reference< css::uno::XAggregation > m_xOldModelAgg;
|
|
|
|
css::uno::Reference< css::embed::XStorage > m_xStorage;
|
|
//the content of this should be always synchronized with the current m_xViewWindow size. The variable is necessary to hold the information as long as no view window exists.
|
|
css::awt::Size m_aVisualAreaSize;
|
|
css::uno::Reference< css::frame::XModel > m_xParent;
|
|
css::uno::Reference< css::chart2::data::XRangeHighlighter > m_xRangeHighlighter;
|
|
css::uno::Reference<css::awt::XRequestCallback> m_xPopupRequest;
|
|
std::vector< GraphicObject > m_aGraphicObjectVector;
|
|
|
|
css::uno::Reference< css::chart2::data::XDataProvider > m_xDataProvider;
|
|
/** is only valid if m_xDataProvider is set. If m_xDataProvider is set to an
|
|
external data provider this reference must be set to 0
|
|
*/
|
|
rtl::Reference< InternalDataProvider > m_xInternalDataProvider;
|
|
|
|
rtl::Reference< SvNumberFormatsSupplierObj > m_xOwnNumberFormatsSupplier;
|
|
css::uno::Reference< css::util::XNumberFormatsSupplier >
|
|
m_xNumberFormatsSupplier;
|
|
std::unique_ptr< SvNumberFormatter > m_apSvNumberFormatter; // #i113784# avoid memory leak
|
|
|
|
rtl::Reference< ::chart::ChartTypeManager >
|
|
m_xChartTypeManager;
|
|
|
|
// Diagram Access
|
|
rtl::Reference< ::chart::Diagram > m_xDiagram;
|
|
|
|
css::uno::Reference< css::chart2::XTitle >
|
|
m_xTitle;
|
|
|
|
rtl::Reference< ::chart::PageBackground > m_xPageBackground;
|
|
|
|
rtl::Reference< ::chart::NameContainer > m_xXMLNamespaceMap;
|
|
|
|
private:
|
|
//private methods
|
|
|
|
OUString impl_g_getLocation();
|
|
|
|
bool
|
|
impl_isControllerConnected( const css::uno::Reference< com::sun::star::frame::XController >& xController );
|
|
|
|
/// @throws css::uno::RuntimeException
|
|
css::uno::Reference< css::frame::XController >
|
|
impl_getCurrentController();
|
|
|
|
/// @throws css::uno::RuntimeException
|
|
void
|
|
impl_notifyModifiedListeners();
|
|
/// @throws css::uno::RuntimeException
|
|
void
|
|
impl_notifyCloseListeners();
|
|
/// @throws css::uno::RuntimeException
|
|
void
|
|
impl_notifyStorageChangeListeners();
|
|
|
|
void impl_store(
|
|
const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor,
|
|
const css::uno::Reference< css::embed::XStorage > & xStorage );
|
|
void impl_load(
|
|
const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor,
|
|
const css::uno::Reference< css::embed::XStorage >& xStorage );
|
|
void impl_loadGraphics(
|
|
const css::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage );
|
|
css::uno::Reference< css::document::XFilter >
|
|
impl_createFilter( const css::uno::Sequence< css::beans::PropertyValue > & rMediaDescriptor );
|
|
|
|
rtl::Reference< ::chart::ChartTypeTemplate > impl_createDefaultChartTypeTemplate();
|
|
css::uno::Reference< css::chart2::data::XDataSource > impl_createDefaultData();
|
|
|
|
void impl_adjustAdditionalShapesPositionAndSize(
|
|
const css::awt::Size& aVisualAreaSize );
|
|
|
|
void insertDefaultChart();
|
|
|
|
public:
|
|
ChartModel() = delete;
|
|
ChartModel(css::uno::Reference< css::uno::XComponentContext > xContext);
|
|
explicit ChartModel( const ChartModel & rOther );
|
|
virtual ~ChartModel() override;
|
|
|
|
// css::lang::XServiceInfo
|
|
|
|
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;
|
|
|
|
// css::lang::XInitialization
|
|
virtual void SAL_CALL initialize( const css::uno::Sequence< css::uno::Any >& aArguments ) override;
|
|
|
|
// css::frame::XModel (required interface)
|
|
|
|
virtual sal_Bool SAL_CALL
|
|
attachResource( const OUString& rURL,
|
|
const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor ) override;
|
|
|
|
virtual OUString SAL_CALL
|
|
getURL() override;
|
|
|
|
virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL
|
|
getArgs() override;
|
|
|
|
virtual void SAL_CALL
|
|
connectController( const css::uno::Reference< css::frame::XController >& xController ) override;
|
|
|
|
virtual void SAL_CALL
|
|
disconnectController( const css::uno::Reference< css::frame::XController >& xController ) override;
|
|
|
|
virtual void SAL_CALL
|
|
lockControllers() override;
|
|
|
|
virtual void SAL_CALL
|
|
unlockControllers() override;
|
|
|
|
virtual sal_Bool SAL_CALL
|
|
hasControllersLocked() override;
|
|
|
|
virtual css::uno::Reference< css::frame::XController > SAL_CALL
|
|
getCurrentController() override;
|
|
|
|
virtual void SAL_CALL
|
|
setCurrentController( const css::uno::Reference< css::frame::XController >& xController ) override;
|
|
|
|
virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
|
|
getCurrentSelection() override;
|
|
|
|
// css::lang::XComponent (base of XModel)
|
|
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 > & xListener ) override;
|
|
|
|
// css::util::XCloseable
|
|
virtual void SAL_CALL
|
|
close( sal_Bool bDeliverOwnership ) override;
|
|
|
|
// css::util::XCloseBroadcaster (base of XCloseable)
|
|
virtual void SAL_CALL
|
|
addCloseListener( const css::uno::Reference< css::util::XCloseListener > & xListener ) override;
|
|
|
|
virtual void SAL_CALL
|
|
removeCloseListener( const css::uno::Reference< css::util::XCloseListener > & xListener ) override;
|
|
|
|
// css::frame::XStorable2 (extension of XStorable)
|
|
virtual void SAL_CALL storeSelf(
|
|
const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor ) override;
|
|
|
|
// css::frame::XStorable (required interface)
|
|
virtual sal_Bool SAL_CALL
|
|
hasLocation() override;
|
|
|
|
virtual OUString SAL_CALL
|
|
getLocation() override;
|
|
|
|
virtual sal_Bool SAL_CALL
|
|
isReadonly() override;
|
|
|
|
virtual void SAL_CALL
|
|
store() override;
|
|
|
|
virtual void SAL_CALL
|
|
storeAsURL( const OUString& rURL,
|
|
const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor ) override;
|
|
|
|
virtual void SAL_CALL
|
|
storeToURL( const OUString& rURL,
|
|
const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor ) override;
|
|
|
|
// css::util::XModifiable (required interface)
|
|
virtual sal_Bool SAL_CALL
|
|
isModified() override;
|
|
|
|
virtual void SAL_CALL
|
|
setModified( sal_Bool bModified ) override;
|
|
|
|
// css::util::XModifyBroadcaster (base of XModifiable)
|
|
virtual void SAL_CALL
|
|
addModifyListener( const css::uno::Reference< css::util::XModifyListener >& xListener ) override;
|
|
|
|
virtual void SAL_CALL
|
|
removeModifyListener( const css::uno::Reference< css::util::XModifyListener >& xListener ) 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;
|
|
|
|
// ____ datatransferable::XTransferable ____
|
|
virtual css::uno::Any SAL_CALL getTransferData(
|
|
const css::datatransfer::DataFlavor& aFlavor ) override;
|
|
virtual css::uno::Sequence< css::datatransfer::DataFlavor > SAL_CALL getTransferDataFlavors() override;
|
|
virtual sal_Bool SAL_CALL isDataFlavorSupported(
|
|
const css::datatransfer::DataFlavor& aFlavor ) override;
|
|
|
|
// lang::XTypeProvider (override method of WeakImplHelper)
|
|
virtual css::uno::Sequence< css::uno::Type > SAL_CALL
|
|
getTypes() override;
|
|
|
|
// ____ document::XDocumentPropertiesSupplier ____
|
|
virtual css::uno::Reference< css::document::XDocumentProperties > SAL_CALL
|
|
getDocumentProperties( ) override;
|
|
|
|
// ____ document::XUndoManagerSupplier ____
|
|
virtual css::uno::Reference< css::document::XUndoManager > SAL_CALL
|
|
getUndoManager( ) override;
|
|
|
|
// css::chart2::XChartDocument
|
|
virtual css::uno::Reference< css::chart2::XDiagram > SAL_CALL
|
|
getFirstDiagram() override;
|
|
virtual void SAL_CALL setFirstDiagram(
|
|
const css::uno::Reference< css::chart2::XDiagram >& xDiagram ) override;
|
|
virtual void SAL_CALL
|
|
createInternalDataProvider( sal_Bool bCloneExistingData ) override;
|
|
virtual sal_Bool SAL_CALL hasInternalDataProvider() override;
|
|
virtual css::uno::Reference< css::chart2::data::XDataProvider > SAL_CALL
|
|
getDataProvider() override;
|
|
virtual void SAL_CALL
|
|
setChartTypeManager( const css::uno::Reference< css::chart2::XChartTypeManager >& xNewManager ) override;
|
|
virtual css::uno::Reference< css::chart2::XChartTypeManager > SAL_CALL
|
|
getChartTypeManager() override;
|
|
virtual css::uno::Reference< css::beans::XPropertySet > SAL_CALL
|
|
getPageBackground() override;
|
|
|
|
virtual void SAL_CALL createDefaultChart() override;
|
|
|
|
// ____ XDataReceiver (public API) ____
|
|
virtual void SAL_CALL
|
|
attachDataProvider( const css::uno::Reference< css::chart2::data::XDataProvider >& xProvider ) override;
|
|
virtual void SAL_CALL setArguments(
|
|
const css::uno::Sequence< css::beans::PropertyValue >& aArguments ) override;
|
|
virtual css::uno::Sequence< OUString > SAL_CALL getUsedRangeRepresentations() override;
|
|
virtual css::uno::Reference< css::chart2::data::XDataSource > SAL_CALL getUsedData() override;
|
|
virtual void SAL_CALL attachNumberFormatsSupplier( const css::uno::Reference<
|
|
css::util::XNumberFormatsSupplier >& xSupplier ) override;
|
|
virtual css::uno::Reference< css::chart2::data::XRangeHighlighter > SAL_CALL getRangeHighlighter() override;
|
|
virtual css::uno::Reference<css::awt::XRequestCallback> SAL_CALL getPopupRequest() override;
|
|
|
|
// ____ XTitled ____
|
|
virtual css::uno::Reference< css::chart2::XTitle > SAL_CALL getTitleObject() override;
|
|
virtual void SAL_CALL setTitleObject( const css::uno::Reference< css::chart2::XTitle >& Title ) override;
|
|
|
|
// ____ XInterface (for old API wrapper) ____
|
|
virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type& aType ) override;
|
|
|
|
// ____ XLoadable ____
|
|
virtual void SAL_CALL initNew() override;
|
|
virtual void SAL_CALL load( const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor ) override;
|
|
|
|
// ____ XCloneable ____
|
|
virtual css::uno::Reference< css::util::XCloneable > SAL_CALL createClone() override;
|
|
|
|
// ____ XVisualObject ____
|
|
virtual void SAL_CALL setVisualAreaSize(
|
|
::sal_Int64 nAspect,
|
|
const css::awt::Size& aSize ) override;
|
|
virtual css::awt::Size SAL_CALL getVisualAreaSize(
|
|
::sal_Int64 nAspect ) override;
|
|
virtual css::embed::VisualRepresentation SAL_CALL getPreferredVisualRepresentation(
|
|
::sal_Int64 nAspect ) override;
|
|
virtual ::sal_Int32 SAL_CALL getMapUnit(
|
|
::sal_Int64 nAspect ) override;
|
|
|
|
// ____ XMultiServiceFactory ____
|
|
virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
|
|
createInstance( const OUString& aServiceSpecifier ) override;
|
|
virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
|
|
createInstanceWithArguments( const OUString& ServiceSpecifier
|
|
, const css::uno::Sequence< css::uno::Any >& Arguments ) override;
|
|
virtual css::uno::Sequence< OUString > SAL_CALL
|
|
getAvailableServiceNames() override;
|
|
|
|
// ____ XStorageBasedDocument ____
|
|
virtual void SAL_CALL loadFromStorage(
|
|
const css::uno::Reference< css::embed::XStorage >& xStorage,
|
|
const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor ) override;
|
|
virtual void SAL_CALL storeToStorage(
|
|
const css::uno::Reference< css::embed::XStorage >& xStorage,
|
|
const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor ) override;
|
|
virtual void SAL_CALL switchToStorage(
|
|
const css::uno::Reference< css::embed::XStorage >& xStorage ) override;
|
|
virtual css::uno::Reference< css::embed::XStorage > SAL_CALL getDocumentStorage() override;
|
|
virtual void SAL_CALL addStorageChangeListener(
|
|
const css::uno::Reference< css::document::XStorageChangeListener >& xListener ) override;
|
|
virtual void SAL_CALL removeStorageChangeListener(
|
|
const css::uno::Reference< css::document::XStorageChangeListener >& xListener ) override;
|
|
|
|
// for SvNumberFormatsSupplierObj
|
|
// ____ XUnoTunnel ___
|
|
virtual ::sal_Int64 SAL_CALL getSomething( const css::uno::Sequence< ::sal_Int8 >& aIdentifier ) override;
|
|
|
|
// ____ XNumberFormatsSupplier ____
|
|
virtual css::uno::Reference< css::beans::XPropertySet > SAL_CALL getNumberFormatSettings() override;
|
|
virtual css::uno::Reference< css::util::XNumberFormats > SAL_CALL getNumberFormats() override;
|
|
|
|
// ____ XChild ____
|
|
virtual css::uno::Reference< css::uno::XInterface > SAL_CALL getParent() override;
|
|
virtual void SAL_CALL setParent(
|
|
const css::uno::Reference< css::uno::XInterface >& Parent ) override;
|
|
|
|
// ____ XDataSource ____ allows access to the currently used data and data ranges
|
|
virtual css::uno::Sequence< css::uno::Reference< css::chart2::data::XLabeledDataSequence > > SAL_CALL getDataSequences() override;
|
|
|
|
// XUpdatable
|
|
virtual void SAL_CALL update() override;
|
|
|
|
// XDumper
|
|
virtual OUString SAL_CALL dump(OUString const & kind) override;
|
|
|
|
// normal methods
|
|
css::uno::Reference< css::util::XNumberFormatsSupplier > const &
|
|
getNumberFormatsSupplier();
|
|
|
|
ChartView* getChartView() const;
|
|
|
|
const rtl::Reference< ::chart::Diagram > & getFirstChartDiagram() { return m_xDiagram; }
|
|
|
|
bool isTimeBased() const { return mbTimeBased;}
|
|
|
|
void setTimeBasedRange(sal_Int32 nStart, sal_Int32 nEnd);
|
|
|
|
bool isDataFromSpreadsheet();
|
|
|
|
bool isDataFromPivotTable() const;
|
|
|
|
void removeDataProviders();
|
|
|
|
const rtl::Reference< ::chart::ChartTypeManager > & getTypeManager() const { return m_xChartTypeManager; }
|
|
|
|
private:
|
|
void dumpAsXml(xmlTextWriterPtr pWriter) const;
|
|
|
|
sal_Int32 mnStart;
|
|
sal_Int32 mnEnd;
|
|
};
|
|
|
|
} // namespace chart
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|