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

Generated by: LCOV version 1.10