Coverage Report

Created: 2025-11-16 09:57

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libreoffice/sw/source/uibase/uno/unomod.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 <com/sun/star/beans/PropertyAttribute.hpp>
21
#include <com/sun/star/view/DocumentZoomType.hpp>
22
#include <comphelper/ChainablePropertySetInfo.hxx>
23
#include <cppuhelper/supportsservice.hxx>
24
#include <o3tl/any.hxx>
25
#include <osl/diagnose.h>
26
#include <svl/itemprop.hxx>
27
#include <tools/urlobj.hxx>
28
#include <tools/UnitConversion.hxx>
29
#include <vcl/svapp.hxx>
30
31
#include <unomod.hxx>
32
#include <usrpref.hxx>
33
#include <prtopt.hxx>
34
#include <swmodule.hxx>
35
#include <view.hxx>
36
#include <docsh.hxx>
37
#include <wrtsh.hxx>
38
#include <viewopt.hxx>
39
#include <doc.hxx>
40
#include <IDocumentDeviceAccess.hxx>
41
#include <edtwin.hxx>
42
using namespace ::com::sun::star;
43
using namespace ::com::sun::star::uno;
44
using namespace ::com::sun::star::beans;
45
using namespace ::com::sun::star::lang;
46
using namespace ::comphelper;
47
48
namespace {
49
50
enum SwViewSettingsPropertyHandles
51
{
52
    HANDLE_VIEWSET_ANNOTATIONS,
53
    HANDLE_VIEWSET_BREAKS,
54
    HANDLE_VIEWSET_DRAWINGS,
55
    HANDLE_VIEWSET_FIELD_COMMANDS,
56
    HANDLE_VIEWSET_FOOTNOTE_BACKGROUND,
57
    HANDLE_VIEWSET_GRAPHICS,
58
    HANDLE_VIEWSET_HIDDEN_CHARACTERS,
59
    HANDLE_VIEWSET_HIDDEN_PARAGRAPHS,
60
    HANDLE_VIEWSET_HIDDEN_TEXT,
61
    HANDLE_VIEWSET_HRULER,
62
    HANDLE_VIEWSET_HSCROLL,
63
    HANDLE_VIEWSET_INDEX_MARK_BACKGROUND,
64
    HANDLE_VIEWSET_NONPRINTING_CHARACTERS,
65
    HANDLE_VIEWSET_ONLINE_LAYOUT,
66
    HANDLE_VIEWSET_PARA_BREAKS,
67
    HANDLE_VIEWSET_PROTECTED_SPACES,
68
    HANDLE_VIEWSET_SOFT_HYPHENS,
69
    HANDLE_VIEWSET_SPACES,
70
    HANDLE_VIEWSET_TABLE_BOUNDARIES,
71
    HANDLE_VIEWSET_TABLES,
72
    HANDLE_VIEWSET_TABSTOPS,
73
    HANDLE_VIEWSET_TEXT_BOUNDARIES,
74
    HANDLE_VIEWSET_TEXT_FIELD_BACKGROUND,
75
    HANDLE_VIEWSET_VRULER,
76
    HANDLE_VIEWSET_VSCROLL,
77
    HANDLE_VIEWSET_SMOOTH_SCROLLING,
78
    HANDLE_VIEWSET_ZOOM_TYPE,
79
    HANDLE_VIEWSET_ZOOM,
80
    HANDLE_VIEWSET_SHOW_CONTENT_TIPS,
81
    HANDLE_VIEWSET_HELP_URL,
82
    HANDLE_VIEWSET_VRULER_RIGHT,
83
    HANDLE_VIEWSET_SHOW_RULER,
84
    HANDLE_VIEWSET_IS_RASTER_VISIBLE,
85
    HANDLE_VIEWSET_IS_SNAP_TO_RASTER,
86
    HANDLE_VIEWSET_RASTER_RESOLUTION_X,
87
    HANDLE_VIEWSET_RASTER_RESOLUTION_Y,
88
    HANDLE_VIEWSET_RASTER_SUBDIVISION_X,
89
    HANDLE_VIEWSET_RASTER_SUBDIVISION_Y,
90
    HANDLE_VIEWSET_HORI_RULER_METRIC,
91
    HANDLE_VIEWSET_VERT_RULER_METRIC,
92
    HANDLE_VIEWSET_SCROLLBAR_TIPS,
93
    HANDLE_VIEWSET_INLINECHANGES_TIPS,
94
    HANDLE_VIEWSET_HIDE_WHITESPACE,
95
    HANDLE_VIEWSET_USE_HEADERFOOTERMENU,
96
    HANDLE_VIEWSET_BOOKMARKS,
97
    HANDLE_VIEWSET_SHOW_OUTLINECONTENTVISIBILITYBUTTON,
98
    HANDLE_VIEWSET_TREAT_SUB_OUTLINE_LEVELS_AS_CONTENT,
99
    HANDLE_VIEWSET_CHANGES_IN_MARGIN,
100
    HANDLE_VIEWSET_TEXTBOUNDARIES
101
};
102
103
enum SwPrintSettingsPropertyHandles
104
{
105
    HANDLE_PRINTSET_ANNOTATION_MODE,
106
    HANDLE_PRINTSET_BLACK_FONTS,
107
    HANDLE_PRINTSET_CONTROLS,
108
    HANDLE_PRINTSET_DRAWINGS,
109
    HANDLE_PRINTSET_GRAPHICS,
110
    HANDLE_PRINTSET_LEFT_PAGES,
111
    HANDLE_PRINTSET_PAGE_BACKGROUND,
112
    HANDLE_PRINTSET_PROSPECT,
113
    HANDLE_PRINTSET_REVERSED,
114
    HANDLE_PRINTSET_RIGHT_PAGES,
115
    HANDLE_PRINTSET_FAX_NAME,
116
    HANDLE_PRINTSET_PAPER_FROM_SETUP,
117
    HANDLE_PRINTSET_TABLES,
118
    HANDLE_PRINTSET_EMPTY_PAGES,
119
    HANDLE_PRINTSET_PROSPECT_RTL,
120
    HANDLE_PRINTSET_PLACEHOLDER,
121
    HANDLE_PRINTSET_HIDDEN_TEXT
122
};
123
124
}
125
126
static rtl::Reference<ChainablePropertySetInfo> lcl_createViewSettingsInfo()
127
3.67k
{
128
3.67k
    static PropertyInfo const aViewSettingsMap_Impl[] =
129
3.67k
    {
130
3.67k
        { u"HelpURL"_ustr,             HANDLE_VIEWSET_HELP_URL             , cppu::UnoType<OUString>::get(),    PROPERTY_NONE},
131
3.67k
        { u"HorizontalRulerMetric"_ustr,HANDLE_VIEWSET_HORI_RULER_METRIC   , cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE},
132
3.67k
        { u"IsRasterVisible"_ustr,      HANDLE_VIEWSET_IS_RASTER_VISIBLE,       cppu::UnoType<bool>::get(),   PROPERTY_NONE},
133
3.67k
        { u"IsSnapToRaster"_ustr,       HANDLE_VIEWSET_IS_SNAP_TO_RASTER,       cppu::UnoType<bool>::get(),   PROPERTY_NONE},
134
3.67k
        { u"IsVertRulerRightAligned"_ustr,HANDLE_VIEWSET_VRULER_RIGHT         , cppu::UnoType<bool>::get(), PROPERTY_NONE},
135
3.67k
        { u"ShowContentTips"_ustr,     HANDLE_VIEWSET_SHOW_CONTENT_TIPS      , cppu::UnoType<bool>::get(), PROPERTY_NONE},
136
3.67k
        { u"ShowInlineTooltips"_ustr,  HANDLE_VIEWSET_INLINECHANGES_TIPS      , cppu::UnoType<bool>::get(), PROPERTY_NONE},
137
3.67k
        { u"UseHeaderFooterMenu"_ustr, HANDLE_VIEWSET_USE_HEADERFOOTERMENU , cppu::UnoType<bool>::get(), PROPERTY_NONE},
138
3.67k
        { u"ShowOutlineContentVisibilityButton"_ustr, HANDLE_VIEWSET_SHOW_OUTLINECONTENTVISIBILITYBUTTON , cppu::UnoType<bool>::get(), PROPERTY_NONE},
139
3.67k
        { u"TreatSubOutlineLevelsAsContent"_ustr, HANDLE_VIEWSET_TREAT_SUB_OUTLINE_LEVELS_AS_CONTENT , cppu::UnoType<bool>::get(), PROPERTY_NONE},
140
3.67k
        { u"ShowChangesInMargin"_ustr, HANDLE_VIEWSET_CHANGES_IN_MARGIN,       cppu::UnoType<bool>::get(), PROPERTY_NONE},
141
3.67k
        { u"RasterResolutionX"_ustr,    HANDLE_VIEWSET_RASTER_RESOLUTION_X,     cppu::UnoType<sal_Int32>::get(),     PROPERTY_NONE},
142
3.67k
        { u"RasterResolutionY"_ustr,    HANDLE_VIEWSET_RASTER_RESOLUTION_Y,     cppu::UnoType<sal_Int32>::get(),     PROPERTY_NONE},
143
3.67k
        { u"RasterSubdivisionX"_ustr,   HANDLE_VIEWSET_RASTER_SUBDIVISION_X,    cppu::UnoType<sal_Int32>::get(),     PROPERTY_NONE},
144
3.67k
        { u"RasterSubdivisionY"_ustr,   HANDLE_VIEWSET_RASTER_SUBDIVISION_Y,    cppu::UnoType<sal_Int32>::get(),     PROPERTY_NONE},
145
3.67k
        { u"ShowAnnotations"_ustr,     HANDLE_VIEWSET_ANNOTATIONS          , cppu::UnoType<bool>::get(), PROPERTY_NONE},
146
3.67k
        { u"ShowBookmarks"_ustr, HANDLE_VIEWSET_BOOKMARKS, cppu::UnoType<bool>::get(), PROPERTY_NONE },
147
3.67k
        { u"ShowBreaks"_ustr,           HANDLE_VIEWSET_BREAKS               , cppu::UnoType<bool>::get(), PROPERTY_NONE},
148
3.67k
        { u"ShowDrawings"_ustr,         HANDLE_VIEWSET_DRAWINGS             , cppu::UnoType<bool>::get(), PROPERTY_NONE},
149
3.67k
        { u"ShowFieldCommands"_ustr,    HANDLE_VIEWSET_FIELD_COMMANDS       , cppu::UnoType<bool>::get(), PROPERTY_NONE},
150
3.67k
        { u"ShowFootnoteBackground"_ustr,HANDLE_VIEWSET_FOOTNOTE_BACKGROUND , cppu::UnoType<bool>::get(), PROPERTY_NONE},
151
3.67k
        { u"ShowGraphics"_ustr,         HANDLE_VIEWSET_GRAPHICS             , cppu::UnoType<bool>::get(), PROPERTY_NONE},
152
3.67k
        { u"ShowHiddenCharacters"_ustr, HANDLE_VIEWSET_HIDDEN_CHARACTERS    , cppu::UnoType<bool>::get(), PROPERTY_NONE},
153
3.67k
        { u"HideWhitespace"_ustr,       HANDLE_VIEWSET_HIDE_WHITESPACE      , cppu::UnoType<bool>::get(), PROPERTY_NONE},
154
3.67k
        { u"ShowHiddenParagraphs"_ustr, HANDLE_VIEWSET_HIDDEN_PARAGRAPHS    , cppu::UnoType<bool>::get(), PROPERTY_NONE},
155
3.67k
        { u"ShowHiddenText"_ustr,       HANDLE_VIEWSET_HIDDEN_TEXT          , cppu::UnoType<bool>::get(), PROPERTY_NONE},
156
3.67k
        { u"ShowHoriRuler"_ustr,        HANDLE_VIEWSET_HRULER               , cppu::UnoType<bool>::get(), PROPERTY_NONE},
157
3.67k
        { u"ShowHoriScrollBar"_ustr,    HANDLE_VIEWSET_HSCROLL              , cppu::UnoType<bool>::get(), PROPERTY_NONE},
158
3.67k
        { u"ShowIndexMarkBackground"_ustr,HANDLE_VIEWSET_INDEX_MARK_BACKGROUND, cppu::UnoType<bool>::get(),PROPERTY_NONE},
159
3.67k
        { u"ShowNonprintingCharacters"_ustr,HANDLE_VIEWSET_NONPRINTING_CHARACTERS, cppu::UnoType<bool>::get(),PROPERTY_NONE},
160
3.67k
        { u"ShowOnlineLayout"_ustr,     HANDLE_VIEWSET_ONLINE_LAYOUT        , cppu::UnoType<bool>::get(), PropertyAttribute::MAYBEVOID},
161
3.67k
        { u"ShowParaBreaks"_ustr,       HANDLE_VIEWSET_PARA_BREAKS          , cppu::UnoType<bool>::get(), PROPERTY_NONE},
162
3.67k
        { u"ShowProtectedSpaces"_ustr,  HANDLE_VIEWSET_PROTECTED_SPACES     , cppu::UnoType<bool>::get(), PROPERTY_NONE},
163
3.67k
        { u"ShowRulers"_ustr,           HANDLE_VIEWSET_SHOW_RULER           , cppu::UnoType<bool>::get(), PROPERTY_NONE},
164
3.67k
        { u"ShowScrollBarTips"_ustr,    HANDLE_VIEWSET_SCROLLBAR_TIPS       , cppu::UnoType<bool>::get(), PROPERTY_NONE},
165
3.67k
        { u"ShowSoftHyphens"_ustr,      HANDLE_VIEWSET_SOFT_HYPHENS         , cppu::UnoType<bool>::get(), PROPERTY_NONE},
166
3.67k
        { u"ShowSpaces"_ustr,           HANDLE_VIEWSET_SPACES               , cppu::UnoType<bool>::get(), PROPERTY_NONE},
167
3.67k
        { u"ShowTableBoundaries"_ustr,  HANDLE_VIEWSET_TABLE_BOUNDARIES     , cppu::UnoType<bool>::get(), PROPERTY_NONE},
168
3.67k
        { u"ShowTables"_ustr,           HANDLE_VIEWSET_TABLES               , cppu::UnoType<bool>::get(), PROPERTY_NONE},
169
3.67k
        { u"ShowTabstops"_ustr,         HANDLE_VIEWSET_TABSTOPS             , cppu::UnoType<bool>::get(), PROPERTY_NONE},
170
3.67k
        { u"ShowTextBoundaries"_ustr,   HANDLE_VIEWSET_TEXT_BOUNDARIES      , cppu::UnoType<bool>::get(), PROPERTY_NONE},
171
3.67k
        { u"ShowTextFieldBackground"_ustr,HANDLE_VIEWSET_TEXT_FIELD_BACKGROUND, cppu::UnoType<bool>::get(),PROPERTY_NONE},
172
3.67k
        { u"ShowVertRuler"_ustr,        HANDLE_VIEWSET_VRULER               , cppu::UnoType<bool>::get(), PROPERTY_NONE},
173
3.67k
        { u"ShowVertScrollBar"_ustr,    HANDLE_VIEWSET_VSCROLL              , cppu::UnoType<bool>::get(), PROPERTY_NONE},
174
3.67k
        { u"SmoothScrolling"_ustr,      HANDLE_VIEWSET_SMOOTH_SCROLLING     , cppu::UnoType<bool>::get(), PROPERTY_NONE},
175
3.67k
        { u"VerticalRulerMetric"_ustr,  HANDLE_VIEWSET_VERT_RULER_METRIC   , cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE},
176
3.67k
        { u"ZoomType"_ustr,             HANDLE_VIEWSET_ZOOM_TYPE            , cppu::UnoType<sal_Int16>::get(),   PROPERTY_NONE},
177
3.67k
        { u"ZoomValue"_ustr,            HANDLE_VIEWSET_ZOOM                 , cppu::UnoType<sal_Int16>::get(),   PROPERTY_NONE},
178
3.67k
        { u"TextBoundaries"_ustr,       HANDLE_VIEWSET_TEXTBOUNDARIES       , cppu::UnoType<sal_Int16>::get(),   PROPERTY_NONE},
179
3.67k
        { OUString(), 0, css::uno::Type(), 0 }
180
3.67k
    };
181
3.67k
    return new ChainablePropertySetInfo ( aViewSettingsMap_Impl );
182
3.67k
}
183
184
static rtl::Reference<ChainablePropertySetInfo> lcl_createPrintSettingsInfo()
185
24.3k
{
186
24.3k
    static PropertyInfo const aPrintSettingsMap_Impl[] =
187
24.3k
    {
188
24.3k
        { u"PrintAnnotationMode"_ustr, HANDLE_PRINTSET_ANNOTATION_MODE , cppu::UnoType<sal_Int16>::get(),   PROPERTY_NONE},
189
24.3k
        { u"PrintBlackFonts"_ustr,      HANDLE_PRINTSET_BLACK_FONTS        , cppu::UnoType<bool>::get(), PROPERTY_NONE},
190
24.3k
        { u"PrintControls"_ustr,        HANDLE_PRINTSET_CONTROLS           , cppu::UnoType<bool>::get(), PROPERTY_NONE},
191
24.3k
        { u"PrintDrawings"_ustr,        HANDLE_PRINTSET_DRAWINGS           , cppu::UnoType<bool>::get(), PROPERTY_NONE},
192
24.3k
        { u"PrintGraphics"_ustr,        HANDLE_PRINTSET_GRAPHICS           , cppu::UnoType<bool>::get(), PROPERTY_NONE},
193
24.3k
        { u"PrintHiddenText"_ustr,       HANDLE_PRINTSET_HIDDEN_TEXT        , cppu::UnoType<bool>::get(), PROPERTY_NONE},
194
24.3k
        { u"PrintLeftPages"_ustr,       HANDLE_PRINTSET_LEFT_PAGES         , cppu::UnoType<bool>::get(), PROPERTY_NONE},
195
24.3k
        { u"PrintPageBackground"_ustr,  HANDLE_PRINTSET_PAGE_BACKGROUND    , cppu::UnoType<bool>::get(), PROPERTY_NONE},
196
24.3k
        { u"PrintProspect"_ustr,        HANDLE_PRINTSET_PROSPECT           , cppu::UnoType<bool>::get(), PROPERTY_NONE},
197
24.3k
        { u"PrintProspectRTL"_ustr,     HANDLE_PRINTSET_PROSPECT_RTL       , cppu::UnoType<bool>::get(), PROPERTY_NONE},
198
24.3k
        { u"PrintReversed"_ustr,        HANDLE_PRINTSET_REVERSED           , cppu::UnoType<bool>::get(), PROPERTY_NONE},
199
24.3k
        { u"PrintRightPages"_ustr,      HANDLE_PRINTSET_RIGHT_PAGES        , cppu::UnoType<bool>::get(), PROPERTY_NONE},
200
24.3k
        { u"PrintFaxName"_ustr,         HANDLE_PRINTSET_FAX_NAME           , cppu::UnoType<OUString>::get(), PROPERTY_NONE},
201
24.3k
        { u"PrintPaperFromSetup"_ustr,  HANDLE_PRINTSET_PAPER_FROM_SETUP   , cppu::UnoType<bool>::get(), PROPERTY_NONE},
202
24.3k
        { u"PrintTables"_ustr,          HANDLE_PRINTSET_TABLES             , cppu::UnoType<bool>::get(), PROPERTY_NONE},
203
24.3k
        { u"PrintTextPlaceholder"_ustr,  HANDLE_PRINTSET_PLACEHOLDER        , cppu::UnoType<bool>::get(), PROPERTY_NONE},
204
24.3k
        { u"PrintEmptyPages"_ustr,      HANDLE_PRINTSET_EMPTY_PAGES        , cppu::UnoType<bool>::get(), PROPERTY_NONE},
205
24.3k
        { OUString(), 0, css::uno::Type(), 0}
206
24.3k
    };
207
24.3k
    return new ChainablePropertySetInfo ( aPrintSettingsMap_Impl );
208
24.3k
}
209
210
SwXModule::SwXModule()
211
0
{
212
0
}
213
214
SwXModule::~SwXModule()
215
0
{
216
0
}
217
218
Reference< XPropertySet >  SwXModule::getViewSettings()
219
0
{
220
0
    SolarMutexGuard aGuard;
221
0
    if(!mxViewSettings.is())
222
0
    {
223
0
        OSL_FAIL("Web or Text?");
224
0
        mxViewSettings = new SwXViewSettings( nullptr );
225
0
    }
226
0
    return mxViewSettings;
227
0
}
228
229
Reference< XPropertySet >  SwXModule::getPrintSettings()
230
0
{
231
0
    SolarMutexGuard aGuard;
232
0
    if(!mxPrintSettings.is())
233
0
    {
234
0
        OSL_FAIL("Web or Text?");
235
0
        mxPrintSettings = new SwXPrintSettings( SwXPrintSettingsType::Module );
236
0
    }
237
0
    return mxPrintSettings;
238
0
}
239
240
OUString SwXModule::getImplementationName()
241
0
{
242
0
    return u"SwXModule"_ustr;
243
0
}
244
245
sal_Bool SwXModule::supportsService(const OUString& rServiceName)
246
0
{
247
0
    return cppu::supportsService(this, rServiceName);
248
0
}
249
250
Sequence< OUString > SwXModule::getSupportedServiceNames()
251
0
{
252
0
    return { u"com.sun.star.text.GlobalSettings"_ustr };
253
0
}
254
255
SwXPrintSettings::SwXPrintSettings(SwXPrintSettingsType eType, SwDoc* pDoc)
256
24.3k
: ChainablePropertySet ( lcl_createPrintSettingsInfo().get(), &Application::GetSolarMutex() )
257
24.3k
, meType(eType)
258
24.3k
, mpPrtOpt ( nullptr )
259
24.3k
, mpDoc ( pDoc )
260
24.3k
{
261
24.3k
}
262
263
SwXPrintSettings::~SwXPrintSettings()
264
    noexcept
265
24.3k
{
266
24.3k
}
267
268
void SwXPrintSettings::_preSetValues ()
269
2.56k
{
270
2.56k
    switch (meType)
271
2.56k
    {
272
0
        case SwXPrintSettingsType::Module:
273
0
            mpPrtOpt = SwModule::get()->GetPrtOptions(false);
274
0
        break;
275
2.56k
        case SwXPrintSettingsType::Document:
276
2.56k
        {
277
2.56k
            if (!mpDoc)
278
0
                throw IllegalArgumentException ();
279
2.56k
            mpPrtOpt = const_cast< SwPrintData * >(&mpDoc->getIDocumentDeviceAccess().getPrintData());
280
2.56k
        }
281
0
        break;
282
2.56k
    }
283
2.56k
}
284
285
namespace
286
{
287
    bool tryBoolAccess(std::u16string_view rName, const uno::Any &rValue)
288
1.23k
    {
289
1.23k
        const std::optional<const bool> xPrSet = o3tl::tryAccess<bool>(rValue);
290
1.23k
        if (!xPrSet.has_value())
291
1
            throw lang::IllegalArgumentException(OUString(OUString::Concat(rName) + " no value"), nullptr, 0);
292
1.23k
        return *xPrSet;
293
1.23k
    }
294
}
295
296
void SwXPrintSettings::_setSingleValue( const comphelper::PropertyInfo & rInfo, const uno::Any &rValue )
297
2.56k
{
298
2.56k
    switch( rInfo.mnHandle )
299
2.56k
    {
300
0
        case HANDLE_PRINTSET_LEFT_PAGES:
301
0
        {
302
0
            mpPrtOpt->SetPrintLeftPage(tryBoolAccess(rInfo.maName, rValue));
303
0
        }
304
0
        break;
305
0
        case HANDLE_PRINTSET_RIGHT_PAGES:
306
0
        {
307
0
            mpPrtOpt->SetPrintRightPage(tryBoolAccess(rInfo.maName, rValue));
308
0
        }
309
0
        break;
310
602
        case HANDLE_PRINTSET_REVERSED:
311
602
        {
312
            // no action
313
602
        }
314
602
        break;
315
0
        case HANDLE_PRINTSET_PROSPECT:
316
0
        {
317
0
            mpPrtOpt->SetPrintProspect(tryBoolAccess(rInfo.maName, rValue));
318
0
        }
319
0
        break;
320
0
        case HANDLE_PRINTSET_GRAPHICS:
321
0
        {
322
0
            mpPrtOpt->SetPrintGraphic(tryBoolAccess(rInfo.maName, rValue));
323
0
        }
324
0
        break;
325
727
        case HANDLE_PRINTSET_TABLES:
326
727
        {
327
            // no action
328
727
        }
329
727
        break;
330
632
        case HANDLE_PRINTSET_DRAWINGS:
331
632
        {
332
632
            mpPrtOpt->SetPrintGraphic(tryBoolAccess(rInfo.maName, rValue));
333
632
        }
334
632
        break;
335
0
        case HANDLE_PRINTSET_CONTROLS:
336
0
        {
337
0
            mpPrtOpt->SetPrintControl(tryBoolAccess(rInfo.maName, rValue));
338
0
        }
339
0
        break;
340
0
        case HANDLE_PRINTSET_PAGE_BACKGROUND:
341
0
        {
342
0
            mpPrtOpt->SetPrintPageBackground(tryBoolAccess(rInfo.maName, rValue));
343
0
        }
344
0
        break;
345
0
        case HANDLE_PRINTSET_BLACK_FONTS:
346
0
        {
347
0
            mpPrtOpt->SetPrintBlackFont(tryBoolAccess(rInfo.maName, rValue));
348
0
        }
349
0
        break;
350
0
        case HANDLE_PRINTSET_PAPER_FROM_SETUP:
351
0
        {
352
0
            mpPrtOpt->SetPaperFromSetup(tryBoolAccess(rInfo.maName, rValue));
353
0
        }
354
0
        break;
355
0
        case HANDLE_PRINTSET_ANNOTATION_MODE:
356
0
        {
357
0
            sal_Int16 nTmp = 0;
358
0
            rValue >>= nTmp;
359
0
            SwPostItMode nVal = static_cast<SwPostItMode>(nTmp);
360
0
            if(nVal > SwPostItMode::EndPage)
361
0
                throw lang::IllegalArgumentException(OUString::number(nTmp) + " > SwPostItMode::EndPage", nullptr, 0);
362
363
0
            mpPrtOpt->SetPrintPostIts(nVal);
364
0
        }
365
0
        break;
366
0
        case HANDLE_PRINTSET_EMPTY_PAGES:
367
0
        {
368
0
            mpPrtOpt->SetPrintEmptyPages(tryBoolAccess(rInfo.maName, rValue));
369
0
        }
370
0
        break;
371
0
        case HANDLE_PRINTSET_FAX_NAME:
372
0
        {
373
0
            OUString sString;
374
0
            if ( !(rValue >>= sString))
375
0
                throw lang::IllegalArgumentException();
376
377
0
            mpPrtOpt->SetFaxName(sString);
378
0
        }
379
0
        break;
380
607
        case HANDLE_PRINTSET_PROSPECT_RTL:
381
607
        {
382
607
            mpPrtOpt->SetPrintProspect_RTL(tryBoolAccess(rInfo.maName, rValue));
383
607
        }
384
607
        break;
385
0
        case HANDLE_PRINTSET_PLACEHOLDER:
386
0
        {
387
0
            mpPrtOpt->SetPrintTextPlaceholder(tryBoolAccess(rInfo.maName, rValue));
388
0
        }
389
0
        break;
390
0
        case HANDLE_PRINTSET_HIDDEN_TEXT:
391
0
        {
392
0
            mpPrtOpt->SetPrintHiddenText(tryBoolAccess(rInfo.maName, rValue));
393
0
        }
394
0
        break;
395
0
        default:
396
0
            throw UnknownPropertyException(OUString::number(rInfo.mnHandle));
397
2.56k
    }
398
2.56k
}
399
400
void SwXPrintSettings::_postSetValues()
401
2.56k
{
402
2.56k
    mpPrtOpt = nullptr;
403
2.56k
}
404
405
void SwXPrintSettings::_preGetValues()
406
0
{
407
0
    switch (meType)
408
0
    {
409
0
        case SwXPrintSettingsType::Module:
410
0
            mpPrtOpt = SwModule::get()->GetPrtOptions(false);
411
0
        break;
412
0
        case SwXPrintSettingsType::Document:
413
0
        {
414
0
            if (!mpDoc)
415
0
                throw IllegalArgumentException ();
416
0
            mpPrtOpt = const_cast< SwPrintData * >(&mpDoc->getIDocumentDeviceAccess().getPrintData());
417
0
        }
418
0
        break;
419
0
    }
420
0
}
421
422
void SwXPrintSettings::_getSingleValue( const comphelper::PropertyInfo & rInfo, uno::Any & rValue )
423
0
{
424
0
    switch( rInfo.mnHandle )
425
0
    {
426
0
        case HANDLE_PRINTSET_LEFT_PAGES:
427
0
            rValue <<= mpPrtOpt->IsPrintLeftPage();
428
0
        break;
429
0
        case HANDLE_PRINTSET_RIGHT_PAGES:
430
0
            rValue <<= mpPrtOpt->IsPrintRightPage();
431
0
        break;
432
0
        case HANDLE_PRINTSET_REVERSED:
433
0
            rValue <<= false;
434
0
        break;
435
0
        case HANDLE_PRINTSET_PROSPECT:
436
0
            rValue <<= mpPrtOpt->IsPrintProspect();
437
0
        break;
438
0
        case HANDLE_PRINTSET_GRAPHICS:
439
0
            rValue <<= mpPrtOpt->IsPrintGraphic();
440
0
        break;
441
0
        case HANDLE_PRINTSET_TABLES:
442
0
            rValue <<= true;
443
0
        break;
444
0
        case HANDLE_PRINTSET_DRAWINGS:
445
0
            rValue <<= mpPrtOpt->IsPrintGraphic();
446
0
        break;
447
0
        case HANDLE_PRINTSET_CONTROLS:
448
0
            rValue <<= mpPrtOpt->IsPrintControl();
449
0
        break;
450
0
        case HANDLE_PRINTSET_PAGE_BACKGROUND:
451
0
            rValue <<= mpPrtOpt->IsPrintPageBackground();
452
0
        break;
453
0
        case HANDLE_PRINTSET_BLACK_FONTS:
454
0
            rValue <<= mpPrtOpt->IsPrintBlackFont();
455
0
        break;
456
0
        case HANDLE_PRINTSET_EMPTY_PAGES:
457
0
            rValue <<= mpPrtOpt->IsPrintEmptyPages();
458
0
        break;
459
0
        case HANDLE_PRINTSET_PAPER_FROM_SETUP:
460
0
            rValue <<= mpPrtOpt->IsPaperFromSetup();
461
0
        break;
462
0
        case HANDLE_PRINTSET_ANNOTATION_MODE:
463
0
        {
464
0
            rValue <<= static_cast < sal_Int16 > ( mpPrtOpt->GetPrintPostIts() );
465
0
        }
466
0
        break;
467
0
        case HANDLE_PRINTSET_FAX_NAME :
468
0
        {
469
0
            rValue <<= mpPrtOpt->GetFaxName();
470
0
        }
471
0
        break;
472
0
        case HANDLE_PRINTSET_PROSPECT_RTL:
473
0
        {
474
0
            rValue <<= mpPrtOpt->IsPrintProspectRTL();
475
0
        }
476
0
        break;
477
0
        case HANDLE_PRINTSET_PLACEHOLDER:
478
0
        {
479
0
            rValue <<= mpPrtOpt->IsPrintTextPlaceholder();
480
0
        }
481
0
        break;
482
0
        case HANDLE_PRINTSET_HIDDEN_TEXT:
483
0
        {
484
0
            rValue <<= mpPrtOpt->IsPrintHiddenText();
485
0
        }
486
0
        break;
487
0
        default:
488
0
            throw UnknownPropertyException(OUString::number(rInfo.mnHandle));
489
0
    }
490
0
}
491
492
void SwXPrintSettings::_postGetValues ()
493
0
{
494
0
    mpPrtOpt = nullptr;
495
0
}
496
497
OUString SwXPrintSettings::getImplementationName()
498
0
{
499
0
    return u"SwXPrintSettings"_ustr;
500
0
}
501
502
sal_Bool SwXPrintSettings::supportsService(const OUString& rServiceName)
503
0
{
504
0
    return cppu::supportsService(this, rServiceName);
505
0
}
506
507
Sequence< OUString > SwXPrintSettings::getSupportedServiceNames()
508
0
{
509
0
    Sequence<OUString> aRet { u"com.sun.star.text.PrintSettings"_ustr };
510
0
    return aRet;
511
0
}
512
513
SwXViewSettings::SwXViewSettings(SwView* pVw)
514
3.67k
    : ChainablePropertySet( lcl_createViewSettingsInfo().get(), &Application::GetSolarMutex() )
515
3.67k
    , m_pView(pVw)
516
3.67k
    , mpConstViewOption(nullptr)
517
3.67k
    , m_bObjectValid(true)
518
3.67k
    , mbApplyZoom(false)
519
3.67k
    , m_eHRulerUnit(FieldUnit::CM)
520
3.67k
    , mbApplyHRulerMetric(false)
521
3.67k
    , m_eVRulerUnit(FieldUnit::CM)
522
3.67k
    , mbApplyVRulerMetric(false)
523
3.67k
{
524
    // This property only exists if we have a view (ie, not at the module )
525
3.67k
    if ( !m_pView )
526
0
        mxInfo->remove ( u"HelpURL"_ustr );
527
528
3.67k
}
529
530
SwXViewSettings::~SwXViewSettings()
531
    noexcept
532
3.67k
{
533
534
3.67k
}
535
536
void SwXViewSettings::_preSetValues ()
537
98
{
538
98
    const SwViewOption* pVOpt = nullptr;
539
98
    if(m_pView)
540
98
    {
541
98
        if(!IsValid())
542
0
            return;
543
98
        pVOpt = m_pView->GetWrtShell().GetViewOptions();
544
98
    }
545
0
    else
546
0
        pVOpt = SwModule::get()->GetViewOption(false);
547
548
98
    mpViewOption.reset( new SwViewOption (*pVOpt) );
549
98
    mbApplyZoom = false;
550
98
    if(m_pView)
551
98
        mpViewOption->SetStarOneSetting(true);
552
98
}
553
554
void SwXViewSettings::_setSingleValue( const comphelper::PropertyInfo & rInfo, const uno::Any &rValue )
555
98
{
556
    // the API flag should not be set to the application's view settings
557
98
    switch( rInfo.mnHandle )
558
98
    {
559
0
        case  HANDLE_VIEWSET_SHOW_RULER            :   mpViewOption->SetViewAnyRuler(*o3tl::doAccess<bool>(rValue)); break;
560
0
        case  HANDLE_VIEWSET_HRULER                :   mpViewOption->SetViewHRuler(*o3tl::doAccess<bool>(rValue));   break;
561
0
        case  HANDLE_VIEWSET_VRULER                :   mpViewOption->SetViewVRuler(*o3tl::doAccess<bool>(rValue));break;
562
0
        case  HANDLE_VIEWSET_VRULER_RIGHT          :   mpViewOption->SetVRulerRight(*o3tl::doAccess<bool>(rValue));break;
563
0
        case  HANDLE_VIEWSET_HSCROLL               :   mpViewOption->SetViewHScrollBar(*o3tl::doAccess<bool>(rValue));break;
564
0
        case  HANDLE_VIEWSET_VSCROLL               :   mpViewOption->SetViewVScrollBar(*o3tl::doAccess<bool>(rValue));break;
565
0
        case  HANDLE_VIEWSET_GRAPHICS              :   mpViewOption->SetGraphic(*o3tl::doAccess<bool>(rValue));break;
566
0
        case  HANDLE_VIEWSET_TABLES                :   mpViewOption->SetTable(*o3tl::doAccess<bool>(rValue));    break;
567
0
        case  HANDLE_VIEWSET_DRAWINGS              :   mpViewOption->SetDraw(*o3tl::doAccess<bool>(rValue)); break;
568
0
        case  HANDLE_VIEWSET_FIELD_COMMANDS        :   mpViewOption->SetFieldName(*o3tl::doAccess<bool>(rValue));  break;
569
0
        case  HANDLE_VIEWSET_ANNOTATIONS           :   mpViewOption->SetPostIts(*o3tl::doAccess<bool>(rValue));  break;
570
0
        case  HANDLE_VIEWSET_INDEX_MARK_BACKGROUND :   mpViewOption->SetAppearanceFlag(ViewOptFlags::FieldShadings, *o3tl::doAccess<bool>(rValue), true);  break;
571
0
        case  HANDLE_VIEWSET_NONPRINTING_CHARACTERS:   mpViewOption->SetViewMetaChars( *o3tl::doAccess<bool>(rValue) ); break;
572
0
        case  HANDLE_VIEWSET_FOOTNOTE_BACKGROUND   :   mpViewOption->SetAppearanceFlag(ViewOptFlags::FieldShadings, *o3tl::doAccess<bool>(rValue), true); break;
573
0
        case  HANDLE_VIEWSET_TEXT_FIELD_BACKGROUND :   mpViewOption->SetAppearanceFlag(ViewOptFlags::FieldShadings, *o3tl::doAccess<bool>(rValue), true);    break;
574
0
        case  HANDLE_VIEWSET_PARA_BREAKS           :   mpViewOption->SetParagraph(*o3tl::doAccess<bool>(rValue));    break;
575
0
        case  HANDLE_VIEWSET_SOFT_HYPHENS          :   mpViewOption->SetSoftHyph(*o3tl::doAccess<bool>(rValue)); break;
576
0
        case  HANDLE_VIEWSET_SPACES                :   mpViewOption->SetBlank(*o3tl::doAccess<bool>(rValue));    break;
577
0
        case  HANDLE_VIEWSET_PROTECTED_SPACES      :   mpViewOption->SetHardBlank(*o3tl::doAccess<bool>(rValue));    break;
578
0
        case  HANDLE_VIEWSET_TABSTOPS              :   mpViewOption->SetTab(*o3tl::doAccess<bool>(rValue));  break;
579
0
        case  HANDLE_VIEWSET_BREAKS                :   mpViewOption->SetLineBreak(*o3tl::doAccess<bool>(rValue)); break;
580
0
        case  HANDLE_VIEWSET_BOOKMARKS             :   mpViewOption->SetShowBookmarks(*o3tl::doAccess<bool>(rValue)); break;
581
0
        case  HANDLE_VIEWSET_HIDDEN_TEXT           :   mpViewOption->SetShowHiddenField(*o3tl::doAccess<bool>(rValue));  break;
582
0
        case  HANDLE_VIEWSET_HIDDEN_CHARACTERS     :   mpViewOption->SetShowHiddenChar(*o3tl::doAccess<bool>(rValue)); break;
583
0
        case  HANDLE_VIEWSET_HIDDEN_PARAGRAPHS     :   mpViewOption->SetShowHiddenPara(*o3tl::doAccess<bool>(rValue));   break;
584
0
        case  HANDLE_VIEWSET_TABLE_BOUNDARIES      :   mpViewOption->SetTableBoundaries(*o3tl::doAccess<bool>(rValue));    break;
585
0
        case  HANDLE_VIEWSET_TEXT_BOUNDARIES       :   mpViewOption->SetTextBoundaries(*o3tl::doAccess<bool>(rValue));    break;
586
0
        case  HANDLE_VIEWSET_SMOOTH_SCROLLING      :   mpViewOption->SetSmoothScroll(*o3tl::doAccess<bool>(rValue)); break;
587
0
        case  HANDLE_VIEWSET_SHOW_CONTENT_TIPS     :   mpViewOption->SetShowContentTips(*o3tl::doAccess<bool>(rValue)); break;
588
0
        case  HANDLE_VIEWSET_IS_RASTER_VISIBLE     : mpViewOption->SetGridVisible(*o3tl::doAccess<bool>(rValue)); break;
589
0
        case  HANDLE_VIEWSET_IS_SNAP_TO_RASTER     : mpViewOption->SetSnap(*o3tl::doAccess<bool>(rValue)); break;
590
0
        case  HANDLE_VIEWSET_SCROLLBAR_TIPS        : mpViewOption->SetShowScrollBarTips(*o3tl::doAccess<bool>(rValue)); break;
591
0
        case  HANDLE_VIEWSET_INLINECHANGES_TIPS    : mpViewOption->SetShowInlineTooltips(*o3tl::doAccess<bool>(rValue)); break;
592
0
        case  HANDLE_VIEWSET_USE_HEADERFOOTERMENU  : mpViewOption->SetUseHeaderFooterMenu(*o3tl::doAccess<bool>(rValue)); break;
593
0
        case  HANDLE_VIEWSET_SHOW_OUTLINECONTENTVISIBILITYBUTTON : mpViewOption->SetShowOutlineContentVisibilityButton(*o3tl::doAccess<bool>(rValue)); break;
594
0
        case  HANDLE_VIEWSET_TREAT_SUB_OUTLINE_LEVELS_AS_CONTENT : mpViewOption->SetTreatSubOutlineLevelsAsContent(*o3tl::doAccess<bool>(rValue)); break;
595
0
        case  HANDLE_VIEWSET_CHANGES_IN_MARGIN     : mpViewOption->SetShowChangesInMargin(*o3tl::doAccess<bool>(rValue)); break;
596
0
        case  HANDLE_VIEWSET_RASTER_RESOLUTION_X   :
597
0
        {
598
0
            sal_Int32 nTmp = 0;
599
0
            if(!(rValue >>= nTmp)  ||  nTmp < 10)
600
0
                throw IllegalArgumentException();
601
0
            Size aSize( mpViewOption->GetSnapSize() );
602
0
            aSize.setWidth( o3tl::toTwips(nTmp, o3tl::Length::mm100) );
603
0
            mpViewOption->SetSnapSize( aSize );
604
0
        }
605
0
        break;
606
0
        case  HANDLE_VIEWSET_RASTER_RESOLUTION_Y   :
607
0
        {
608
0
            sal_Int32 nTmp = 0;
609
0
            if(!(rValue >>= nTmp)  ||  nTmp < 10)
610
0
                throw IllegalArgumentException();
611
0
            Size aSize( mpViewOption->GetSnapSize() );
612
0
            aSize.setHeight( o3tl::toTwips(nTmp, o3tl::Length::mm100) );
613
0
            mpViewOption->SetSnapSize( aSize );
614
0
        }
615
0
        break;
616
0
        case  HANDLE_VIEWSET_RASTER_SUBDIVISION_X  :
617
0
        {
618
0
            sal_Int32 nTmp = 0;
619
0
            if(!(rValue >>= nTmp)  ||  (0 > nTmp  ||  nTmp >= 100))
620
0
                throw IllegalArgumentException();
621
0
            mpViewOption->SetDivisionX( static_cast<short>(nTmp) );
622
0
        }
623
0
        break;
624
0
        case  HANDLE_VIEWSET_RASTER_SUBDIVISION_Y  :
625
0
        {
626
0
            sal_Int32 nTmp = 0;
627
0
            if(!(rValue >>= nTmp)  ||  (0 > nTmp  ||  nTmp >= 100))
628
0
                throw IllegalArgumentException();
629
0
            mpViewOption->SetDivisionY( static_cast<short>(nTmp) );
630
0
        }
631
0
        break;
632
0
        case  HANDLE_VIEWSET_ZOOM                   :
633
0
        {
634
0
            sal_Int16 nZoom = 0;
635
0
            if(!(rValue >>= nZoom) || nZoom > MAXZOOM || nZoom < MINZOOM)
636
0
                throw lang::IllegalArgumentException();
637
0
            mpViewOption->SetZoom(o3tl::narrowing<sal_uInt16>(nZoom));
638
0
            mbApplyZoom = true;
639
0
        }
640
0
        break;
641
0
        case HANDLE_VIEWSET_ZOOM_TYPE:
642
0
        {
643
0
            sal_Int16 nZoom = 0;
644
0
            if(!(rValue >>= nZoom))
645
0
                throw IllegalArgumentException();
646
0
            SvxZoomType eZoom;
647
0
            switch (nZoom)
648
0
            {
649
0
                case view::DocumentZoomType::OPTIMAL:
650
0
                    eZoom = SvxZoomType::OPTIMAL;
651
0
                break;
652
0
                case view::DocumentZoomType::PAGE_WIDTH:
653
0
                    eZoom = SvxZoomType::PAGEWIDTH;
654
0
                break;
655
0
                case view::DocumentZoomType::ENTIRE_PAGE:
656
0
                    eZoom = SvxZoomType::WHOLEPAGE;
657
0
                break;
658
0
                case view::DocumentZoomType::BY_VALUE:
659
0
                    eZoom = SvxZoomType::PERCENT;
660
0
                break;
661
0
                case view::DocumentZoomType::PAGE_WIDTH_EXACT:
662
0
                    eZoom = SvxZoomType::PAGEWIDTH_NOBORDER;
663
0
                break;
664
0
                default:
665
0
                    throw IllegalArgumentException(
666
0
                        u"SwXViewSettings: invalid zoom type"_ustr, nullptr, 0);
667
0
            }
668
0
            mpViewOption->SetZoomType( eZoom );
669
0
            mbApplyZoom = true;
670
0
        }
671
0
        break;
672
98
        case HANDLE_VIEWSET_ONLINE_LAYOUT :
673
98
        {
674
98
            if ( m_pView )
675
98
            {
676
98
                bool bVal = *o3tl::doAccess<bool>(rValue);
677
98
                SwViewOption aOpt(*m_pView->GetWrtShell().GetViewOptions());
678
98
                if (!bVal != !aOpt.getBrowseMode())
679
98
                {
680
98
                    aOpt.setBrowseMode( bVal );
681
98
                    m_pView->GetWrtShell().ApplyViewOptions( aOpt );
682
683
                    // must be set in mpViewOption as this will overwrite settings in _post!
684
98
                    if(mpViewOption)
685
98
                        mpViewOption->setBrowseMode(bVal);
686
687
98
                    m_pView->GetDocShell()->ToggleLayoutMode(m_pView);
688
98
                }
689
98
            }
690
98
        }
691
98
        break;
692
0
        case HANDLE_VIEWSET_HIDE_WHITESPACE:
693
0
        {
694
0
            if ( m_pView )
695
0
            {
696
0
                bool bVal = *o3tl::doAccess<bool>(rValue);
697
0
                SwViewOption aOpt(*m_pView->GetWrtShell().GetViewOptions());
698
0
                if (!bVal != !aOpt.IsHideWhitespaceMode())
699
0
                {
700
0
                    aOpt.SetHideWhitespaceMode( bVal );
701
0
                    m_pView->GetWrtShell().ApplyViewOptions( aOpt );
702
703
                    // must be set in mpViewOption as this will overwrite settings in _post!
704
0
                    if(mpViewOption)
705
0
                        mpViewOption->SetHideWhitespaceMode(bVal);
706
0
                }
707
0
            }
708
0
        }
709
0
        break;
710
0
        case HANDLE_VIEWSET_HELP_URL:
711
0
        {
712
0
            if ( !m_pView )
713
0
                throw UnknownPropertyException();
714
715
0
            OUString sHelpURL;
716
0
            if ( ! ( rValue >>= sHelpURL ) )
717
0
                throw IllegalArgumentException();
718
719
0
            INetURLObject aHID( sHelpURL );
720
0
            if ( aHID.GetProtocol() != INetProtocol::Hid )
721
0
                throw IllegalArgumentException ();
722
723
0
            m_pView->GetEditWin().SetHelpId( aHID.GetURLPath() );
724
0
        }
725
0
        break;
726
0
        case HANDLE_VIEWSET_HORI_RULER_METRIC:
727
0
        case HANDLE_VIEWSET_VERT_RULER_METRIC:
728
0
        {
729
0
            sal_uInt16 nUnit;
730
0
            if( rValue >>= nUnit )
731
0
                switch (static_cast<FieldUnit>(nUnit))
732
0
                {
733
0
                case FieldUnit::MM:
734
0
                case FieldUnit::CM:
735
0
                case FieldUnit::POINT:
736
0
                case FieldUnit::PICA:
737
0
                case FieldUnit::INCH:
738
0
                    if( rInfo.mnHandle == HANDLE_VIEWSET_HORI_RULER_METRIC )
739
0
                    {
740
0
                        m_eHRulerUnit = static_cast<FieldUnit>(nUnit);
741
0
                        mbApplyHRulerMetric = true;
742
0
                    }
743
0
                    else
744
0
                    {
745
0
                        m_eVRulerUnit = static_cast<FieldUnit>(nUnit);
746
0
                        mbApplyVRulerMetric = true;
747
0
                    }
748
0
                    break;
749
0
                default:
750
0
                    throw IllegalArgumentException();
751
0
                }
752
0
        }
753
0
        break;
754
0
        default:
755
0
            throw UnknownPropertyException(OUString::number(rInfo.mnHandle));
756
98
    }
757
98
}
758
759
void SwXViewSettings::_postSetValues()
760
98
{
761
98
    SwModule* mod = SwModule::get();
762
98
    if( m_pView )
763
98
    {
764
98
        if(mbApplyZoom )
765
0
            m_pView->SetZoom( mpViewOption->GetZoomType(),
766
0
                            mpViewOption->GetZoom(), true );
767
98
        if(mbApplyHRulerMetric)
768
0
            m_pView->ChangeTabMetric(m_eHRulerUnit);
769
98
        if(mbApplyVRulerMetric)
770
0
            m_pView->ChangeVRulerMetric(m_eVRulerUnit);
771
772
98
    }
773
0
    else
774
0
    {
775
0
        if(mbApplyHRulerMetric)
776
0
            mod->ApplyRulerMetric(m_eHRulerUnit, true, false);
777
0
        if(mbApplyVRulerMetric)
778
0
            mod->ApplyRulerMetric(m_eVRulerUnit, false, false);
779
0
    }
780
781
98
    mod->ApplyUsrPref( *mpViewOption, m_pView, m_pView ? SvViewOpt::DestViewOnly
782
98
                                                  : SvViewOpt::DestText );
783
784
98
    mpViewOption.reset();
785
98
}
786
787
void SwXViewSettings::_preGetValues ()
788
7.35k
{
789
7.35k
    if(m_pView)
790
7.35k
    {
791
7.35k
        if(!IsValid())
792
0
            return;
793
7.35k
        mpConstViewOption = m_pView->GetWrtShell().GetViewOptions();
794
7.35k
    }
795
0
    else
796
0
        mpConstViewOption = SwModule::get()->GetViewOption(false);
797
7.35k
}
798
799
void SwXViewSettings::_getSingleValue( const comphelper::PropertyInfo & rInfo, uno::Any & rValue )
800
7.35k
{
801
7.35k
    bool bBool = true;
802
7.35k
    bool bBoolVal = false;
803
7.35k
    switch( rInfo.mnHandle )
804
7.35k
    {
805
0
        case  HANDLE_VIEWSET_SHOW_RULER:                bBoolVal = mpConstViewOption->IsViewAnyRuler();   break;
806
0
        case  HANDLE_VIEWSET_HRULER :                   bBoolVal = mpConstViewOption->IsViewHRuler(true);   break;
807
0
        case  HANDLE_VIEWSET_VRULER :                   bBoolVal = mpConstViewOption->IsViewVRuler(true);break;
808
0
        case  HANDLE_VIEWSET_VRULER_RIGHT          :   bBoolVal = mpConstViewOption->IsVRulerRight();break;
809
0
        case  HANDLE_VIEWSET_HSCROLL:                   bBoolVal = mpConstViewOption->IsViewHScrollBar();break;
810
0
        case  HANDLE_VIEWSET_VSCROLL:                   bBoolVal = mpConstViewOption->IsViewVScrollBar();break;
811
0
        case  HANDLE_VIEWSET_GRAPHICS              :    bBoolVal = mpConstViewOption->IsGraphic();break;
812
0
        case  HANDLE_VIEWSET_TABLES                :   bBoolVal = mpConstViewOption->IsTable(); break;
813
0
        case  HANDLE_VIEWSET_DRAWINGS              :   bBoolVal = mpConstViewOption->IsDraw();  break;
814
0
        case  HANDLE_VIEWSET_FIELD_COMMANDS        :   bBoolVal = mpConstViewOption->IsFieldName();   break;
815
0
        case  HANDLE_VIEWSET_ANNOTATIONS           :   bBoolVal = mpConstViewOption->IsPostIts();   break;
816
0
        case  HANDLE_VIEWSET_INDEX_MARK_BACKGROUND :   bBoolVal = mpConstViewOption->IsFieldShadings();   break;
817
0
        case  HANDLE_VIEWSET_NONPRINTING_CHARACTERS:   bBoolVal = mpConstViewOption->IsViewMetaChars(); break;
818
0
        case  HANDLE_VIEWSET_FOOTNOTE_BACKGROUND   :   bBoolVal = mpConstViewOption->IsFieldShadings();  break;
819
0
        case  HANDLE_VIEWSET_TEXT_FIELD_BACKGROUND :   bBoolVal = mpConstViewOption->IsFieldShadings(); break;
820
0
        case  HANDLE_VIEWSET_PARA_BREAKS           :   bBoolVal = mpConstViewOption->IsParagraph(true); break;
821
0
        case  HANDLE_VIEWSET_SOFT_HYPHENS          :   bBoolVal = mpConstViewOption->IsSoftHyph();  break;
822
0
        case  HANDLE_VIEWSET_SPACES                :   bBoolVal = mpConstViewOption->IsBlank(true); break;
823
0
        case  HANDLE_VIEWSET_PROTECTED_SPACES      :   bBoolVal = mpConstViewOption->IsHardBlank(); break;
824
0
        case  HANDLE_VIEWSET_TABSTOPS              :   bBoolVal = mpConstViewOption->IsTab(true);   break;
825
0
        case  HANDLE_VIEWSET_BREAKS                :   bBoolVal = mpConstViewOption->IsLineBreak(true); break;
826
0
        case  HANDLE_VIEWSET_BOOKMARKS             :   bBoolVal = mpConstViewOption->IsShowBookmarks(true); break;
827
0
        case  HANDLE_VIEWSET_HIDDEN_TEXT           :   bBoolVal = mpConstViewOption->IsShowHiddenField();   break;
828
0
        case  HANDLE_VIEWSET_HIDDEN_CHARACTERS     :   bBoolVal = mpConstViewOption->IsShowHiddenChar(true); break;
829
3.67k
        case  HANDLE_VIEWSET_HIDE_WHITESPACE       :   bBoolVal = mpConstViewOption->IsHideWhitespaceMode(); break;
830
0
        case  HANDLE_VIEWSET_HIDDEN_PARAGRAPHS     :   bBoolVal = mpConstViewOption->IsShowHiddenPara();    break;
831
0
        case  HANDLE_VIEWSET_TABLE_BOUNDARIES      :   bBoolVal = mpConstViewOption->IsTableBoundaries(); break;
832
0
        case  HANDLE_VIEWSET_TEXT_BOUNDARIES       :   bBoolVal = mpConstViewOption->IsTextBoundaries(); break;
833
0
        case  HANDLE_VIEWSET_SMOOTH_SCROLLING      :   bBoolVal = mpConstViewOption->IsSmoothScroll();  break;
834
0
        case  HANDLE_VIEWSET_SHOW_CONTENT_TIPS     :   bBoolVal = mpConstViewOption->IsShowContentTips(); break;
835
0
        case  HANDLE_VIEWSET_INLINECHANGES_TIPS    :   bBoolVal = mpConstViewOption->IsShowInlineTooltips(); break;
836
0
        case  HANDLE_VIEWSET_CHANGES_IN_MARGIN     :   bBoolVal = mpConstViewOption->IsShowChangesInMargin(); break;
837
0
        case  HANDLE_VIEWSET_IS_RASTER_VISIBLE     : bBoolVal = mpConstViewOption->IsGridVisible(); break;
838
0
        case  HANDLE_VIEWSET_IS_SNAP_TO_RASTER     : bBoolVal = mpConstViewOption->IsSnap(); break;
839
0
        case  HANDLE_VIEWSET_SCROLLBAR_TIPS        : bBoolVal = mpConstViewOption->IsShowScrollBarTips(); break;
840
0
        case  HANDLE_VIEWSET_RASTER_RESOLUTION_X   :
841
0
            bBool = false;
842
0
            rValue <<= static_cast<sal_Int32>(convertTwipToMm100(mpConstViewOption->GetSnapSize().Width()));
843
0
        break;
844
0
        case  HANDLE_VIEWSET_RASTER_RESOLUTION_Y   :
845
0
            bBool = false;
846
0
            rValue <<= static_cast<sal_Int32>(convertTwipToMm100(mpConstViewOption->GetSnapSize().Height()));
847
0
        break;
848
0
        case  HANDLE_VIEWSET_RASTER_SUBDIVISION_X  :
849
0
            bBool = false;
850
0
            rValue <<= static_cast<sal_Int32>(mpConstViewOption->GetDivisionX());
851
0
        break;
852
0
        case  HANDLE_VIEWSET_RASTER_SUBDIVISION_Y  :
853
0
            bBool = false;
854
0
            rValue <<= static_cast<sal_Int32>(mpConstViewOption->GetDivisionY());
855
0
        break;
856
0
        case  HANDLE_VIEWSET_ZOOM                   :
857
0
                bBool = false;
858
0
                rValue <<= static_cast<sal_Int16>(mpConstViewOption->GetZoom());
859
0
        break;
860
0
        case HANDLE_VIEWSET_ZOOM_TYPE:
861
0
        {
862
0
            bBool = false;
863
0
            sal_Int16 nRet(0);
864
0
            switch (mpConstViewOption->GetZoomType())
865
0
            {
866
0
                case SvxZoomType::OPTIMAL:
867
0
                    nRet = view::DocumentZoomType::OPTIMAL;
868
0
                break;
869
0
                case SvxZoomType::PAGEWIDTH:
870
0
                    nRet = view::DocumentZoomType::PAGE_WIDTH;
871
0
                break;
872
0
                case SvxZoomType::WHOLEPAGE:
873
0
                    nRet = view::DocumentZoomType::ENTIRE_PAGE;
874
0
                break;
875
0
                case SvxZoomType::PERCENT:
876
0
                    nRet = view::DocumentZoomType::BY_VALUE;
877
0
                break;
878
0
                case SvxZoomType::PAGEWIDTH_NOBORDER:
879
0
                    nRet = view::DocumentZoomType::PAGE_WIDTH_EXACT;
880
0
                break;
881
0
                default:
882
0
                    OSL_FAIL("SwXViewSettings: invalid zoom type");
883
0
                break;
884
0
            }
885
0
            rValue <<= nRet;
886
0
        }
887
0
        break;
888
3.67k
        case HANDLE_VIEWSET_ONLINE_LAYOUT:
889
3.67k
            if(m_pView)
890
3.67k
                bBoolVal = m_pView->GetWrtShell().GetViewOptions()->getBrowseMode();
891
3.67k
        break;
892
0
        case HANDLE_VIEWSET_HELP_URL :
893
0
        {
894
0
            if ( !m_pView )
895
0
                throw UnknownPropertyException();
896
897
0
            bBool = false;
898
0
            SwEditWin &rEditWin = m_pView->GetEditWin();
899
0
            OUString sHelpURL = INET_HID_SCHEME + rEditWin.GetHelpId();
900
0
            rValue <<= sHelpURL;
901
0
        }
902
0
        break;
903
0
        case HANDLE_VIEWSET_HORI_RULER_METRIC:
904
0
        {
905
0
            if ( m_pView )
906
0
            {
907
0
                FieldUnit eUnit;
908
0
                m_pView->GetHRulerMetric( eUnit );
909
0
                rValue <<= static_cast<sal_Int32>(eUnit);
910
0
            }
911
0
            else
912
0
            {
913
0
                const SwMasterUsrPref* pUsrPref = SwModule::get()->GetUsrPref(false);
914
0
                rValue <<= static_cast<sal_Int32>(pUsrPref->GetHScrollMetric());
915
0
            }
916
0
            bBool = false;
917
0
        }
918
0
        break;
919
0
        case HANDLE_VIEWSET_VERT_RULER_METRIC:
920
0
        {
921
0
            if ( m_pView )
922
0
            {
923
0
                FieldUnit eUnit;
924
0
                m_pView->GetVRulerMetric( eUnit );
925
0
                rValue <<= static_cast<sal_Int32>(eUnit);
926
0
            }
927
0
            else
928
0
            {
929
0
                const SwMasterUsrPref* pUsrPref = SwModule::get()->GetUsrPref(false);
930
0
                rValue <<= static_cast<sal_Int32>(pUsrPref->GetVScrollMetric());
931
0
            }
932
0
            bBool = false;
933
0
        }
934
0
        break;
935
0
        default: OSL_FAIL("there is no such ID!");
936
7.35k
    }
937
7.35k
    if( bBool )
938
7.35k
        rValue <<= bBoolVal;
939
7.35k
}
940
941
void SwXViewSettings::_postGetValues ()
942
7.35k
{
943
7.35k
    mpConstViewOption = nullptr;
944
7.35k
}
945
946
OUString SwXViewSettings::getImplementationName()
947
0
{
948
0
    return u"SwXViewSettings"_ustr;
949
0
}
950
951
sal_Bool SwXViewSettings::supportsService(const OUString& rServiceName)
952
0
{
953
0
    return cppu::supportsService(this, rServiceName);
954
0
}
955
956
Sequence< OUString > SwXViewSettings::getSupportedServiceNames()
957
0
{
958
0
    Sequence<OUString> aRet { u"com.sun.star.text.ViewSettings"_ustr };
959
0
    return aRet;
960
0
}
961
962
extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
963
SwXModule_get_implementation(css::uno::XComponentContext*,
964
        css::uno::Sequence<css::uno::Any> const &)
965
0
{
966
0
    return cppu::acquire(new SwXModule());
967
0
}
968
969
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */