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