Coverage Report

Created: 2026-04-09 11:41

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libreoffice/chart2/inc/ChartModel.hxx
Line
Count
Source
1
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
/*
3
 * This file is part of the LibreOffice project.
4
 *
5
 * This Source Code Form is subject to the terms of the Mozilla Public
6
 * License, v. 2.0. If a copy of the MPL was not distributed with this
7
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8
 *
9
 * This file incorporates work covered by the following license notice:
10
 *
11
 *   Licensed to the Apache Software Foundation (ASF) under one or more
12
 *   contributor license agreements. See the NOTICE file distributed
13
 *   with this work for additional information regarding copyright
14
 *   ownership. The ASF licenses this file to you under the Apache
15
 *   License, Version 2.0 (the "License"); you may not use this file
16
 *   except in compliance with the License. You may obtain a copy of
17
 *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
18
 */
19
#pragma once
20
21
#include <LifeTime.hxx>
22
23
#include <com/sun/star/frame/XStorable2.hpp>
24
#include <com/sun/star/util/XModifiable.hpp>
25
#include <com/sun/star/util/XCloseable.hpp>
26
#include <com/sun/star/util/XUpdatable.hpp>
27
#include <com/sun/star/util/DateTime.hpp>
28
#include <com/sun/star/document/XDocumentPropertiesSupplier.hpp>
29
#include <com/sun/star/document/XUndoManagerSupplier.hpp>
30
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
31
#include <com/sun/star/lang/XServiceInfo.hpp>
32
#include <com/sun/star/lang/XInitialization.hpp>
33
#include <com/sun/star/util/XCloneable.hpp>
34
#include <com/sun/star/embed/XVisualObject.hpp>
35
#include <com/sun/star/document/XStorageBasedDocument.hpp>
36
#include <com/sun/star/lang/XUnoTunnel.hpp>
37
#include <com/sun/star/util/XNumberFormatsSupplier.hpp>
38
#include <com/sun/star/container/XChild.hpp>
39
#include <com/sun/star/chart2/data/XDataSource.hpp>
40
#include <com/sun/star/qa/XDumper.hpp>
41
42
// public API
43
#include <com/sun/star/chart2/data/XDataReceiver.hpp>
44
45
#include <com/sun/star/chart2/XChartDocument.hpp>
46
#include <com/sun/star/chart2/XTitled.hpp>
47
48
#include <com/sun/star/frame/XLoadable.hpp>
49
#include <com/sun/star/datatransfer/XTransferable.hpp>
50
51
#include <osl/mutex.hxx>
52
#include <rtl/ref.hxx>
53
#include <cppuhelper/implbase.hxx>
54
#include <comphelper/interfacecontainer2.hxx>
55
#include <vcl/GraphicObject.hxx>
56
#include <svl/lstner.hxx>
57
#include <svx/ChartColorPaletteType.hxx>
58
59
#include <memory>
60
61
typedef struct _xmlTextWriter* xmlTextWriterPtr;
62
63
0
#define DEFAULT_PAGE_WIDTH  16000
64
0
#define DEFAULT_PAGE_HEIGHT 9000
65
66
namespace com::sun::star::awt { class XRequestCallback; }
67
namespace com::sun::star::chart2::data { class XDataProvider; }
68
namespace com::sun::star::document { class XFilter; }
69
namespace com::sun::star::embed { class XStorage; }
70
namespace com::sun::star::frame { class XModel; }
71
namespace com::sun::star::uno { class XComponentContext; }
72
73
class SvNumberFormatter;
74
class SvNumberFormatsSupplierObj;
75
76
class UnoChartStyle;
77
class UnoChartColorStyle;
78
79
namespace model { class Theme; }
80
81
namespace chart
82
{
83
class Diagram;
84
class ChartTypeManager;
85
class ChartTypeTemplate;
86
class InternalDataProvider;
87
class NameContainer;
88
class PageBackground;
89
class RangeHighlighter;
90
class Title;
91
class BaseCoordinateSystem;
92
class DataSeries;
93
class ChartType;
94
namespace wrapper { class ChartDocumentWrapper; }
95
96
namespace impl
97
{
98
99
// Note: needed for queryInterface (if it calls the base-class implementation)
100
typedef cppu::WeakImplHelper<
101
//       css::frame::XModel        //comprehends XComponent (required interface), base of XChartDocument
102
         css::util::XCloseable     //comprehends XCloseBroadcaster
103
        ,css::frame::XStorable2    //(extension of XStorable)
104
        ,css::util::XModifiable    //comprehends XModifyBroadcaster (required interface)
105
        ,css::lang::XServiceInfo
106
        ,css::lang::XInitialization
107
        ,css::chart2::XChartDocument  // derived from XModel
108
        ,css::chart2::data::XDataReceiver   // public API
109
        ,css::chart2::XTitled
110
        ,css::frame::XLoadable
111
        ,css::util::XCloneable
112
        ,css::embed::XVisualObject
113
        ,css::lang::XMultiServiceFactory
114
        ,css::document::XStorageBasedDocument
115
        ,css::lang::XUnoTunnel
116
        ,css::util::XNumberFormatsSupplier
117
        ,css::container::XChild
118
        ,css::util::XModifyListener
119
        ,css::datatransfer::XTransferable
120
        ,css::document::XDocumentPropertiesSupplier
121
        ,css::chart2::data::XDataSource
122
        ,css::document::XUndoManagerSupplier
123
        ,css::util::XUpdatable
124
        ,css::qa::XDumper
125
        >
126
    ChartModel_Base;
127
}
128
129
class UndoManager;
130
class ChartView;
131
132
class SAL_LOPLUGIN_ANNOTATE("crosscast") ChartModel final :
133
    public impl::ChartModel_Base, private SfxListener
134
{
135
136
private:
137
    mutable ::apphelper::CloseableLifeTimeManager   m_aLifeTimeManager;
138
139
    mutable ::osl::Mutex    m_aModelMutex;
140
    bool volatile       m_bReadOnly;
141
    bool volatile       m_bModified;
142
    sal_Int32               m_nInLoad;
143
    bool volatile       m_bUpdateNotificationsPending;
144
145
    bool mbTimeBased;
146
147
    mutable rtl::Reference<ChartView> mxChartView;
148
149
    OUString m_aResource;
150
    css::uno::Sequence< css::beans::PropertyValue >   m_aMediaDescriptor;
151
    css::uno::Reference< css::document::XDocumentProperties > m_xDocumentProperties;
152
    ::rtl::Reference< UndoManager >                    m_pUndoManager;
153
154
    ::comphelper::OInterfaceContainerHelper2           m_aControllers;
155
    css::uno::Reference< css::frame::XController >     m_xCurrentController;
156
    sal_uInt16                                         m_nControllerLockCount;
157
158
    css::uno::Reference< css::uno::XComponentContext > m_xContext;
159
    rtl::Reference< wrapper::ChartDocumentWrapper >    m_xOldModelAgg;
160
161
    css::uno::Reference< css::embed::XStorage >        m_xStorage;
162
    //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.
163
    css::awt::Size                                     m_aVisualAreaSize;
164
    css::uno::Reference< css::frame::XModel >          m_xParent;
165
    rtl::Reference< ::chart::RangeHighlighter >        m_xRangeHighlighter;
166
    css::uno::Reference<css::awt::XRequestCallback>    m_xPopupRequest;
167
    std::vector< GraphicObject >                            m_aGraphicObjectVector;
168
169
    css::uno::Reference< css::chart2::data::XDataProvider >   m_xDataProvider;
170
    /** is only valid if m_xDataProvider is set. If m_xDataProvider is set to an
171
        external data provider this reference must be set to 0
172
    */
173
    rtl::Reference< InternalDataProvider > m_xInternalDataProvider;
174
175
    rtl::Reference< SvNumberFormatsSupplierObj > m_xOwnNumberFormatsSupplier;
176
    css::uno::Reference< css::util::XNumberFormatsSupplier >
177
                                m_xNumberFormatsSupplier;
178
    std::unique_ptr< SvNumberFormatter > m_apSvNumberFormatter; // #i113784# avoid memory leak
179
180
    rtl::Reference< ::chart::ChartTypeManager >
181
        m_xChartTypeManager;
182
183
    // Diagram Access
184
    rtl::Reference< ::chart::Diagram > m_xDiagram;
185
186
    rtl::Reference< ::chart::Title > m_xTitle;
187
188
    rtl::Reference< ::chart::PageBackground > m_xPageBackground;
189
190
    rtl::Reference< ::chart::NameContainer > m_xXMLNamespaceMap;
191
192
    ChartColorPaletteType m_eColorPaletteType;
193
    sal_uInt32 m_nColorPaletteIndex;
194
195
    std::optional<css::util::DateTime> m_aNullDate;
196
197
    rtl::Reference<UnoChartStyle> m_aStyles;
198
    rtl::Reference<UnoChartColorStyle> m_aColorStyles;
199
200
private:
201
    //private methods
202
203
    OUString impl_g_getLocation();
204
205
    bool
206
        impl_isControllerConnected( const css::uno::Reference< css::frame::XController >& xController );
207
208
    /// @throws css::uno::RuntimeException
209
    css::uno::Reference< css::frame::XController >
210
        impl_getCurrentController();
211
212
    /// @throws css::uno::RuntimeException
213
    void
214
        impl_notifyModifiedListeners();
215
    /// @throws css::uno::RuntimeException
216
    void
217
        impl_notifyCloseListeners();
218
    /// @throws css::uno::RuntimeException
219
    void
220
        impl_notifyStorageChangeListeners();
221
222
    void impl_store(
223
        const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor,
224
        const css::uno::Reference< css::embed::XStorage > & xStorage );
225
    void impl_load(
226
        const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor,
227
        const css::uno::Reference< css::embed::XStorage >& xStorage );
228
    void impl_loadGraphics(
229
        const css::uno::Reference< css::embed::XStorage >& xStorage );
230
    css::uno::Reference< css::document::XFilter >
231
        impl_createFilter( const css::uno::Sequence< css::beans::PropertyValue > & rMediaDescriptor );
232
233
    rtl::Reference< ::chart::ChartTypeTemplate > impl_createDefaultChartTypeTemplate();
234
    css::uno::Reference< css::chart2::data::XDataSource > impl_createDefaultData();
235
236
    void impl_adjustAdditionalShapesPositionAndSize(
237
        const css::awt::Size& aVisualAreaSize );
238
239
    void insertDefaultChart();
240
241
public:
242
    ChartModel() = delete;
243
    ChartModel(css::uno::Reference< css::uno::XComponentContext > xContext);
244
    explicit ChartModel( const ChartModel & rOther );
245
    virtual ~ChartModel() override;
246
247
    // css::lang::XServiceInfo
248
249
    virtual OUString SAL_CALL getImplementationName() override;
250
    virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
251
    virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
252
253
    // css::lang::XInitialization
254
    virtual void SAL_CALL initialize( const css::uno::Sequence< css::uno::Any >& aArguments ) override;
255
256
    // css::frame::XModel (required interface)
257
258
    virtual sal_Bool SAL_CALL
259
        attachResource( const OUString& rURL,
260
                        const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor ) override;
261
262
    virtual OUString SAL_CALL
263
        getURL() override;
264
265
    virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL
266
        getArgs() override;
267
268
    virtual void SAL_CALL
269
        connectController( const css::uno::Reference< css::frame::XController >& xController ) override;
270
271
    virtual void SAL_CALL
272
        disconnectController( const css::uno::Reference< css::frame::XController >& xController ) override;
273
274
    virtual void SAL_CALL
275
        lockControllers() override;
276
277
    virtual void SAL_CALL
278
        unlockControllers() override;
279
280
    virtual sal_Bool SAL_CALL
281
        hasControllersLocked() override;
282
283
    virtual css::uno::Reference< css::frame::XController > SAL_CALL
284
        getCurrentController() override;
285
286
    virtual void SAL_CALL
287
        setCurrentController( const css::uno::Reference< css::frame::XController >& xController ) override;
288
289
    virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
290
        getCurrentSelection() override;
291
292
    // css::lang::XComponent (base of XModel)
293
    virtual void SAL_CALL
294
        dispose() override;
295
296
    virtual void SAL_CALL
297
        addEventListener( const css::uno::Reference< css::lang::XEventListener > & xListener ) override;
298
299
    virtual void SAL_CALL
300
        removeEventListener( const css::uno::Reference< css::lang::XEventListener > & xListener ) override;
301
302
    // css::util::XCloseable
303
    virtual void SAL_CALL
304
        close( sal_Bool bDeliverOwnership ) override;
305
306
    // css::util::XCloseBroadcaster (base of XCloseable)
307
    virtual void SAL_CALL
308
        addCloseListener( const css::uno::Reference< css::util::XCloseListener > & xListener ) override;
309
310
    virtual void SAL_CALL
311
        removeCloseListener( const css::uno::Reference< css::util::XCloseListener > & xListener ) override;
312
313
    // css::frame::XStorable2 (extension of XStorable)
314
    virtual void SAL_CALL storeSelf(
315
        const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor ) override;
316
317
    // css::frame::XStorable (required interface)
318
    virtual sal_Bool SAL_CALL
319
        hasLocation() override;
320
321
    virtual OUString SAL_CALL
322
        getLocation() override;
323
324
    virtual sal_Bool SAL_CALL
325
        isReadonly() override;
326
327
    virtual void SAL_CALL
328
        store() override;
329
330
    virtual void SAL_CALL
331
        storeAsURL( const OUString& rURL,
332
                    const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor ) override;
333
334
    virtual void SAL_CALL
335
        storeToURL( const OUString& rURL,
336
                    const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor ) override;
337
338
    // css::util::XModifiable (required interface)
339
    virtual sal_Bool SAL_CALL
340
        isModified() override;
341
342
    virtual void SAL_CALL
343
        setModified( sal_Bool bModified ) override;
344
345
    // css::util::XModifyBroadcaster (base of XModifiable)
346
    virtual void SAL_CALL
347
        addModifyListener( const css::uno::Reference< css::util::XModifyListener >& xListener ) override;
348
349
    virtual void SAL_CALL
350
        removeModifyListener( const css::uno::Reference< css::util::XModifyListener >& xListener ) override;
351
352
    // ____ XModifyListener ____
353
    virtual void SAL_CALL modified(
354
        const css::lang::EventObject& aEvent ) override;
355
356
    // ____ XEventListener (base of XModifyListener) ____
357
    virtual void SAL_CALL disposing(
358
        const css::lang::EventObject& Source ) override;
359
360
    // ____ datatransferable::XTransferable ____
361
    virtual css::uno::Any SAL_CALL getTransferData(
362
        const css::datatransfer::DataFlavor& aFlavor ) override;
363
    virtual css::uno::Sequence< css::datatransfer::DataFlavor > SAL_CALL getTransferDataFlavors() override;
364
    virtual sal_Bool SAL_CALL isDataFlavorSupported(
365
        const css::datatransfer::DataFlavor& aFlavor ) override;
366
367
    // lang::XTypeProvider (override method of WeakImplHelper)
368
    virtual css::uno::Sequence< css::uno::Type > SAL_CALL
369
        getTypes() override;
370
371
    // ____ document::XDocumentPropertiesSupplier ____
372
    virtual css::uno::Reference< css::document::XDocumentProperties > SAL_CALL
373
        getDocumentProperties(  ) override;
374
375
    // ____ document::XUndoManagerSupplier ____
376
    virtual css::uno::Reference< css::document::XUndoManager > SAL_CALL
377
        getUndoManager(  ) override;
378
379
    // css::chart2::XChartDocument
380
    virtual css::uno::Reference< css::chart2::XDiagram > SAL_CALL
381
        getFirstDiagram() override;
382
    virtual void SAL_CALL setFirstDiagram(
383
        const css::uno::Reference< css::chart2::XDiagram >& xDiagram ) override;
384
    virtual void SAL_CALL
385
        createInternalDataProvider( sal_Bool bCloneExistingData ) override;
386
    virtual sal_Bool SAL_CALL hasInternalDataProvider() override;
387
    virtual css::uno::Reference< css::chart2::data::XDataProvider > SAL_CALL
388
        getDataProvider() override;
389
    virtual void SAL_CALL
390
        setChartTypeManager( const css::uno::Reference< css::chart2::XChartTypeManager >& xNewManager ) override;
391
    virtual css::uno::Reference< css::chart2::XChartTypeManager > SAL_CALL
392
        getChartTypeManager() override;
393
    virtual css::uno::Reference< css::chart2::XChartStyle> SAL_CALL getStyles() override;
394
    virtual css::uno::Reference< css::chart2::XChartColorStyle> SAL_CALL getColorStyles() override;
395
    virtual css::uno::Reference< css::beans::XPropertySet > SAL_CALL
396
        getPageBackground() override;
397
398
    virtual void SAL_CALL createDefaultChart() override;
399
400
    // ____ XDataReceiver (public API) ____
401
    virtual void SAL_CALL
402
        attachDataProvider( const css::uno::Reference< css::chart2::data::XDataProvider >& xProvider ) override;
403
    virtual void SAL_CALL setArguments(
404
        const css::uno::Sequence< css::beans::PropertyValue >& aArguments ) override;
405
    virtual css::uno::Sequence< OUString > SAL_CALL getUsedRangeRepresentations() override;
406
    virtual css::uno::Reference< css::chart2::data::XDataSource > SAL_CALL getUsedData() override;
407
    virtual void SAL_CALL attachNumberFormatsSupplier( const css::uno::Reference<
408
        css::util::XNumberFormatsSupplier >& xSupplier ) override;
409
    virtual css::uno::Reference< css::chart2::data::XRangeHighlighter > SAL_CALL getRangeHighlighter() override;
410
    virtual css::uno::Reference<css::awt::XRequestCallback> SAL_CALL getPopupRequest() override;
411
412
    // ____ XTitled ____
413
    virtual css::uno::Reference< css::chart2::XTitle > SAL_CALL getTitleObject() override;
414
    virtual void SAL_CALL setTitleObject( const css::uno::Reference< css::chart2::XTitle >& Title ) override;
415
416
    // ____ XInterface (for old API wrapper) ____
417
    virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type& aType ) override;
418
419
    // ____ XLoadable ____
420
    virtual void SAL_CALL initNew() override;
421
    virtual void SAL_CALL load( const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor ) override;
422
423
    // ____ XCloneable ____
424
    virtual css::uno::Reference< css::util::XCloneable > SAL_CALL createClone() override;
425
426
    // ____ XVisualObject ____
427
    virtual void SAL_CALL setVisualAreaSize(
428
        ::sal_Int64 nAspect,
429
        const css::awt::Size& aSize ) override;
430
    virtual css::awt::Size SAL_CALL getVisualAreaSize(
431
        ::sal_Int64 nAspect ) override;
432
    virtual css::embed::VisualRepresentation SAL_CALL getPreferredVisualRepresentation(
433
        ::sal_Int64 nAspect ) override;
434
    virtual ::sal_Int32 SAL_CALL getMapUnit(
435
        ::sal_Int64 nAspect ) override;
436
437
    // ____ XMultiServiceFactory ____
438
    virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
439
        createInstance( const OUString& aServiceSpecifier ) override;
440
    virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
441
        createInstanceWithArguments( const OUString& ServiceSpecifier
442
                                   , const css::uno::Sequence< css::uno::Any >& Arguments ) override;
443
    virtual css::uno::Sequence< OUString > SAL_CALL
444
        getAvailableServiceNames() override;
445
446
    // ____ XStorageBasedDocument ____
447
    virtual void SAL_CALL loadFromStorage(
448
        const css::uno::Reference< css::embed::XStorage >& xStorage,
449
        const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor ) override;
450
    virtual void SAL_CALL storeToStorage(
451
        const css::uno::Reference< css::embed::XStorage >& xStorage,
452
        const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor ) override;
453
    virtual void SAL_CALL switchToStorage(
454
        const css::uno::Reference< css::embed::XStorage >& xStorage ) override;
455
    virtual css::uno::Reference< css::embed::XStorage > SAL_CALL getDocumentStorage() override;
456
    virtual void SAL_CALL addStorageChangeListener(
457
        const css::uno::Reference< css::document::XStorageChangeListener >& xListener ) override;
458
    virtual void SAL_CALL removeStorageChangeListener(
459
        const css::uno::Reference< css::document::XStorageChangeListener >& xListener ) override;
460
461
    // for SvNumberFormatsSupplierObj
462
    // ____ XUnoTunnel ___
463
    virtual ::sal_Int64 SAL_CALL getSomething( const css::uno::Sequence< ::sal_Int8 >& aIdentifier ) override;
464
465
    // ____ XNumberFormatsSupplier ____
466
    virtual css::uno::Reference< css::beans::XPropertySet > SAL_CALL getNumberFormatSettings() override;
467
    virtual css::uno::Reference< css::util::XNumberFormats > SAL_CALL getNumberFormats() override;
468
469
    // ____ XChild ____
470
    virtual css::uno::Reference< css::uno::XInterface > SAL_CALL getParent() override;
471
    virtual void SAL_CALL setParent(
472
        const css::uno::Reference< css::uno::XInterface >& Parent ) override;
473
474
    // ____ XDataSource ____ allows access to the currently used data and data ranges
475
    virtual css::uno::Sequence< css::uno::Reference< css::chart2::data::XLabeledDataSequence > > SAL_CALL getDataSequences() override;
476
477
    // XUpdatable
478
    virtual void SAL_CALL update() override;
479
480
    // XDumper
481
    virtual OUString SAL_CALL dump(OUString const & kind) override;
482
483
    // SfxListener
484
    virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) override;
485
486
    // normal methods
487
    css::uno::Reference< css::util::XNumberFormatsSupplier > const &
488
        getNumberFormatsSupplier();
489
490
    const rtl::Reference<ChartView> & createChartView();
491
492
    ChartView* getChartView() const;
493
494
0
    const rtl::Reference< ::chart::Diagram > & getFirstChartDiagram() { return m_xDiagram; }
495
496
0
    bool isTimeBased() const { return mbTimeBased;}
497
498
    void setTimeBasedRange(sal_Int32 nStart, sal_Int32 nEnd);
499
500
    bool isDataFromSpreadsheet();
501
502
    bool isDataFromPivotTable() const;
503
504
    void removeDataProviders();
505
506
0
    const rtl::Reference< ::chart::ChartTypeManager > & getTypeManager() const { return m_xChartTypeManager; }
507
508
    rtl::Reference< ::chart::Title > getTitleObject2() const;
509
    void setTitleObject( const rtl::Reference< ::chart::Title >& Title );
510
511
    rtl::Reference< BaseCoordinateSystem > getFirstCoordinateSystem();
512
513
    std::vector< rtl::Reference< ::chart::DataSeries > > getDataSeries();
514
515
    rtl::Reference< ChartType > getChartTypeOfSeries( const rtl::Reference< ::chart::DataSeries >& xGivenDataSeries );
