Coverage Report

Created: 2026-07-10 11:04

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libreoffice/chart2/source/controller/chartapiwrapper/WrappedScaleTextProperties.cxx
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
20
#include "WrappedScaleTextProperties.hxx"
21
#include "Chart2ModelContact.hxx"
22
#include <FastPropertyIdRanges.hxx>
23
#include <WrappedProperty.hxx>
24
25
#include <com/sun/star/beans/PropertyAttribute.hpp>
26
#include <com/sun/star/beans/XPropertyState.hpp>
27
#include <com/sun/star/beans/XPropertySet.hpp>
28
#include <utility>
29
#include <comphelper/diagnose_ex.hxx>
30
31
using namespace ::com::sun::star;
32
using ::com::sun::star::uno::Any;
33
using ::com::sun::star::uno::Reference;
34
using ::com::sun::star::beans::Property;
35
36
namespace chart::wrapper
37
{
38
39
namespace {
40
41
class WrappedScaleTextProperty : public WrappedProperty
42
{
43
public:
44
    explicit WrappedScaleTextProperty(std::shared_ptr<Chart2ModelContact> spChart2ModelContact);
45
46
    virtual void setPropertyValue( const Any& rOuterValue, const Reference< beans::XPropertySet >& xInnerPropertySet ) const override;
47
    virtual Any getPropertyValue( const Reference< beans::XPropertySet >& xInnerPropertySet ) const override;
48
    virtual Any getPropertyDefault( const Reference< beans::XPropertyState >& xInnerPropertyState ) const override;
49
50
private:
51
    std::shared_ptr< Chart2ModelContact >   m_spChart2ModelContact;
52
};
53
54
}
55
56
WrappedScaleTextProperty::WrappedScaleTextProperty(std::shared_ptr<Chart2ModelContact> spChart2ModelContact)
57
0
    : ::chart::WrappedProperty( u"ScaleText"_ustr , OUString() )
58
0
    , m_spChart2ModelContact(std::move( spChart2ModelContact ))
59
0
{
60
0
}
61
62
void WrappedScaleTextProperty::setPropertyValue( const Any& rOuterValue, const Reference< beans::XPropertySet >& xInnerPropertySet ) const
63
0
{
64
0
    static constexpr OUString aRefSizeName = u"ReferencePageSize"_ustr;
65
66
0
    if( !xInnerPropertySet.is() )
67
0
        return;
68
69
0
    bool bNewValue = false;
70
0
    if( ! (rOuterValue >>= bNewValue) )
71
0
    {
72
0
        if( rOuterValue.hasValue() )
73
0
            throw lang::IllegalArgumentException( u"Property ScaleText requires value of type boolean"_ustr, nullptr, 0 );
74
0
    }
75
76
0
    try
77
0
    {
78
0
        if( bNewValue )
79
0
        {
80
0
            awt::Size aRefSize( m_spChart2ModelContact->GetPageSize() );
81
0
            xInnerPropertySet->setPropertyValue( aRefSizeName, uno::Any( aRefSize ) );
82
0
        }
83
0
        else
84
0
            xInnerPropertySet->setPropertyValue( aRefSizeName, Any() );
85
0
    }
86
0
    catch( const uno::Exception & )
87
0
    {
88
0
        DBG_UNHANDLED_EXCEPTION("chart2");
89
0
    }
90
0
}
91
92
Any WrappedScaleTextProperty::getPropertyValue( const Reference< beans::XPropertySet >& xInnerPropertySet ) const
93
0
{
94
0
    Any aRet( getPropertyDefault( Reference< beans::XPropertyState >( xInnerPropertySet, uno::UNO_QUERY ) ) );
95
0
    if( xInnerPropertySet.is() )
96
0
    {
97
0
        if( xInnerPropertySet->getPropertyValue( u"ReferencePageSize"_ustr ).hasValue() )
98
0
            aRet <<= true;
99
0
        else
100
0
            aRet <<= false;
101
0
    }
102
103
0
    return aRet;
104
0
}
105
106
Any WrappedScaleTextProperty::getPropertyDefault( const Reference< beans::XPropertyState >& /*xInnerPropertyState*/ ) const
107
0
{
108
0
    Any aRet;
109
0
    aRet <<= false;
110
0
    return aRet;
111
0
}
112
113
namespace
114
{
115
enum
116
{
117
    PROP_CHART_SCALE_TEXT = FAST_PROPERTY_ID_START_SCALE_TEXT_PROP
118
};
119
120
}//anonymous namespace
121
122
void WrappedScaleTextProperties::addProperties( std::vector< Property > & rOutProperties )
123
0
{
124
0
    rOutProperties.emplace_back( "ScaleText",
125
0
                  PROP_CHART_SCALE_TEXT,
126
0
                  cppu::UnoType<bool>::get(),
127
0
                  beans::PropertyAttribute::MAYBEVOID
128
0
                  | beans::PropertyAttribute::MAYBEDEFAULT );
129
0
}
130
131
void WrappedScaleTextProperties::addWrappedProperties( std::vector< std::unique_ptr<WrappedProperty> >& rList
132
                                 , const std::shared_ptr< Chart2ModelContact >& spChart2ModelContact )
133
0
{
134
0
    rList.emplace_back( new WrappedScaleTextProperty( spChart2ModelContact ) );
135
0
}
136
137
} //namespace chart::wrapper
138
139
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */