LCOV - code coverage report
Current view: top level - sw/source/core/uibase/uno - SwXDocumentSettings.cxx (source / functions) Hit Total Coverage
Test: commit 0e63ca4fde4e446f346e35849c756a30ca294aab Lines: 514 568 90.5 %
Date: 2014-04-11 Functions: 16 19 84.2 %
Legend: Lines: hit not hit

          Line data    Source code
       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 <osl/mutex.hxx>
      21             : #include <sfx2/sfxbasecontroller.hxx>
      22             : #include <SwXDocumentSettings.hxx>
      23             : #include <comphelper/MasterPropertySetInfo.hxx>
      24             : #include <cppuhelper/supportsservice.hxx>
      25             : #include <com/sun/star/beans/PropertyAttribute.hpp>
      26             : #include <com/sun/star/i18n/XForbiddenCharacters.hpp>
      27             : #include <com/sun/star/document/PrinterIndependentLayout.hpp>
      28             : #include <doc.hxx>
      29             : #include <docsh.hxx>
      30             : #include <fldupde.hxx>
      31             : #include <linkenum.hxx>
      32             : #include <sfx2/printer.hxx>
      33             : #include <editsh.hxx>
      34             : #include <drawdoc.hxx>
      35             : #include <svl/zforlist.hxx>
      36             : #include <unotxdoc.hxx>
      37             : #include <cmdid.h>
      38             : #include <sfx2/zoomitem.hxx>
      39             : #include <unomod.hxx>
      40             : #include <vcl/svapp.hxx>
      41             : #include <comphelper/servicehelper.hxx>
      42             : 
      43             : #include "swmodule.hxx"
      44             : #include "cfgitems.hxx"
      45             : #include "prtopt.hxx"
      46             : 
      47             : using namespace comphelper;
      48             : using namespace ::com::sun::star;
      49             : using namespace ::com::sun::star::uno;
      50             : using namespace ::com::sun::star::beans;
      51             : using namespace ::com::sun::star::lang;
      52             : using namespace ::com::sun::star::i18n;
      53             : 
      54             : enum SwDocumentSettingsPropertyHandles
      55             : {
      56             :     HANDLE_FORBIDDEN_CHARS,
      57             :     HANDLE_LINK_UPDATE_MODE,
      58             :     HANDLE_FIELD_AUTO_UPDATE,
      59             :     HANDLE_CHART_AUTO_UPDATE,
      60             :     HANDLE_ADD_PARA_TABLE_SPACING,
      61             :     HANDLE_ADD_PARA_TABLE_SPACING_AT_START,
      62             :     HANDLE_ALIGN_TAB_STOP_POSITION,
      63             :     HANDLE_PRINTER_NAME,
      64             :     HANDLE_PRINTER_SETUP,
      65             :     HANDLE_IS_KERN_ASIAN_PUNCTUATION,
      66             :     HANDLE_CHARACTER_COMPRESSION_TYPE,
      67             :     HANDLE_APPLY_USER_DATA,
      68             :     HANDLE_SAVE_GLOBAL_DOCUMENT_LINKS,
      69             :     HANDLE_CURRENT_DATABASE_DATA_SOURCE,
      70             :     HANDLE_CURRENT_DATABASE_COMMAND,
      71             :     HANDLE_CURRENT_DATABASE_COMMAND_TYPE,
      72             :     HANDLE_SAVE_VERSION_ON_CLOSE,
      73             :     HANDLE_IS_GRID_VISIBLE,
      74             :     HANDLE_IS_SNAP_TO_GRID,
      75             :     HANDLE_IS_SYNCHRONISE_AXES,
      76             :     HANDLE_HORIZONTAL_GRID_RESOLUTION,
      77             :     HANDLE_HORIZONTAL_GRID_SUBDIVISION,
      78             :     HANDLE_VERTICAL_GRID_RESOLUTION,
      79             :     HANDLE_VERTICAL_GRID_SUBDIVISION,
      80             :     HANDLE_UPDATE_FROM_TEMPLATE,
      81             :     HANDLE_PRINTER_INDEPENDENT_LAYOUT,
      82             :     HANDLE_IS_LABEL_DOC,
      83             :     HANDLE_IS_ADD_FLY_OFFSET,
      84             :     HANDLE_IS_ADD_EXTERNAL_LEADING,
      85             :     HANDLE_OLD_NUMBERING, // #111955#
      86             :     HANDLE_OUTLINELEVEL_YIELDS_NUMBERING,
      87             :     /* Stampit It disable the print cancel button of the shown progress dialog. */
      88             :     HANDLE_ALLOW_PRINTJOB_CANCEL,
      89             :     HANDLE_USE_FORMER_LINE_SPACING,
      90             :     HANDLE_ADD_PARA_SPACING_TO_TABLE_CELLS,
      91             :     HANDLE_USE_FORMER_OBJECT_POSITIONING,
      92             :     HANDLE_USE_FORMER_TEXT_WRAPPING,
      93             :     HANDLE_CHANGES_PASSWORD,
      94             :     HANDLE_CONSIDER_WRAP_ON_OBJPOS,
      95             :     HANDLE_IGNORE_FIRST_LINE_INDENT_IN_NUMBERING,
      96             :     HANDLE_DO_NOT_JUSTIFY_LINES_WITH_MANUAL_BREAK,
      97             :     HANDLE_DO_NOT_RESET_PARA_ATTRS_FOR_NUM_FONT,
      98             :     HANDLE_TABLE_ROW_KEEP,
      99             :     HANDLE_IGNORE_TABS_AND_BLANKS_FOR_LINE_CALCULATION,
     100             :     HANDLE_LOAD_READONLY,
     101             :     HANDLE_DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE,
     102             :     HANDLE_CLIP_AS_CHARACTER_ANCHORED_WRITER_FLY_FRAMES,
     103             :     HANDLE_UNIX_FORCE_ZERO_EXT_LEADING,
     104             :     HANDLE_USE_OLD_PRINTER_METRICS,
     105             :     HANDLE_PROTECT_FORM,
     106             :     HANDLE_TABS_RELATIVE_TO_INDENT,
     107             :     HANDLE_RSID,
     108             :     HANDLE_RSID_ROOT,
     109             :     // #i89181#
     110             :     HANDLE_TAB_AT_LEFT_INDENT_FOR_PARA_IN_LIST,
     111             :     HANDLE_MODIFYPASSWORDINFO,
     112             :     HANDLE_MATH_BASELINE_ALIGNMENT,
     113             :     HANDLE_INVERT_BORDER_SPACING,
     114             :     HANDLE_COLLAPSE_EMPTY_CELL_PARA,
     115             :     HANDLE_SMALL_CAPS_PERCENTAGE_66,
     116             :     HANDLE_TAB_OVERFLOW,
     117             :     HANDLE_UNBREAKABLE_NUMBERINGS,
     118             :     HANDLE_STYLES_NODEFAULT,
     119             :     HANDLE_FLOATTABLE_NOMARGINS,
     120             :     HANDLE_CLIPPED_PICTURES,
     121             :     HANDLE_BACKGROUND_PARA_OVER_DRAWINGS,
     122             :     HANDLE_EMBED_FONTS,
     123             :     HANDLE_EMBED_SYSTEM_FONTS,
     124             :     HANDLE_TAB_OVER_MARGIN,
     125             :     HANDLE_SURROUND_TEXT_WRAP_SMALL
     126             : };
     127             : 
     128        3391 : static MasterPropertySetInfo * lcl_createSettingsInfo()
     129             : {
     130             :     static PropertyInfo const aWriterSettingsInfoMap[] =
     131             :     {
     132          22 :         { OUString("ForbiddenCharacters"),        HANDLE_FORBIDDEN_CHARS,                 cppu::UnoType<css::i18n::XForbiddenCharacters>::get(),      0,   0},
     133          22 :         { OUString("LinkUpdateMode"),             HANDLE_LINK_UPDATE_MODE,                cppu::UnoType<sal_Int16>::get(),             0,   0},
     134          22 :         { OUString("FieldAutoUpdate"),            HANDLE_FIELD_AUTO_UPDATE,               cppu::UnoType<bool>::get(),           0,   0},
     135          22 :         { OUString("ChartAutoUpdate"),            HANDLE_CHART_AUTO_UPDATE,               cppu::UnoType<bool>::get(),           0,   0},
     136          22 :         { OUString("AddParaTableSpacing"),        HANDLE_ADD_PARA_TABLE_SPACING,          cppu::UnoType<bool>::get(),           0,   0},
     137          22 :         { OUString("AddParaTableSpacingAtStart"), HANDLE_ADD_PARA_TABLE_SPACING_AT_START, cppu::UnoType<bool>::get(),           0,   0},
     138          22 :         { OUString("AlignTabStopPosition"),       HANDLE_ALIGN_TAB_STOP_POSITION,         cppu::UnoType<bool>::get(),           0,   0},
     139          22 :         { OUString("PrinterName"),                HANDLE_PRINTER_NAME,                    cppu::UnoType<OUString>::get(),          0,   0},
     140          22 :         { OUString("PrinterSetup"),               HANDLE_PRINTER_SETUP,                   cppu::UnoType< cppu::UnoSequenceType<sal_Int8> >::get(),           0,   0},
     141          22 :         { OUString("IsKernAsianPunctuation"),     HANDLE_IS_KERN_ASIAN_PUNCTUATION,       cppu::UnoType<bool>::get(),           0,   0},
     142          22 :         { OUString("CharacterCompressionType"),   HANDLE_CHARACTER_COMPRESSION_TYPE,      cppu::UnoType<sal_Int16>::get(),             0,   0},
     143          22 :         { OUString("ApplyUserData"),              HANDLE_APPLY_USER_DATA,                 cppu::UnoType<bool>::get(),           0,   0},
     144          22 :         { OUString("SaveGlobalDocumentLinks"),    HANDLE_SAVE_GLOBAL_DOCUMENT_LINKS,      cppu::UnoType<bool>::get(),           0,   0},
     145          22 :         { OUString("CurrentDatabaseDataSource"),  HANDLE_CURRENT_DATABASE_DATA_SOURCE,    cppu::UnoType<OUString>::get(),          0,   0},
     146          22 :         { OUString("CurrentDatabaseCommand"),     HANDLE_CURRENT_DATABASE_COMMAND,        cppu::UnoType<OUString>::get(),          0,   0},
     147          22 :         { OUString("CurrentDatabaseCommandType"), HANDLE_CURRENT_DATABASE_COMMAND_TYPE,   cppu::UnoType<sal_Int32>::get(),             0,   0},
     148          22 :         { OUString("SaveVersionOnClose"),         HANDLE_SAVE_VERSION_ON_CLOSE,           cppu::UnoType<bool>::get(),           0,   0},
     149          22 :         { OUString("UpdateFromTemplate"),         HANDLE_UPDATE_FROM_TEMPLATE,            cppu::UnoType<bool>::get(),           0,   0},
     150             : 
     151          22 :         { OUString("PrinterIndependentLayout"),   HANDLE_PRINTER_INDEPENDENT_LAYOUT,      cppu::UnoType<sal_Int16>::get(),             0,   0},
     152          22 :         { OUString("IsLabelDocument"),            HANDLE_IS_LABEL_DOC,                    cppu::UnoType<bool>::get(),           0,   0},
     153          22 :         { OUString("AddFrameOffsets"),            HANDLE_IS_ADD_FLY_OFFSET,               cppu::UnoType<bool>::get(),           0,   0},
     154          22 :         { OUString("AddExternalLeading"),         HANDLE_IS_ADD_EXTERNAL_LEADING,         cppu::UnoType<bool>::get(),           0,   0},
     155          22 :         { OUString("UseOldNumbering"),            HANDLE_OLD_NUMBERING,                   cppu::UnoType<bool>::get(),           0,   0}, // #111955#
     156          22 :         { OUString("OutlineLevelYieldsNumbering"), HANDLE_OUTLINELEVEL_YIELDS_NUMBERING, cppu::UnoType<bool>::get(),           0,   0},
     157             :         /* Stampit It disable the print cancel button of the shown progress dialog. */
     158          22 :         { OUString("AllowPrintJobCancel"),        HANDLE_ALLOW_PRINTJOB_CANCEL,           cppu::UnoType<bool>::get(),           0,   0},
     159          22 :         { OUString("UseFormerLineSpacing"),       HANDLE_USE_FORMER_LINE_SPACING,         cppu::UnoType<bool>::get(),           0,   0},
     160          22 :         { OUString("AddParaSpacingToTableCells"), HANDLE_ADD_PARA_SPACING_TO_TABLE_CELLS, cppu::UnoType<bool>::get(),           0,   0},
     161          22 :         { OUString("UseFormerObjectPositioning"), HANDLE_USE_FORMER_OBJECT_POSITIONING,   cppu::UnoType<bool>::get(),           0,   0},
     162          22 :         { OUString("UseFormerTextWrapping"),      HANDLE_USE_FORMER_TEXT_WRAPPING,        cppu::UnoType<bool>::get(),           0,   0},
     163          22 :         { OUString("RedlineProtectionKey"),       HANDLE_CHANGES_PASSWORD,                cppu::UnoType< cppu::UnoSequenceType<sal_Int8> >::get(),           0,   0},
     164          22 :         { OUString("ConsiderTextWrapOnObjPos"),   HANDLE_CONSIDER_WRAP_ON_OBJPOS,         cppu::UnoType<bool>::get(),           0,   0},
     165          22 :         { OUString("IgnoreFirstLineIndentInNumbering"),   HANDLE_IGNORE_FIRST_LINE_INDENT_IN_NUMBERING,         cppu::UnoType<bool>::get(),           0,   0},
     166          22 :         { OUString("DoNotJustifyLinesWithManualBreak"),   HANDLE_DO_NOT_JUSTIFY_LINES_WITH_MANUAL_BREAK,         cppu::UnoType<bool>::get(),           0,   0},
     167          22 :         { OUString("DoNotResetParaAttrsForNumFont"),   HANDLE_DO_NOT_RESET_PARA_ATTRS_FOR_NUM_FONT,         cppu::UnoType<bool>::get(),           0,   0},
     168          22 :         { OUString("TableRowKeep"),               HANDLE_TABLE_ROW_KEEP,         cppu::UnoType<bool>::get(),           0,   0},
     169          22 :         { OUString("IgnoreTabsAndBlanksForLineCalculation"),   HANDLE_IGNORE_TABS_AND_BLANKS_FOR_LINE_CALCULATION,         cppu::UnoType<bool>::get(),           0,   0},
     170          22 :         { OUString("LoadReadonly"),               HANDLE_LOAD_READONLY,                   cppu::UnoType<bool>::get(),           0,   0},
     171          22 :         { OUString("DoNotCaptureDrawObjsOnPage"),   HANDLE_DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE, cppu::UnoType<bool>::get(), 0, 0},
     172          22 :         { OUString("ClipAsCharacterAnchoredWriterFlyFrames"), HANDLE_CLIP_AS_CHARACTER_ANCHORED_WRITER_FLY_FRAMES, cppu::UnoType<bool>::get(), 0, 0},
     173          22 :         { OUString("UnxForceZeroExtLeading"), HANDLE_UNIX_FORCE_ZERO_EXT_LEADING, cppu::UnoType<bool>::get(), 0, 0},
     174          22 :         { OUString("UseOldPrinterMetrics"), HANDLE_USE_OLD_PRINTER_METRICS, cppu::UnoType<bool>::get(), 0, 0},
     175          22 :         { OUString("TabsRelativeToIndent"), HANDLE_TABS_RELATIVE_TO_INDENT, cppu::UnoType<bool>::get(), 0, 0},
     176          22 :         { OUString("Rsid"), HANDLE_RSID, cppu::UnoType<sal_Int32>::get(), 0, 0},
     177          22 :         { OUString("RsidRoot"), HANDLE_RSID_ROOT, cppu::UnoType<sal_Int32>::get(), 0, 0},
     178          22 :         { OUString("ProtectForm"), HANDLE_PROTECT_FORM, cppu::UnoType<bool>::get(), 0, 0},
     179             :         // #i89181#
     180          22 :         { OUString("TabAtLeftIndentForParagraphsInList"), HANDLE_TAB_AT_LEFT_INDENT_FOR_PARA_IN_LIST, cppu::UnoType<bool>::get(), 0, 0},
     181          22 :         { OUString("ModifyPasswordInfo"), HANDLE_MODIFYPASSWORDINFO, cppu::UnoType< cppu::UnoSequenceType<css::beans::PropertyValue> >::get(), 0,   0},
     182          22 :         { OUString("MathBaselineAlignment"), HANDLE_MATH_BASELINE_ALIGNMENT, cppu::UnoType<bool>::get(), 0, 0},
     183          22 :         { OUString("InvertBorderSpacing"), HANDLE_INVERT_BORDER_SPACING, cppu::UnoType<bool>::get(), 0, 0},
     184          22 :         { OUString("CollapseEmptyCellPara"), HANDLE_COLLAPSE_EMPTY_CELL_PARA, cppu::UnoType<bool>::get(), 0, 0},
     185          22 :         { OUString("SmallCapsPercentage66"), HANDLE_SMALL_CAPS_PERCENTAGE_66, cppu::UnoType<bool>::get(), 0, 0},
     186          22 :         { OUString("TabOverflow"), HANDLE_TAB_OVERFLOW, cppu::UnoType<bool>::get(), 0, 0},
     187          22 :         { OUString("UnbreakableNumberings"), HANDLE_UNBREAKABLE_NUMBERINGS, cppu::UnoType<bool>::get(), 0, 0},
     188          22 :         { OUString("StylesNoDefault"), HANDLE_STYLES_NODEFAULT, cppu::UnoType<bool>::get(), 0, 0},
     189          22 :         { OUString("FloattableNomargins"), HANDLE_FLOATTABLE_NOMARGINS, cppu::UnoType<bool>::get(), 0, 0},
     190          22 :         { OUString("ClippedPictures"), HANDLE_CLIPPED_PICTURES, cppu::UnoType<bool>::get(), 0, 0},
     191          22 :         { OUString("BackgroundParaOverDrawings"), HANDLE_BACKGROUND_PARA_OVER_DRAWINGS, cppu::UnoType<bool>::get(), 0, 0},
     192          22 :         { OUString("EmbedFonts"), HANDLE_EMBED_FONTS, cppu::UnoType<bool>::get(), 0, 0},
     193          22 :         { OUString("EmbedSystemFonts"), HANDLE_EMBED_SYSTEM_FONTS, cppu::UnoType<bool>::get(), 0, 0},
     194          22 :         { OUString("TabOverMargin"), HANDLE_TAB_OVER_MARGIN, cppu::UnoType<bool>::get(), 0, 0},
     195          22 :         { OUString("SurroundTextWrapSmall"), HANDLE_SURROUND_TEXT_WRAP_SMALL, cppu::UnoType<bool>::get(), 0, 0},
     196             : /*
     197             :  * As OS said, we don't have a view when we need to set this, so I have to
     198             :  * find another solution before adding them to this property set - MTG
     199             :         { OUString("IsGridVisible"),              HANDLE_IS_GRID_VISIBLE,                 cppu::UnoType<bool>::get(),           0,   0},
     200             :         { OUString("IsSnapToGrid"),               HANDLE_IS_SNAP_TO_GRID,                 cppu::UnoType<bool>::get(),           0,   0},
     201             :         { OUString("IsSynchroniseAxes"),          HANDLE_IS_SYNCHRONISE_AXES,             cppu::UnoType<bool>::get(),           0,   0},
     202             :         { OUString("HorizontalGridResolution"),   HANDLE_HORIZONTAL_GRID_RESOLUTION,      cppu::UnoType<sal_Int32>::get(),             0,   0},
     203             :         { OUString("HorizontalGridSubdivision"),  HANDLE_HORIZONTAL_GRID_SUBDIVISION,     cppu::UnoType<sal_Int16>::get(),             0,   0},
     204             :         { OUString("VerticalGridResolution"),     HANDLE_VERTICAL_GRID_RESOLUTION,        cppu::UnoType<sal_Int32>::get(),             0,   0},
     205             :         { OUString("VerticalGridSubdivision"),    HANDLE_VERTICAL_GRID_SUBDIVISION,       cppu::UnoType<sal_Int16>::get(),             0,   0},
     206             : 
     207             :         { OUString("ShowParagraphEnd"),           HANDLE_SHOW_PARAGRAPH_END,              cppu::UnoType<bool>::get(),           0,   0},
     208             :         { OUString("ShowOptionalHyphens"),        HANDLE_SHOW_OPTIONAL_HYPHENS,           cppu::UnoType<bool>::get(),           0,   0},
     209             :         { OUString("ShowSpaces"),                 HANDLE_SHOW_SPACES,                     cppu::UnoType<bool>::get(),           0,   0},
     210             :         { OUString("ShowTabs"),                   HANDLE_SHOW_TABS,                       cppu::UnoType<bool>::get(),           0,   0},
     211             :         { OUString("ShowBreaks"),                 HANDLE_SHOW_BREAKS,                     cppu::UnoType<bool>::get(),           0,   0},
     212             :         { OUString("ShowHiddenText"),             HANDLE_SHOW_HIDDEN_TEXT,                cppu::UnoType<bool>::get(),           0,   0},
     213             :         { OUString("ShowHiddenParagraphs"),       HANDLE_SHOW_HIDDEN_PARAGRAPHS,          cppu::UnoType<bool>::get(),           0,   0},
     214             : 
     215             :         { OUString("ShowTextLimitGuide"),         HANDLE_SHOW_TEXT_LIMIT_GUIDE,           cppu::UnoType<bool>::get(),           0,   0},
     216             :         { OUString("ShowTableLimitGuide"),        HANDLE_SHOW_TABLE_LIMIT_GUIDE,          cppu::UnoType<bool>::get(),           0,   0},
     217             :         { OUString("ShowSectionLimitGuide"),      HANDLE_SHOW_SECTION_LIMIT_GUIDE,        cppu::UnoType<bool>::get(),           0,   0},
     218             :         { OUString("ShowGuidesWhileMoving"),      HANDLE_SHOW_GUIDES_WHILE_MOVING,        cppu::UnoType<bool>::get(),           0,   0},
     219             : */
     220             :         { OUString(), 0, css::uno::Type(), 0, 0 }
     221        4755 :     };
     222        3391 :     return new MasterPropertySetInfo ( aWriterSettingsInfoMap );
     223             : }
     224             : 
     225        3391 : SwXDocumentSettings::SwXDocumentSettings ( SwXTextDocument * pModel )
     226             : : MasterPropertySet ( lcl_createSettingsInfo (),
     227        3391 :                       &Application::GetSolarMutex () )
     228             : , mxModel ( pModel )
     229             : , mpModel ( pModel )
     230             : , mpDocSh ( NULL )
     231             : , mpDoc ( NULL )
     232        3391 : , mpPrinter( NULL )
     233             : {
     234        3391 :     registerSlave ( new SwXPrintSettings ( PRINT_SETTINGS_DOCUMENT, mpModel->GetDocShell()->GetDoc() ) );
     235        3391 : }
     236             : 
     237        6782 : SwXDocumentSettings::~SwXDocumentSettings()
     238        3391 :     throw()
     239             : {
     240        6782 : }
     241             : 
     242        3395 : Any SAL_CALL SwXDocumentSettings::queryInterface( const Type& rType )
     243             :     throw(RuntimeException, std::exception)
     244             : {
     245             :         return ::cppu::queryInterface ( rType,
     246             :                                         // OWeakObject interfaces
     247             :                                         dynamic_cast< XInterface* > ( dynamic_cast< OWeakObject*  >(this) ),
     248             :                                         dynamic_cast< XWeak* > ( this ),
     249             :                                         // my own interfaces
     250             :                                         dynamic_cast< XPropertySet*  > ( this ),
     251             :                                         dynamic_cast< XPropertyState* > ( this ),
     252             :                                         dynamic_cast< XMultiPropertySet* > ( this ),
     253             :                                         dynamic_cast< XServiceInfo* > ( this ),
     254        3395 :                                         dynamic_cast< XTypeProvider* > ( this ) );
     255             : }
     256       10317 : void SwXDocumentSettings::acquire ()
     257             :     throw ()
     258             : {
     259       10317 :     OWeakObject::acquire();
     260       10317 : }
     261       10317 : void SwXDocumentSettings::release ()
     262             :     throw ()
     263             : {
     264       10317 :     OWeakObject::release();
     265       10317 : }
     266             : 
     267           0 : uno::Sequence< uno::Type > SAL_CALL SwXDocumentSettings::getTypes(  )
     268             :     throw (RuntimeException, std::exception)
     269             : {
     270           0 :     SolarMutexGuard aGuard;
     271             : 
     272           0 :     uno::Sequence< uno::Type > aBaseTypes( 5 );
     273           0 :     uno::Type* pBaseTypes = aBaseTypes.getArray();
     274             : 
     275             :     // from MasterPropertySet
     276           0 :     pBaseTypes[0] = ::getCppuType((Reference< XPropertySet >*)0);
     277           0 :     pBaseTypes[1] = ::getCppuType((Reference< XPropertyState >*)0);
     278           0 :     pBaseTypes[2] = ::getCppuType((Reference< XMultiPropertySet >*)0);
     279             : 
     280           0 :     pBaseTypes[3] = ::getCppuType((Reference< XServiceInfo >*)0);
     281           0 :     pBaseTypes[4] = ::getCppuType((Reference< XTypeProvider >*)0);
     282             : 
     283           0 :     return aBaseTypes;
     284             : }
     285             : 
     286           0 : uno::Sequence< sal_Int8 > SAL_CALL SwXDocumentSettings::getImplementationId(  )
     287             :     throw (RuntimeException, std::exception)
     288             : {
     289           0 :     return css::uno::Sequence<sal_Int8>();
     290             : }
     291             : 
     292       27951 : void SwXDocumentSettings::_preSetValues ()
     293             :         throw(beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException )
     294             : {
     295       27951 :     mpDocSh = mpModel->GetDocShell();
     296       27951 :     if (NULL == mpDocSh)
     297           0 :         throw UnknownPropertyException();
     298             : 
     299       27951 :     mpDoc = mpDocSh->GetDoc();
     300       27951 :     if (NULL == mpDoc)
     301           0 :         throw UnknownPropertyException();
     302       27951 : }
     303             : 
     304       27951 : void SwXDocumentSettings::_setSingleValue( const comphelper::PropertyInfo & rInfo, const uno::Any &rValue )
     305             :         throw(beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException )
     306             : {
     307       27951 :     if (rInfo.mnAttributes & PropertyAttribute::READONLY)
     308           0 :         throw PropertyVetoException ("Property is read-only: " + rInfo.maName, static_cast < cppu::OWeakObject * > ( 0 ) );
     309             : 
     310       27951 :     switch( rInfo.mnHandle )
     311             :     {
     312             :         case HANDLE_FORBIDDEN_CHARS:
     313          13 :             break;
     314             :         case HANDLE_LINK_UPDATE_MODE:
     315             :         {
     316         112 :             sal_Int16 nMode = 0;
     317         112 :             rValue >>= nMode;
     318         112 :             switch (nMode)
     319             :             {
     320             :                 case NEVER:
     321             :                 case MANUAL:
     322             :                 case AUTOMATIC:
     323             :                 case GLOBALSETTING:
     324         112 :                     break;
     325             :                 default:
     326           0 :                     throw IllegalArgumentException();
     327             :             }
     328         112 :             mpDoc->setLinkUpdateMode(nMode);
     329             :         }
     330         112 :         break;
     331             :         case HANDLE_FIELD_AUTO_UPDATE:
     332             :         {
     333         112 :             sal_Bool bUpdateField = *(sal_Bool*)rValue.getValue();
     334         112 :             SwFldUpdateFlags nFlag = mpDoc->getFieldUpdateFlags(true);
     335             :             mpDoc->setFieldUpdateFlags( bUpdateField ?
     336             :                                         nFlag == AUTOUPD_FIELD_AND_CHARTS ?
     337             :                                         AUTOUPD_FIELD_AND_CHARTS :
     338             :                                         AUTOUPD_FIELD_ONLY :
     339         112 :                                         AUTOUPD_OFF );
     340             :         }
     341         112 :         break;
     342             :         case HANDLE_CHART_AUTO_UPDATE:
     343             :         {
     344         113 :             sal_Bool bUpdateChart = *(sal_Bool*)rValue.getValue();
     345         113 :             SwFldUpdateFlags nFlag = mpDoc->getFieldUpdateFlags(true);
     346         113 :             mpDoc->setFieldUpdateFlags( (nFlag == AUTOUPD_FIELD_ONLY || nFlag == AUTOUPD_FIELD_AND_CHARTS ) ?
     347             :                                         bUpdateChart ?
     348             :                                         AUTOUPD_FIELD_AND_CHARTS :
     349             :                                         AUTOUPD_FIELD_ONLY :
     350         226 :                                         AUTOUPD_OFF );
     351             :         }
     352         113 :         break;
     353             :         case HANDLE_ADD_PARA_TABLE_SPACING:
     354             :         {
     355        1278 :             sal_Bool bParaSpace = sal_False;
     356        1278 :             rValue >>= bParaSpace;
     357        1278 :             mpDoc->set(IDocumentSettingAccess::PARA_SPACE_MAX, bParaSpace );
     358             :         }
     359        1278 :         break;
     360             :         case HANDLE_ADD_PARA_TABLE_SPACING_AT_START:
     361             :         {
     362         113 :             sal_Bool bParaSpacePage = sal_False;
     363         113 :             rValue >>= bParaSpacePage;
     364         113 :             mpDoc->set(IDocumentSettingAccess::PARA_SPACE_MAX_AT_PAGES, bParaSpacePage );
     365             :         }
     366         113 :         break;
     367             :         case HANDLE_ALIGN_TAB_STOP_POSITION:
     368             :         {
     369         113 :             sal_Bool bAlignTab = *(sal_Bool*)rValue.getValue();
     370         113 :             mpDoc->set(IDocumentSettingAccess::TAB_COMPAT, bAlignTab);
     371             :         }
     372         113 :         break;
     373             :         case HANDLE_PRINTER_NAME:
     374             :         {
     375             :             //the printer must be created
     376         112 :             OUString sPrinterName;
     377         112 :             if( rValue >>= sPrinterName  )
     378             :             {
     379         112 :                 if( !mpPrinter && !sPrinterName.isEmpty() && mpDocSh->GetCreateMode() != SFX_CREATE_MODE_EMBEDDED )
     380             :                 {
     381           3 :                     SfxPrinter* pPrinter = mpDoc->getPrinter( true );
     382           3 :                     if ( OUString ( pPrinter->GetName()) != sPrinterName )
     383             :                     {
     384           3 :                         SfxPrinter *pNewPrinter = new SfxPrinter ( pPrinter->GetOptions().Clone(), sPrinterName );
     385           3 :                         if( pNewPrinter->IsKnown() )
     386             :                         {
     387             :                             // set printer only once; in _postSetValues
     388           0 :                             mpPrinter = pNewPrinter;
     389             :                         }
     390             :                         else
     391             :                         {
     392           3 :                             delete pNewPrinter;
     393             :                         }
     394             :                     }
     395             :                 }
     396             :             }
     397             :             else
     398           0 :                 throw IllegalArgumentException();
     399             :         }
     400         112 :         break;
     401             :         case HANDLE_PRINTER_SETUP:
     402             :         {
     403         112 :             Sequence < sal_Int8 > aSequence;
     404         112 :             if ( rValue >>= aSequence )
     405             :             {
     406         112 :                 sal_uInt32 nSize = aSequence.getLength();
     407         112 :                 if( nSize > 0 )
     408             :                 {
     409           5 :                     SvMemoryStream aStream (aSequence.getArray(), nSize,
     410           5 :                                             STREAM_READ );
     411           5 :                     aStream.Seek ( STREAM_SEEK_TO_BEGIN );
     412             :                     static sal_uInt16 const nRange[] =
     413             :                     {
     414             :                         FN_PARAM_ADDPRINTER, FN_PARAM_ADDPRINTER,
     415             :                         SID_HTML_MODE,  SID_HTML_MODE,
     416             :                         SID_PRINTER_NOTFOUND_WARN, SID_PRINTER_NOTFOUND_WARN,
     417             :                         SID_PRINTER_CHANGESTODOC, SID_PRINTER_CHANGESTODOC,
     418             :                         0
     419             :                     };
     420           5 :                     SfxItemSet *pItemSet = new SfxItemSet( mpDoc->GetAttrPool(), nRange );
     421           5 :                     SfxPrinter *pPrinter = SfxPrinter::Create ( aStream, pItemSet );
     422             : 
     423             :                     // set printer only once; in _postSetValues
     424           5 :                     delete mpPrinter;
     425           5 :                     mpPrinter = pPrinter;
     426             :                 }
     427             :             }
     428             :             else
     429           0 :                 throw IllegalArgumentException();
     430             :         }
     431         112 :         break;
     432             :         case HANDLE_IS_KERN_ASIAN_PUNCTUATION:
     433             :         {
     434         112 :             sal_Bool bIsKern = *(sal_Bool*)(rValue).getValue();
     435         112 :             mpDoc->set(IDocumentSettingAccess::KERN_ASIAN_PUNCTUATION, bIsKern);
     436         112 :             SwEditShell* pEditSh = mpDoc->GetEditShell();
     437         112 :             if(pEditSh)
     438           0 :                 pEditSh->ChgHyphenation();
     439             :         }
     440         112 :         break;
     441             :         case HANDLE_CHARACTER_COMPRESSION_TYPE:
     442             :         {
     443         112 :             sal_Int16 nMode = 0;
     444         112 :             rValue >>= nMode;
     445         112 :             switch (nMode)
     446             :             {
     447             :                 case CHARCOMPRESS_NONE:
     448             :                 case CHARCOMPRESS_PUNCTUATION:
     449             :                 case CHARCOMPRESS_PUNCTUATION_KANA:
     450         112 :                     break;
     451             :                 default:
     452           0 :                     throw IllegalArgumentException();
     453             :             }
     454         112 :             mpDoc->setCharacterCompressionType(static_cast < SwCharCompressType > (nMode) );
     455             :         }
     456         112 :         break;
     457             :         case HANDLE_APPLY_USER_DATA:
     458             :         {
     459         112 :             mpDocSh->SetUseUserData( *(sal_Bool*)rValue.getValue() );
     460             :         }
     461         112 :         break;
     462             :         case HANDLE_SAVE_GLOBAL_DOCUMENT_LINKS:
     463             :         {
     464         113 :             sal_Bool bSaveGlobal = *(sal_Bool*)rValue.getValue();
     465         113 :             mpDoc->set(IDocumentSettingAccess::GLOBAL_DOCUMENT_SAVE_LINKS, bSaveGlobal );
     466             :         }
     467         113 :         break;
     468             :         case HANDLE_CURRENT_DATABASE_DATA_SOURCE:
     469             :         {
     470         112 :             SwDBData aData = mpDoc->GetDBData();
     471         112 :             if ( rValue >>= aData.sDataSource )
     472         112 :                 mpDoc->ChgDBData( aData );
     473             :         }
     474         112 :         break;
     475             :         case HANDLE_CURRENT_DATABASE_COMMAND:
     476             :         {
     477         112 :             SwDBData aData = mpDoc->GetDBData();
     478             : 
     479         112 :             if ( rValue >>= aData.sCommand )
     480         112 :                 mpDoc->ChgDBData( aData );
     481             : 
     482             :             SAL_WARN_IF( aData.sDataSource.isEmpty() && !aData.sCommand.isEmpty(), "sw.uno",
     483         112 :                 "\"CurrentDatabaseCommand\" property possibly set before \"CurrentDatabaseDataSource\"" );
     484             :         }
     485         112 :         break;
     486             :         case HANDLE_CURRENT_DATABASE_COMMAND_TYPE:
     487             :         {
     488         112 :             SwDBData aData = mpDoc->GetDBData();
     489         112 :             if ( rValue >>= aData.nCommandType )
     490         112 :                 mpDoc->ChgDBData( aData );
     491             :             SAL_WARN_IF( aData.nCommandType && aData.sDataSource.isEmpty(), "sw.uno",
     492             :                 "\"CurrentDatabaseCommandType\" property possibly set before \"CurrentDatabaseDataSource\"" );
     493             :             SAL_WARN_IF( aData.nCommandType && aData.sCommand.isEmpty(), "sw.uno",
     494         112 :                 "\"CurrentDatabaseCommandType\" property possibly set before \"CurrentDatabaseCommand\"" );
     495             :         }
     496         112 :         break;
     497             :         case HANDLE_SAVE_VERSION_ON_CLOSE:
     498             :         {
     499         112 :             mpDocSh->SetSaveVersionOnClose( *(sal_Bool*)rValue.getValue() );
     500             :         }
     501         112 :         break;
     502             :         case HANDLE_UPDATE_FROM_TEMPLATE:
     503             :         {
     504         112 :             mpDocSh->SetQueryLoadTemplate( *(sal_Bool*)rValue.getValue() );
     505             :         }
     506         112 :         break;
     507             :         case HANDLE_PRINTER_INDEPENDENT_LAYOUT:
     508             :         {
     509         113 :             sal_Int16 nTmp = 0;
     510         113 :             rValue >>= nTmp;
     511             : 
     512         113 :             bool bUseVirDev = true;
     513         113 :             bool bHiResVirDev = true;
     514         113 :             if( nTmp == document::PrinterIndependentLayout::DISABLED )
     515           5 :                 bUseVirDev = false;
     516         108 :             else if ( nTmp == document::PrinterIndependentLayout::LOW_RESOLUTION )
     517           0 :                 bHiResVirDev = false;
     518         108 :             else if ( nTmp != document::PrinterIndependentLayout::HIGH_RESOLUTION )
     519           0 :                 throw IllegalArgumentException();
     520             : 
     521         113 :             mpDoc->setReferenceDeviceType( bUseVirDev, bHiResVirDev );
     522             :         }
     523         113 :         break;
     524             :         case HANDLE_IS_LABEL_DOC :
     525             :         {
     526         113 :             sal_Bool bSet = sal_False;
     527         113 :             if(!(rValue >>= bSet))
     528           0 :                 throw IllegalArgumentException();
     529         113 :             mpDoc->set(IDocumentSettingAccess::LABEL_DOCUMENT, bSet);
     530             :         }
     531         113 :         break;
     532             :         case HANDLE_IS_ADD_FLY_OFFSET:
     533             :         {
     534        1016 :             sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
     535        1016 :             mpDoc->set(IDocumentSettingAccess::ADD_FLY_OFFSETS, bTmp);
     536             :         }
     537        1016 :         break;
     538             :         case HANDLE_IS_ADD_EXTERNAL_LEADING:
     539             :         {
     540         113 :             sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
     541         113 :             mpDoc->set(IDocumentSettingAccess::ADD_EXT_LEADING, bTmp);
     542             :         }
     543         113 :         break;
     544             :         case HANDLE_OLD_NUMBERING: // #111955#
     545             :         {
     546        1017 :             sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
     547        1017 :             mpDoc->set(IDocumentSettingAccess::OLD_NUMBERING, bTmp);
     548             :         }
     549        1017 :         break;
     550             :         case HANDLE_OUTLINELEVEL_YIELDS_NUMBERING:
     551             :         {
     552         113 :             sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
     553         113 :             mpDoc->set(IDocumentSettingAccess::OUTLINE_LEVEL_YIELDS_OUTLINE_RULE, bTmp);
     554             :         }
     555         113 :         break;
     556             :         case HANDLE_ALLOW_PRINTJOB_CANCEL:
     557             :         {
     558         112 :             sal_Bool bState = sal_False;
     559         112 :             if (!(rValue >>= bState))
     560           0 :                 throw IllegalArgumentException();
     561         112 :             mpDocSh->Stamp_SetPrintCancelState(bState);
     562             :         }
     563         112 :         break;
     564             :         case HANDLE_USE_FORMER_LINE_SPACING:
     565             :         {
     566        1018 :             sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
     567        1018 :             mpDoc->set(IDocumentSettingAccess::OLD_LINE_SPACING, bTmp);
     568             :         }
     569        1018 :         break;
     570             :         case HANDLE_ADD_PARA_SPACING_TO_TABLE_CELLS:
     571             :         {
     572        1018 :             sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
     573        1018 :             mpDoc->set(IDocumentSettingAccess::ADD_PARA_SPACING_TO_TABLE_CELLS, bTmp);
     574             :         }
     575        1018 :         break;
     576             :         case HANDLE_USE_FORMER_OBJECT_POSITIONING:
     577             :         {
     578        1018 :             sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
     579        1018 :             mpDoc->set(IDocumentSettingAccess::USE_FORMER_OBJECT_POS, bTmp);
     580             :         }
     581        1018 :         break;
     582             :         case HANDLE_USE_FORMER_TEXT_WRAPPING:
     583             :         {
     584        1017 :             sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
     585        1017 :             mpDoc->set(IDocumentSettingAccess::USE_FORMER_TEXT_WRAPPING, bTmp);
     586             :         }
     587        1017 :         break;
     588             :         case HANDLE_CHANGES_PASSWORD:
     589             :         {
     590           0 :             Sequence <sal_Int8> aNew;
     591           0 :             if(rValue >>= aNew)
     592             :             {
     593           0 :                 mpDoc->SetRedlinePassword(aNew);
     594           0 :                 if(aNew.getLength())
     595             :                 {
     596           0 :                     sal_uInt16 eMode = mpDoc->GetRedlineMode();
     597           0 :                     eMode = eMode|nsRedlineMode_t::REDLINE_ON;
     598           0 :                     mpDoc->SetRedlineMode((RedlineMode_t)( eMode ));
     599             :                 }
     600           0 :             }
     601             :         }
     602           0 :         break;
     603             :         case HANDLE_CONSIDER_WRAP_ON_OBJPOS:
     604             :         {
     605        1017 :             sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
     606        1017 :             mpDoc->set(IDocumentSettingAccess::CONSIDER_WRAP_ON_OBJECT_POSITION, bTmp );
     607             :         }
     608        1017 :         break;
     609             :         case HANDLE_IGNORE_FIRST_LINE_INDENT_IN_NUMBERING:
     610             :         {
     611        1017 :             sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
     612        1017 :             mpDoc->set(IDocumentSettingAccess::IGNORE_FIRST_LINE_INDENT_IN_NUMBERING, bTmp);
     613             :         }
     614        1017 :         break;
     615             :         case HANDLE_DO_NOT_JUSTIFY_LINES_WITH_MANUAL_BREAK:
     616             :         {
     617         113 :             sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
     618         113 :             mpDoc->set(IDocumentSettingAccess::DO_NOT_JUSTIFY_LINES_WITH_MANUAL_BREAK, bTmp);
     619             :         }
     620         113 :         break;
     621             :         case HANDLE_DO_NOT_RESET_PARA_ATTRS_FOR_NUM_FONT:
     622             :         {
     623        1017 :             sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
     624        1017 :             mpDoc->set(IDocumentSettingAccess::DO_NOT_RESET_PARA_ATTRS_FOR_NUM_FONT, bTmp);
     625             :         }
     626        1017 :         break;
     627             :         case HANDLE_TABLE_ROW_KEEP:
     628             :         {
     629        1017 :             sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
     630        1017 :             mpDoc->set(IDocumentSettingAccess::TABLE_ROW_KEEP, bTmp);
     631             :         }
     632        1017 :         break;
     633             :         case HANDLE_IGNORE_TABS_AND_BLANKS_FOR_LINE_CALCULATION:
     634             :         {
     635        1016 :             sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
     636        1016 :             mpDoc->set(IDocumentSettingAccess::IGNORE_TABS_AND_BLANKS_FOR_LINE_CALCULATION, bTmp);
     637             :         }
     638        1016 :         break;
     639             :         case HANDLE_LOAD_READONLY:
     640             :         {
     641         113 :             mpDocSh->SetLoadReadonly( *(sal_Bool*)rValue.getValue() );
     642             :         }
     643         113 :         break;
     644             :         case HANDLE_DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE:
     645             :         {
     646         113 :             sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
     647         113 :             mpDoc->set(IDocumentSettingAccess::DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE, bTmp);
     648             :         }
     649         113 :         break;
     650             :         case HANDLE_CLIP_AS_CHARACTER_ANCHORED_WRITER_FLY_FRAMES:
     651             :         {
     652         113 :             sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
     653         113 :             mpDoc->set(IDocumentSettingAccess::CLIP_AS_CHARACTER_ANCHORED_WRITER_FLY_FRAME, bTmp);
     654             :         }
     655         113 :         break;
     656             :         case HANDLE_UNIX_FORCE_ZERO_EXT_LEADING:
     657             :         {
     658         113 :             sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
     659         113 :             mpDoc->set(IDocumentSettingAccess::UNIX_FORCE_ZERO_EXT_LEADING, bTmp);
     660             :         }
     661         113 :         break;
     662             :         case HANDLE_USE_OLD_PRINTER_METRICS:
     663             :             // ignore - this is a dead property
     664         113 :         break;
     665             :         case HANDLE_TABS_RELATIVE_TO_INDENT:
     666             :         {
     667        1287 :             sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
     668        1287 :             mpDoc->set(IDocumentSettingAccess::TABS_RELATIVE_TO_INDENT, bTmp);
     669             :         }
     670        1287 :         break;
     671             :         case HANDLE_RSID:
     672             :         {
     673          93 :             sal_uInt32 nTmp = 0;
     674          93 :             rValue >>= nTmp;
     675          93 :             mpDoc->setRsid( nTmp );
     676             :         }
     677          93 :         break;
     678             :         case HANDLE_RSID_ROOT:
     679             :         {
     680          93 :             sal_uInt32 nTmp = 0;
     681          93 :             rValue >>= nTmp;
     682          93 :             mpDoc->setRsidRoot( nTmp );
     683             :         }
     684          93 :         break;
     685             :         case HANDLE_PROTECT_FORM:
     686             :         {
     687         111 :             sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
     688         111 :             mpDoc->set(IDocumentSettingAccess::PROTECT_FORM, bTmp);
     689             :         }
     690         111 :         break;
     691             :         // #i89181#
     692             :         case HANDLE_TAB_AT_LEFT_INDENT_FOR_PARA_IN_LIST:
     693             :         {
     694         112 :             sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
     695         112 :             mpDoc->set(IDocumentSettingAccess::TAB_AT_LEFT_INDENT_FOR_PARA_IN_LIST, bTmp);
     696             :         }
     697         112 :         break;
     698             :         case HANDLE_MODIFYPASSWORDINFO:
     699             :         {
     700           0 :             uno::Sequence< beans::PropertyValue > aInfo;
     701           0 :             if ( !( rValue >>= aInfo ) )
     702             :                 throw lang::IllegalArgumentException(
     703             :                     OUString( "Value of type Sequence<PropertyValue> expected!" ),
     704             :                     uno::Reference< uno::XInterface >(),
     705           0 :                     2 );
     706             : 
     707           0 :             if ( !mpDocSh->SetModifyPasswordInfo( aInfo ) )
     708             :                 throw beans::PropertyVetoException(
     709             :                     OUString( "The hash is not allowed to be changed now!" ),
     710           0 :                     uno::Reference< uno::XInterface >() );
     711             :         }
     712           0 :         break;
     713             :         case HANDLE_MATH_BASELINE_ALIGNMENT:
     714             :         {
     715          99 :             sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
     716          99 :             mpDoc->set( IDocumentSettingAccess::MATH_BASELINE_ALIGNMENT, bTmp );
     717             :         }
     718          99 :         break;
     719             :         case HANDLE_INVERT_BORDER_SPACING:
     720             :         {
     721        1006 :             sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
     722        1006 :             mpDoc->set(IDocumentSettingAccess::INVERT_BORDER_SPACING, bTmp);
     723             :         }
     724        1006 :         break;
     725             :         case HANDLE_COLLAPSE_EMPTY_CELL_PARA:
     726             :         {
     727        1006 :             sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
     728        1006 :             mpDoc->set(IDocumentSettingAccess::COLLAPSE_EMPTY_CELL_PARA, bTmp);
     729             :         }
     730        1006 :         break;
     731             :         case HANDLE_SMALL_CAPS_PERCENTAGE_66:
     732             :         {
     733         113 :             sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
     734         113 :             mpDoc->set(IDocumentSettingAccess::SMALL_CAPS_PERCENTAGE_66, bTmp);
     735             :         }
     736         113 :         break;
     737             :         case HANDLE_TAB_OVERFLOW:
     738             :         {
     739        1017 :             sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
     740        1017 :             mpDoc->set(IDocumentSettingAccess::TAB_OVERFLOW, bTmp);
     741             :         }
     742        1017 :         break;
     743             :         case HANDLE_UNBREAKABLE_NUMBERINGS:
     744             :         {
     745        1017 :             sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
     746        1017 :             mpDoc->set(IDocumentSettingAccess::UNBREAKABLE_NUMBERINGS, bTmp);
     747             :         }
     748        1017 :         break;
     749             :         case HANDLE_STYLES_NODEFAULT:
     750             :         {
     751         983 :             sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
     752         983 :             mpDoc->set(IDocumentSettingAccess::STYLES_NODEFAULT, bTmp);
     753             :         }
     754         983 :         break;
     755             :         case HANDLE_FLOATTABLE_NOMARGINS:
     756             :         {
     757         988 :             sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
     758         988 :             mpDoc->set(IDocumentSettingAccess::FLOATTABLE_NOMARGINS, bTmp);
     759             :         }
     760         988 :         break;
     761             :         case HANDLE_CLIPPED_PICTURES:
     762             :         {
     763        1017 :             sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
     764        1017 :             mpDoc->set(IDocumentSettingAccess::CLIPPED_PICTURES, bTmp);
     765             :         }
     766        1017 :         break;
     767             :         case HANDLE_BACKGROUND_PARA_OVER_DRAWINGS:
     768             :         {
     769        1017 :             sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
     770        1017 :             mpDoc->set(IDocumentSettingAccess::BACKGROUND_PARA_OVER_DRAWINGS, bTmp);
     771             :         }
     772        1017 :         break;
     773             :         case HANDLE_EMBED_FONTS:
     774             :         {
     775          79 :             sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
     776          79 :             mpDoc->set(IDocumentSettingAccess::EMBED_FONTS, bTmp);
     777             :         }
     778             :         case HANDLE_EMBED_SYSTEM_FONTS:
     779             :         {
     780         226 :             sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
     781         226 :             mpDoc->set(IDocumentSettingAccess::EMBED_SYSTEM_FONTS, bTmp);
     782             :         }
     783         226 :         break;
     784             :         case HANDLE_TAB_OVER_MARGIN:
     785             :         {
     786        1017 :             sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
     787        1017 :             mpDoc->set(IDocumentSettingAccess::TAB_OVER_MARGIN, bTmp);
     788             :         }
     789        1017 :         break;
     790             :         case HANDLE_SURROUND_TEXT_WRAP_SMALL:
     791             :         {
     792        1232 :             sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
     793        1232 :             mpDoc->set(IDocumentSettingAccess::SURROUND_TEXT_WRAP_SMALL, bTmp);
     794             :         }
     795        1232 :         break;
     796             :         default:
     797           0 :             throw UnknownPropertyException();
     798             :     }
     799       27951 : }
     800             : 
     801       27951 : void SwXDocumentSettings::_postSetValues ()
     802             :         throw(beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException )
     803             : {
     804             :     // set printer only once, namely here!
     805       27951 :     if( mpPrinter != NULL )
     806             :     {
     807             :         // #i86352# the printer is also used as container for options by sfx
     808             :         // when setting a printer it should have decent default options
     809           5 :         SfxItemSet aOptions( mpPrinter->GetOptions() );
     810          10 :         SwPrintData aPrtData( mpDoc->getPrintData() );
     811          10 :         SwAddPrinterItem aAddPrinterItem (FN_PARAM_ADDPRINTER, aPrtData);
     812           5 :         aOptions.Put(aAddPrinterItem);
     813           5 :         mpPrinter->SetOptions( aOptions );
     814             : 
     815          10 :         mpDoc->setPrinter( mpPrinter, true, true );
     816             :     }
     817             : 
     818       27951 :     mpPrinter = 0;
     819       27951 :     mpDocSh = 0;
     820       27951 :     mpDoc = 0;
     821       27951 : }
     822             : 
     823        1251 : void SwXDocumentSettings::_preGetValues ()
     824             :         throw(beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException )
     825             : {
     826        1251 :     mpDocSh = mpModel->GetDocShell();
     827        1251 :     if (NULL == mpDocSh)
     828           0 :         throw UnknownPropertyException();
     829        1251 :     mpDoc = mpDocSh->GetDoc();
     830        1251 :     if (NULL == mpDoc)
     831           0 :         throw UnknownPropertyException();
     832        1251 : }
     833             : 
     834        1251 : void SwXDocumentSettings::_getSingleValue( const comphelper::PropertyInfo & rInfo, uno::Any & rValue )
     835             :         throw(beans::UnknownPropertyException, lang::WrappedTargetException )
     836             : {
     837        1251 :     switch( rInfo.mnHandle )
     838             :     {
     839             :         case HANDLE_FORBIDDEN_CHARS:
     840             :         {
     841          33 :             Reference<XForbiddenCharacters> xRet(*mpModel->GetPropertyHelper(), UNO_QUERY);
     842          33 :             rValue <<= xRet;
     843             :         }
     844          33 :         break;
     845             :         case HANDLE_LINK_UPDATE_MODE:
     846             :         {
     847          20 :             rValue <<= static_cast < sal_Int16 > ( mpDoc->getLinkUpdateMode(true) );
     848             :         }
     849          20 :         break;
     850             :         case HANDLE_FIELD_AUTO_UPDATE:
     851             :         {
     852          20 :             SwFldUpdateFlags nFlags = mpDoc->getFieldUpdateFlags(true);
     853          20 :             sal_Bool bFieldUpd = (nFlags == AUTOUPD_FIELD_ONLY || nFlags == AUTOUPD_FIELD_AND_CHARTS );
     854          20 :             rValue.setValue(&bFieldUpd, ::getBooleanCppuType());
     855             :         }
     856          20 :         break;
     857             :         case HANDLE_CHART_AUTO_UPDATE:
     858             :         {
     859          22 :             SwFldUpdateFlags nFlags = mpDoc->getFieldUpdateFlags(true);
     860          22 :             sal_Bool bChartUpd = nFlags == AUTOUPD_FIELD_AND_CHARTS;
     861          22 :             rValue.setValue(&bChartUpd, ::getBooleanCppuType());
     862             :         }
     863          22 :         break;
     864             :         case HANDLE_ADD_PARA_TABLE_SPACING:
     865             :         {
     866          22 :             sal_Bool bParaSpace = mpDoc->get(IDocumentSettingAccess::PARA_SPACE_MAX);
     867          22 :             rValue.setValue(&bParaSpace, ::getBooleanCppuType());
     868             :         }
     869          22 :         break;
     870             :         case HANDLE_ADD_PARA_TABLE_SPACING_AT_START:
     871             :         {
     872          22 :             sal_Bool bParaSpace = mpDoc->get(IDocumentSettingAccess::PARA_SPACE_MAX_AT_PAGES);
     873          22 :             rValue.setValue(&bParaSpace, ::getBooleanCppuType());
     874             :         }
     875          22 :         break;
     876             :         case HANDLE_ALIGN_TAB_STOP_POSITION:
     877             :         {
     878          22 :             sal_Bool bAlignTab = mpDoc->get(IDocumentSettingAccess::TAB_COMPAT);
     879          22 :             rValue.setValue(&bAlignTab, ::getBooleanCppuType());
     880             :         }
     881          22 :         break;
     882             :         case HANDLE_PRINTER_NAME:
     883             :         {
     884          20 :             SfxPrinter *pPrinter = mpDoc->getPrinter( false );
     885          20 :             rValue <<= pPrinter ? OUString ( pPrinter->GetName()) : OUString();
     886             :         }
     887          20 :         break;
     888             :         case HANDLE_PRINTER_SETUP:
     889             :         {
     890          20 :             SfxPrinter *pPrinter = mpDoc->getPrinter( false );
     891          20 :             if (pPrinter)
     892             :             {
     893           0 :                 SvMemoryStream aStream;
     894           0 :                 pPrinter->Store( aStream );
     895           0 :                 aStream.Seek ( STREAM_SEEK_TO_END );
     896           0 :                 sal_uInt32 nSize = aStream.Tell();
     897           0 :                 aStream.Seek ( STREAM_SEEK_TO_BEGIN );
     898           0 :                 Sequence < sal_Int8 > aSequence( nSize );
     899           0 :                 aStream.Read ( aSequence.getArray(), nSize );
     900           0 :                 rValue <<= aSequence;
     901             :             }
     902             :             else
     903             :             {
     904          20 :                 Sequence < sal_Int8 > aSequence ( 0 );
     905          20 :                 rValue <<= aSequence;
     906             :             }
     907             :         }
     908          20 :         break;
     909             :         case HANDLE_IS_KERN_ASIAN_PUNCTUATION:
     910             :         {
     911          20 :             sal_Bool bParaSpace = mpDoc->get(IDocumentSettingAccess::KERN_ASIAN_PUNCTUATION);
     912          20 :             rValue.setValue(&bParaSpace, ::getBooleanCppuType());
     913             :         }
     914          20 :         break;
     915             :         case HANDLE_APPLY_USER_DATA:
     916             :         {
     917          20 :             rValue <<= mpDocSh->IsUseUserData();
     918             :         }
     919          20 :         break;
     920             :         case HANDLE_CHARACTER_COMPRESSION_TYPE:
     921             :         {
     922          20 :             rValue <<= static_cast < sal_Int16 > (mpDoc->getCharacterCompressionType());
     923             :         }
     924          20 :         break;
     925             :         case HANDLE_SAVE_GLOBAL_DOCUMENT_LINKS:
     926             :         {
     927          22 :             sal_Bool bSaveGlobal = mpDoc->get(IDocumentSettingAccess::GLOBAL_DOCUMENT_SAVE_LINKS);
     928          22 :             rValue.setValue(&bSaveGlobal, ::getBooleanCppuType());
     929             :         }
     930          22 :         break;
     931             :         case HANDLE_CURRENT_DATABASE_DATA_SOURCE:
     932             :         {
     933          20 :             const SwDBData& rData = mpDoc->GetDBDesc();
     934          20 :             rValue <<= rData.sDataSource;
     935             :         }
     936          20 :         break;
     937             :         case HANDLE_CURRENT_DATABASE_COMMAND:
     938             :         {
     939          20 :             const SwDBData& rData = mpDoc->GetDBDesc();
     940          20 :             rValue <<= rData.sCommand;
     941             :         }
     942          20 :         break;
     943             :         case HANDLE_CURRENT_DATABASE_COMMAND_TYPE:
     944             :         {
     945          20 :             const SwDBData& rData = mpDoc->GetDBDesc();
     946          20 :             rValue <<= rData.nCommandType;
     947             :         }
     948          20 :         break;
     949             :         case HANDLE_SAVE_VERSION_ON_CLOSE:
     950             :         {
     951          20 :             rValue <<= mpDocSh->IsSaveVersionOnClose();
     952             :         }
     953          20 :         break;
     954             :         case HANDLE_UPDATE_FROM_TEMPLATE:
     955             :         {
     956          20 :             rValue <<= mpDocSh->IsQueryLoadTemplate();
     957             :         }
     958          20 :         break;
     959             :         case HANDLE_PRINTER_INDEPENDENT_LAYOUT:
     960             :         {
     961             :             // returns short (see css.document.PrinterIndependentLayout)
     962          20 :             sal_Int16 nVirDevType = mpDoc->get(IDocumentSettingAccess::USE_VIRTUAL_DEVICE) ?
     963          20 :                                     ( mpDoc->get(IDocumentSettingAccess::USE_HIRES_VIRTUAL_DEVICE) ?
     964             :                                       document::PrinterIndependentLayout::HIGH_RESOLUTION :
     965             :                                       document::PrinterIndependentLayout::LOW_RESOLUTION ) :
     966          40 :                                     document::PrinterIndependentLayout::DISABLED;
     967          20 :             rValue <<= nVirDevType;
     968             :         }
     969          20 :         break;
     970             :         case HANDLE_IS_LABEL_DOC:
     971             :         {
     972          22 :             sal_Bool bLabel = mpDoc->get(IDocumentSettingAccess::LABEL_DOCUMENT);
     973          22 :             rValue <<= bLabel;
     974             :         }
     975          22 :         break;
     976             :         case HANDLE_IS_ADD_FLY_OFFSET:
     977             :         {
     978          20 :             sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::ADD_FLY_OFFSETS);
     979          20 :             rValue.setValue( &bTmp, ::getBooleanCppuType() );
     980             :         }
     981          20 :         break;
     982             :         case HANDLE_IS_ADD_EXTERNAL_LEADING:
     983             :         {
     984          20 :             sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::ADD_EXT_LEADING);
     985          20 :             rValue.setValue( &bTmp, ::getBooleanCppuType() );
     986             :         }
     987          20 :         break;
     988             :         case HANDLE_OLD_NUMBERING: // #111955#
     989             :         {
     990          20 :             sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::OLD_NUMBERING);
     991          20 :             rValue.setValue( &bTmp, ::getBooleanCppuType() );
     992             :         }
     993          20 :         break;
     994             :         case HANDLE_OUTLINELEVEL_YIELDS_NUMBERING: // #111955#
     995             :         {
     996          20 :             sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::OUTLINE_LEVEL_YIELDS_OUTLINE_RULE);
     997          20 :             rValue.setValue( &bTmp, ::getBooleanCppuType() );
     998             :         }
     999          20 :         break;
    1000             :         case HANDLE_ALLOW_PRINTJOB_CANCEL:
    1001             :         {
    1002          20 :             sal_Bool bPrintCancelState = mpDocSh->Stamp_GetPrintCancelState();
    1003          20 :             rValue.setValue(&bPrintCancelState, ::getBooleanCppuType());
    1004             :         }
    1005          20 :         break;
    1006             :         case HANDLE_USE_FORMER_LINE_SPACING:
    1007             :         {
    1008          22 :             sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::OLD_LINE_SPACING);
    1009          22 :             rValue.setValue( &bTmp, ::getBooleanCppuType() );
    1010             :         }
    1011          22 :         break;
    1012             :         case HANDLE_ADD_PARA_SPACING_TO_TABLE_CELLS:
    1013             :         {
    1014          22 :             sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::ADD_PARA_SPACING_TO_TABLE_CELLS);
    1015          22 :             rValue.setValue( &bTmp, ::getBooleanCppuType() );
    1016             :         }
    1017          22 :         break;
    1018             :         case HANDLE_USE_FORMER_OBJECT_POSITIONING:
    1019             :         {
    1020          22 :             sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::USE_FORMER_OBJECT_POS);
    1021          22 :             rValue.setValue( &bTmp, ::getBooleanCppuType() );
    1022             :         }
    1023          22 :         break;
    1024             :         case HANDLE_USE_FORMER_TEXT_WRAPPING:
    1025             :         {
    1026          20 :             sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::USE_FORMER_TEXT_WRAPPING);
    1027          20 :             rValue.setValue( &bTmp, ::getBooleanCppuType() );
    1028             :         }
    1029          20 :         break;
    1030             :         case HANDLE_CHANGES_PASSWORD:
    1031             :         {
    1032          20 :             rValue <<= mpDoc->GetRedlinePassword();
    1033             :         }
    1034          20 :         break;
    1035             :         case HANDLE_CONSIDER_WRAP_ON_OBJPOS:
    1036             :         {
    1037          20 :             sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::CONSIDER_WRAP_ON_OBJECT_POSITION);
    1038          20 :             rValue.setValue( &bTmp, ::getBooleanCppuType() );
    1039             :         }
    1040          20 :         break;
    1041             :         case HANDLE_IGNORE_FIRST_LINE_INDENT_IN_NUMBERING:
    1042             :         {
    1043          20 :             sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::IGNORE_FIRST_LINE_INDENT_IN_NUMBERING);
    1044          20 :             rValue.setValue( &bTmp, ::getBooleanCppuType() );
    1045             :         }
    1046          20 :         break;
    1047             :         case HANDLE_DO_NOT_JUSTIFY_LINES_WITH_MANUAL_BREAK:
    1048             :         {
    1049          20 :             sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::DO_NOT_JUSTIFY_LINES_WITH_MANUAL_BREAK);
    1050          20 :             rValue.setValue( &bTmp, ::getBooleanCppuType() );
    1051             :         }
    1052          20 :         break;
    1053             :         case HANDLE_DO_NOT_RESET_PARA_ATTRS_FOR_NUM_FONT:
    1054             :         {
    1055          20 :             sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::DO_NOT_RESET_PARA_ATTRS_FOR_NUM_FONT);
    1056          20 :             rValue.setValue( &bTmp, ::getBooleanCppuType() );
    1057             :         }
    1058          20 :         break;
    1059             :         case HANDLE_TABLE_ROW_KEEP :
    1060             :         {
    1061          20 :             sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::TABLE_ROW_KEEP);
    1062          20 :             rValue.setValue( &bTmp, ::getBooleanCppuType() );
    1063             :         }
    1064          20 :         break;
    1065             :         case HANDLE_IGNORE_TABS_AND_BLANKS_FOR_LINE_CALCULATION:
    1066             :         {
    1067          20 :             sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::IGNORE_TABS_AND_BLANKS_FOR_LINE_CALCULATION);
    1068          20 :             rValue.setValue( &bTmp, ::getBooleanCppuType() );
    1069             :         }
    1070          20 :         break;
    1071             :         case HANDLE_LOAD_READONLY:
    1072             :         {
    1073          20 :             rValue <<= mpDocSh->IsLoadReadonly();
    1074             :         }
    1075          20 :         break;
    1076             :         case HANDLE_DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE:
    1077             :         {
    1078          20 :             sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE);
    1079          20 :             rValue.setValue( &bTmp, ::getBooleanCppuType() );
    1080             :         }
    1081          20 :         break;
    1082             :         case HANDLE_CLIP_AS_CHARACTER_ANCHORED_WRITER_FLY_FRAMES:
    1083             :         {
    1084          20 :             sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::CLIP_AS_CHARACTER_ANCHORED_WRITER_FLY_FRAME);
    1085          20 :             rValue.setValue( &bTmp, ::getBooleanCppuType() );
    1086             :         }
    1087          20 :         break;
    1088             :         case HANDLE_UNIX_FORCE_ZERO_EXT_LEADING:
    1089             :         {
    1090          20 :             sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::UNIX_FORCE_ZERO_EXT_LEADING);
    1091          20 :             rValue.setValue( &bTmp, ::getBooleanCppuType() );
    1092             :         }
    1093          20 :         break;
    1094             :         case HANDLE_USE_OLD_PRINTER_METRICS:
    1095             :         {
    1096          20 :             sal_Bool bTmp = sal_False;
    1097          20 :             rValue.setValue( &bTmp, ::getBooleanCppuType() );
    1098             :         }
    1099          20 :         break;
    1100             :         case HANDLE_TABS_RELATIVE_TO_INDENT:
    1101             :         {
    1102          20 :             sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::TABS_RELATIVE_TO_INDENT);
    1103          20 :             rValue.setValue( &bTmp, ::getBooleanCppuType() );
    1104             :         }
    1105          20 :         break;
    1106             :         case HANDLE_RSID:
    1107             :         {
    1108          20 :             rValue <<= static_cast < sal_Int32 > ( mpDoc->getRsid() );
    1109             :         }
    1110          20 :         break;
    1111             :         case HANDLE_RSID_ROOT:
    1112             :         {
    1113          20 :             rValue <<= static_cast < sal_Int32 > ( mpDoc->getRsidRoot() );
    1114             :         }
    1115          20 :         break;
    1116             :         case HANDLE_PROTECT_FORM:
    1117             :         {
    1118          20 :             sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::PROTECT_FORM);
    1119          20 :             rValue.setValue( &bTmp, ::getBooleanCppuType() );
    1120             :         }
    1121          20 :         break;
    1122             :         // #i89181#
    1123             :         case HANDLE_TAB_AT_LEFT_INDENT_FOR_PARA_IN_LIST:
    1124             :         {
    1125          20 :             sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::TAB_AT_LEFT_INDENT_FOR_PARA_IN_LIST);
    1126          20 :             rValue.setValue( &bTmp, ::getBooleanCppuType() );
    1127             :         }
    1128          20 :         break;
    1129             :         case HANDLE_MODIFYPASSWORDINFO:
    1130             :         {
    1131          20 :             rValue <<= mpDocSh->GetModifyPasswordInfo();
    1132             :         }
    1133          20 :         break;
    1134             :         case HANDLE_MATH_BASELINE_ALIGNMENT:
    1135             :         {
    1136          20 :             sal_Bool bTmp = mpDoc->get( IDocumentSettingAccess::MATH_BASELINE_ALIGNMENT );
    1137          20 :             rValue.setValue( &bTmp, ::getBooleanCppuType() );
    1138             :         }
    1139          20 :         break;
    1140             :     case HANDLE_INVERT_BORDER_SPACING:
    1141             :     {
    1142          20 :             sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::INVERT_BORDER_SPACING);
    1143          20 :             rValue.setValue( &bTmp, ::getBooleanCppuType() );
    1144             :     }
    1145          20 :     break;
    1146             :         case HANDLE_COLLAPSE_EMPTY_CELL_PARA:
    1147             :         {
    1148          20 :             sal_Bool bTmp = mpDoc->get( IDocumentSettingAccess::COLLAPSE_EMPTY_CELL_PARA );
    1149          20 :             rValue.setValue( &bTmp, ::getBooleanCppuType() );
    1150             :         }
    1151          20 :         break;
    1152             :         case HANDLE_SMALL_CAPS_PERCENTAGE_66:
    1153             :         {
    1154          20 :             sal_Bool bTmp = mpDoc->get( IDocumentSettingAccess::SMALL_CAPS_PERCENTAGE_66 );
    1155          20 :             rValue.setValue( &bTmp, ::getBooleanCppuType() );
    1156             :         }
    1157          20 :         break;
    1158             :         case HANDLE_TAB_OVERFLOW:
    1159             :         {
    1160          20 :             sal_Bool bTmp = mpDoc->get( IDocumentSettingAccess::TAB_OVERFLOW );
    1161          20 :             rValue.setValue( &bTmp, ::getBooleanCppuType() );
    1162             :         }
    1163          20 :         break;
    1164             :         case HANDLE_UNBREAKABLE_NUMBERINGS:
    1165             :         {
    1166          20 :             sal_Bool bTmp = mpDoc->get( IDocumentSettingAccess::UNBREAKABLE_NUMBERINGS );
    1167          20 :             rValue.setValue( &bTmp, ::getBooleanCppuType() );
    1168             :         }
    1169          20 :         break;
    1170             :         case HANDLE_STYLES_NODEFAULT:
    1171             :         {
    1172          20 :             sal_Bool bTmp = mpDoc->get( IDocumentSettingAccess::STYLES_NODEFAULT );
    1173          20 :             rValue.setValue( &bTmp, ::getBooleanCppuType() );
    1174             :         }
    1175          20 :         break;
    1176             :         case HANDLE_FLOATTABLE_NOMARGINS:
    1177             :         {
    1178          20 :             sal_Bool bTmp = mpDoc->get( IDocumentSettingAccess::FLOATTABLE_NOMARGINS );
    1179          20 :             rValue.setValue( &bTmp, ::getBooleanCppuType() );
    1180             :         }
    1181          20 :         break;
    1182             :         case HANDLE_CLIPPED_PICTURES:
    1183             :         {
    1184          20 :             sal_Bool bTmp = mpDoc->get( IDocumentSettingAccess::CLIPPED_PICTURES );
    1185          20 :             rValue.setValue( &bTmp, ::getBooleanCppuType() );
    1186             :         }
    1187          20 :         break;
    1188             :         case HANDLE_BACKGROUND_PARA_OVER_DRAWINGS:
    1189             :         {
    1190          20 :             sal_Bool bTmp = mpDoc->get( IDocumentSettingAccess::BACKGROUND_PARA_OVER_DRAWINGS );
    1191          20 :             rValue.setValue( &bTmp, ::getBooleanCppuType() );
    1192             :         }
    1193          20 :         break;
    1194             :         case HANDLE_EMBED_FONTS:
    1195             :         {
    1196          20 :             sal_Bool bTmp = mpDoc->get( IDocumentSettingAccess::EMBED_FONTS );
    1197          20 :             rValue.setValue( &bTmp, ::getBooleanCppuType() );
    1198             :         }
    1199          20 :         break;
    1200             :         case HANDLE_EMBED_SYSTEM_FONTS:
    1201             :         {
    1202          20 :             sal_Bool bTmp = mpDoc->get( IDocumentSettingAccess::EMBED_SYSTEM_FONTS );
    1203          20 :             rValue.setValue( &bTmp, ::getBooleanCppuType() );
    1204             :         }
    1205          20 :         break;
    1206             :         case HANDLE_TAB_OVER_MARGIN:
    1207             :         {
    1208          20 :             sal_Bool bTmp = mpDoc->get( IDocumentSettingAccess::TAB_OVER_MARGIN );
    1209          20 :             rValue.setValue( &bTmp, ::getBooleanCppuType() );
    1210             :         }
    1211          20 :         break;
    1212             :         case HANDLE_SURROUND_TEXT_WRAP_SMALL:
    1213             :         {
    1214          20 :             sal_Bool bTmp = mpDoc->get( IDocumentSettingAccess::SURROUND_TEXT_WRAP_SMALL );
    1215          20 :             rValue.setValue( &bTmp, ::getBooleanCppuType() );
    1216             :         }
    1217          20 :         break;
    1218             :         default:
    1219           0 :             throw UnknownPropertyException();
    1220             :     }
    1221        1251 : }
    1222             : 
    1223        1251 : void SwXDocumentSettings::_postGetValues ()
    1224             :         throw(beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException )
    1225             : {
    1226        1251 :     mpDocSh = 0;
    1227        1251 :     mpDoc = 0;
    1228        1251 : }
    1229             : 
    1230             : // XServiceInfo
    1231           0 : OUString SAL_CALL SwXDocumentSettings::getImplementationName(  )
    1232             :     throw(RuntimeException, std::exception)
    1233             : {
    1234           0 :     return OUString("com.sun.star.comp.Writer.DocumentSettings");
    1235             : }
    1236             : 
    1237           2 : sal_Bool SAL_CALL SwXDocumentSettings::supportsService( const OUString& ServiceName )
    1238             :     throw(RuntimeException, std::exception)
    1239             : {
    1240           2 :     return cppu::supportsService(this, ServiceName);
    1241             : }
    1242             : 
    1243           2 : Sequence< OUString > SAL_CALL SwXDocumentSettings::getSupportedServiceNames(  )
    1244             :     throw(RuntimeException, std::exception)
    1245             : {
    1246           2 :     Sequence< OUString > aSeq( 3 );
    1247           2 :     aSeq[0] = "com.sun.star.document.Settings";
    1248           2 :     aSeq[1] = "com.sun.star.text.DocumentSettings";
    1249           2 :     aSeq[2] = "com.sun.star.text.PrintSettings";
    1250           2 :     return aSeq;
    1251             : }
    1252             : 
    1253             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10