516
517
    static css::awt::Size getDefaultPageSize();
518
519
    css::awt::Size getPageSize();
520
521
    void triggerRangeHighlighting();
522
523
    bool isIncludeHiddenCells();
524
    bool setIncludeHiddenCells( bool bIncludeHiddenCells );
525
526
    std::shared_ptr<model::Theme> getDocumentTheme() const;
527
0
    ChartColorPaletteType getColorPaletteType() const { return m_eColorPaletteType; }
528
0
    sal_uInt32 getColorPaletteIndex() const { return m_nColorPaletteIndex; }
529
    void setColorPalette(ChartColorPaletteType eType, sal_uInt32 nIndex);
530
    void clearColorPalette();
531
    bool usesColorPalette() const;
532
    std::optional<ChartColorPalette> getCurrentColorPalette() const;
533
    void applyColorPaletteToDataSeries(const ChartColorPalette& rColorPalette);
534
    void onDocumentThemeChanged();
535
536
    const std::optional<css::util::DateTime> & getNullDate() const;
537
    void changeNullDate(const css::util::DateTime& aNullDate);
538
539
private:
540
    void dumpAsXml(xmlTextWriterPtr pWriter) const;
541
542
    sal_Int32 mnStart;
543
    sal_Int32 mnEnd;
544
};
545
546
}  // namespace chart
547
548
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */