Branch data Line data Source code
1 : : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : : /*************************************************************************
3 : : *
4 : : * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 : : *
6 : : * Copyright 2000, 2010 Oracle and/or its affiliates.
7 : : *
8 : : * OpenOffice.org - a multi-platform office productivity suite
9 : : *
10 : : * This file is part of OpenOffice.org.
11 : : *
12 : : * OpenOffice.org is free software: you can redistribute it and/or modify
13 : : * it under the terms of the GNU Lesser General Public License version 3
14 : : * only, as published by the Free Software Foundation.
15 : : *
16 : : * OpenOffice.org is distributed in the hope that it will be useful,
17 : : * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 : : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 : : * GNU Lesser General Public License version 3 for more details
20 : : * (a copy is included in the LICENSE file that accompanied this code).
21 : : *
22 : : * You should have received a copy of the GNU Lesser General Public License
23 : : * version 3 along with OpenOffice.org. If not, see
24 : : * <http://www.openoffice.org/license.html>
25 : : * for a copy of the LGPLv3 License.
26 : : *
27 : : ************************************************************************/
28 : :
29 : : #include <hintids.hxx>
30 : : #include <sot/clsids.hxx>
31 : : #include <tools/stream.hxx>
32 : : #include <vcl/svapp.hxx>
33 : : #include <svl/mailenum.hxx>
34 : : #include <svx/svxids.hrc>
35 : : #include <editeng/svxenum.hxx>
36 : : #include <osl/diagnose.h>
37 : :
38 : : #include <tools/globname.hxx>
39 : : #include <swtypes.hxx>
40 : : #include <itabenum.hxx>
41 : : #include <modcfg.hxx>
42 : : #include <fldupde.hxx>
43 : : #include <unotools/syslocaleoptions.hxx>
44 : : #include <caption.hxx>
45 : : #include <com/sun/star/uno/Any.hxx>
46 : :
47 : : #include <unomid.h>
48 : :
49 : : using namespace utl;
50 : : using rtl::OUString;
51 : : using namespace com::sun::star::uno;
52 : :
53 : : #define GLOB_NAME_CALC 0
54 : : #define GLOB_NAME_IMPRESS 1
55 : : #define GLOB_NAME_DRAW 2
56 : : #define GLOB_NAME_MATH 3
57 : : #define GLOB_NAME_CHART 4
58 : :
59 : 584 : InsCaptionOpt* InsCaptionOptArr::Find(const SwCapObjType eType, const SvGlobalName *pOleId)
60 : : {
61 [ + - ][ # # ]: 584 : for (InsCapOptArr::iterator aI = m_aInsCapOptArr.begin(); aI != m_aInsCapOptArr.end(); ++aI)
[ + - ][ + - ]
[ - + ]
62 : : {
63 [ # # ]: 0 : InsCaptionOpt &rObj = *aI;
64 [ # # ][ # # ]: 0 : if (rObj.GetObjType() == eType && (eType != OLE_CAP || (pOleId && rObj.GetOleId() == *pOleId)))
[ # # ][ # # ]
[ # # ][ # # ]
65 : 0 : return &rObj;
66 : : }
67 : :
68 : 584 : return NULL;
69 : : }
70 : :
71 : 584 : void InsCaptionOptArr::Insert(InsCaptionOpt* pObj)
72 : : {
73 : 584 : m_aInsCapOptArr.push_back(pObj); //takes ownership
74 : 584 : }
75 : :
76 : 0 : const InsCaptionOpt* SwModuleOptions::GetCapOption(
77 : : sal_Bool bHTML, const SwCapObjType eType, const SvGlobalName *pOleId)
78 : : {
79 [ # # ]: 0 : if(bHTML)
80 : : {
81 : : OSL_FAIL("no caption option in sw/web!");
82 : 0 : return 0;
83 : : }
84 : : else
85 : : {
86 : 0 : sal_Bool bFound = sal_False;
87 [ # # ][ # # ]: 0 : if(eType == OLE_CAP && pOleId)
88 : : {
89 [ # # ][ # # ]: 0 : for( sal_uInt16 nId = 0; nId <= GLOB_NAME_CHART && !bFound; nId++)
[ # # ]
90 : 0 : bFound = *pOleId == aInsertConfig.aGlobalNames[nId ];
91 [ # # ]: 0 : if(!bFound)
92 : 0 : return aInsertConfig.pOLEMiscOpt;
93 : : }
94 : 0 : return aInsertConfig.pCapOptions->Find(eType, pOleId);
95 : : }
96 : : }
97 : :
98 : 0 : sal_Bool SwModuleOptions::SetCapOption(sal_Bool bHTML, const InsCaptionOpt* pOpt)
99 : : {
100 : 0 : sal_Bool bRet = sal_False;
101 : :
102 [ # # ]: 0 : if(bHTML)
103 : : {
104 : : OSL_FAIL("no caption option in sw/web!");
105 : : }
106 [ # # ]: 0 : else if (pOpt)
107 : : {
108 : 0 : sal_Bool bFound = sal_False;
109 [ # # ][ # # ]: 0 : if(pOpt->GetObjType() == OLE_CAP && &pOpt->GetOleId())
[ # # ]
110 : : {
111 [ # # ]: 0 : for( sal_uInt16 nId = 0; nId <= GLOB_NAME_CHART; nId++)
112 : 0 : bFound = pOpt->GetOleId() == aInsertConfig.aGlobalNames[nId ];
113 [ # # ]: 0 : if(!bFound)
114 : : {
115 [ # # ]: 0 : if(aInsertConfig.pOLEMiscOpt)
116 : 0 : *aInsertConfig.pOLEMiscOpt = *pOpt;
117 : : else
118 [ # # ]: 0 : aInsertConfig.pOLEMiscOpt = new InsCaptionOpt(*pOpt);
119 : : }
120 : : }
121 : :
122 : 0 : InsCaptionOptArr& rArr = *aInsertConfig.pCapOptions;
123 : 0 : InsCaptionOpt *pObj = rArr.Find(pOpt->GetObjType(), &pOpt->GetOleId());
124 : :
125 [ # # ]: 0 : if (pObj)
126 : : {
127 : 0 : *pObj = *pOpt;
128 : : }
129 : : else
130 [ # # ]: 0 : rArr.Insert(new InsCaptionOpt(*pOpt));
131 : :
132 : 0 : aInsertConfig.SetModified();
133 : 0 : bRet = sal_True;
134 : : }
135 : :
136 : 0 : return bRet;
137 : : }
138 : :
139 : 73 : SwModuleOptions::SwModuleOptions() :
140 : : aInsertConfig(sal_False),
141 : : aWebInsertConfig(sal_True),
142 : : aTableConfig(sal_False),
143 : : aWebTableConfig(sal_True),
144 [ + - ][ + - ]: 73 : bHideFieldTips(sal_False)
[ + - ][ + - ]
[ + - ][ + - ]
145 : : {
146 : 73 : }
147 : :
148 : 75 : String SwModuleOptions::ConvertWordDelimiter(const String& rDelim, sal_Bool bFromUI)
149 : : {
150 : 75 : String sReturn;
151 [ + + ]: 75 : if(bFromUI)
152 : : {
153 [ + - ]: 73 : String sChar;
154 : :
155 : 73 : xub_StrLen i = 0;
156 : : sal_Unicode c;
157 : :
158 [ + + ]: 511 : while (i < rDelim.Len())
159 : : {
160 : 438 : c = rDelim.GetChar(i++);
161 : :
162 [ + + ]: 438 : if (c == '\\')
163 : : {
164 : 219 : c = rDelim.GetChar(i++);
165 : :
166 [ + + - + : 219 : switch (c)
- ]
167 : : {
168 [ + - ]: 73 : case 'n': sReturn += '\n'; break;
169 [ + - ]: 73 : case 't': sReturn += '\t'; break;
170 [ # # ]: 0 : case '\\': sReturn += '\\'; break;
171 : :
172 : : case 'x':
173 : : {
174 : : sal_Unicode nVal, nChar;
175 : 73 : sal_Bool bValidData = sal_True;
176 : : xub_StrLen n;
177 [ + + ][ + - ]: 219 : for( n = 0, nChar = 0; n < 2 && i < rDelim.Len(); ++n, ++i )
[ + + ]
178 : : {
179 [ + - ][ - + ]: 146 : if( ((nVal = rDelim.GetChar( i )) >= '0') && ( nVal <= '9') )
[ - + ]
180 : 0 : nVal -= '0';
181 [ + - ][ - + ]: 146 : else if( (nVal >= 'A') && (nVal <= 'F') )
182 : 0 : nVal -= 'A' - 10;
183 [ + - ][ + - ]: 146 : else if( (nVal >= 'a') && (nVal <= 'f') )
184 : 146 : nVal -= 'a' - 10;
185 : : else
186 : : {
187 : : OSL_FAIL("wrong hex value" );
188 : 0 : bValidData = sal_False;
189 : 0 : break;
190 : : }
191 : :
192 : 146 : (nChar <<= 4 );
193 : 146 : nChar = nChar + nVal;
194 : : }
195 [ + - ]: 73 : if( bValidData )
196 [ + - ]: 73 : sReturn += nChar;
197 : 73 : break;
198 : : }
199 : :
200 : : default: // Unknown, so insert backslash
201 [ # # ]: 0 : sReturn += '\\';
202 : 0 : i--;
203 : 219 : break;
204 : : }
205 : : }
206 : : else
207 [ + - ]: 219 : sReturn += c;
208 [ + - ]: 73 : }
209 : : }
210 : : else
211 : : {
212 [ + + ]: 44 : for (xub_StrLen i = 0; i < rDelim.Len(); i++)
213 : : {
214 : 42 : sal_Unicode c = rDelim.GetChar(i);
215 : :
216 [ + + - + ]: 42 : switch (c)
217 : : {
218 [ + - ]: 2 : case '\n': sReturn.AppendAscii(RTL_CONSTASCII_STRINGPARAM("\\n")); break;
219 [ + - ]: 2 : case '\t': sReturn.AppendAscii(RTL_CONSTASCII_STRINGPARAM("\\t")); break;
220 [ # # ]: 0 : case '\\': sReturn.AppendAscii(RTL_CONSTASCII_STRINGPARAM("\\\\")); break;
221 : :
222 : : default:
223 [ + - ][ + + ]: 38 : if( c <= 0x1f || c >= 0x7f )
224 : : {
225 [ + - ]: 2 : sReturn.AppendAscii( RTL_CONSTASCII_STRINGPARAM( "\\x" ))
226 [ + - ][ + - ]: 4 : += String::CreateFromInt32( c, 16 );
[ + - ]
227 : : }
228 : : else
229 [ + - ]: 36 : sReturn += c;
230 : : }
231 : : }
232 : : }
233 : 75 : return sReturn;
234 : : }
235 : :
236 : 73 : const Sequence<OUString>& SwRevisionConfig::GetPropertyNames()
237 : : {
238 [ + - ][ + - ]: 73 : static Sequence<OUString> aNames;
[ + - ][ # # ]
239 [ + - ]: 73 : if(!aNames.getLength())
240 : : {
241 : 73 : const int nCount = 8;
242 : 73 : aNames.realloc(nCount);
243 : : static const char* aPropNames[] =
244 : : {
245 : : "TextDisplay/Insert/Attribute", // 0
246 : : "TextDisplay/Insert/Color", // 1
247 : : "TextDisplay/Delete/Attribute", // 2
248 : : "TextDisplay/Delete/Color", // 3
249 : : "TextDisplay/ChangedAttribute/Attribute", // 4
250 : : "TextDisplay/ChangedAttribute/Color", // 5
251 : : "LinesChanged/Mark", // 6
252 : : "LinesChanged/Color" // 7
253 : : };
254 : 73 : OUString* pNames = aNames.getArray();
255 [ + + ]: 657 : for(int i = 0; i < nCount; i++)
256 : 584 : pNames[i] = OUString::createFromAscii(aPropNames[i]);
257 : : }
258 : 73 : return aNames;
259 : : }
260 : :
261 : 73 : SwRevisionConfig::SwRevisionConfig() :
262 : : ConfigItem(C2U("Office.Writer/Revision"),
263 [ + - ][ + - ]: 73 : CONFIG_MODE_DELAYED_UPDATE|CONFIG_MODE_RELEASE_TREE)
[ + - ][ + - ]
264 : : {
265 : 73 : aInsertAttr.nItemId = SID_ATTR_CHAR_UNDERLINE;
266 : 73 : aInsertAttr.nAttr = UNDERLINE_SINGLE;
267 : 73 : aInsertAttr.nColor = COL_TRANSPARENT;
268 : 73 : aDeletedAttr.nItemId = SID_ATTR_CHAR_STRIKEOUT;
269 : 73 : aDeletedAttr.nAttr = STRIKEOUT_SINGLE;
270 : 73 : aDeletedAttr.nColor = COL_TRANSPARENT;
271 : 73 : aFormatAttr.nItemId = SID_ATTR_CHAR_WEIGHT;
272 : 73 : aFormatAttr.nAttr = WEIGHT_BOLD;
273 : 73 : aFormatAttr.nColor = COL_BLACK;
274 : :
275 [ + - ]: 73 : Load();
276 : 73 : }
277 : :
278 : 40 : SwRevisionConfig::~SwRevisionConfig()
279 : : {
280 [ - + ]: 40 : }
281 : :
282 : 0 : sal_Int32 lcl_ConvertAttrToCfg(const AuthorCharAttr& rAttr)
283 : : {
284 : 0 : sal_Int32 nRet = 0;
285 [ # # # # : 0 : switch(rAttr.nItemId)
# # # ]
286 : : {
287 : 0 : case SID_ATTR_CHAR_WEIGHT: nRet = 1; break;
288 : 0 : case SID_ATTR_CHAR_POSTURE: nRet = 2; break;
289 [ # # ]: 0 : case SID_ATTR_CHAR_UNDERLINE: nRet = UNDERLINE_SINGLE == rAttr.nAttr ? 3 : 4; break;
290 : 0 : case SID_ATTR_CHAR_STRIKEOUT: nRet = 3; break;
291 : : case SID_ATTR_CHAR_CASEMAP:
292 : : {
293 [ # # # # : 0 : switch(rAttr.nAttr)
# ]
294 : : {
295 : 0 : case SVX_CASEMAP_VERSALIEN : nRet = 5;break;
296 : 0 : case SVX_CASEMAP_GEMEINE : nRet = 6;break;
297 : 0 : case SVX_CASEMAP_KAPITAELCHEN: nRet = 7;break;
298 : 0 : case SVX_CASEMAP_TITEL : nRet = 8;break;
299 : : }
300 : : }
301 : 0 : break;
302 : 0 : case SID_ATTR_BRUSH : nRet = 9; break;
303 : : }
304 : 0 : return nRet;
305 : : }
306 : :
307 : 0 : void SwRevisionConfig::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {}
308 : :
309 : 0 : void SwRevisionConfig::Commit()
310 : : {
311 [ # # ]: 0 : const Sequence<OUString>& aNames = GetPropertyNames();
312 [ # # ]: 0 : Sequence<Any> aValues(aNames.getLength());
313 [ # # ]: 0 : Any* pValues = aValues.getArray();
314 : :
315 [ # # ]: 0 : for(int nProp = 0; nProp < aNames.getLength(); nProp++)
316 : : {
317 : 0 : sal_Int32 nVal = -1;
318 [ # # # # : 0 : switch(nProp)
# # # #
# ]
319 : : {
320 : 0 : case 0 : nVal = lcl_ConvertAttrToCfg(aInsertAttr); break;
321 : 0 : case 1 : nVal = aInsertAttr.nColor ; break;
322 : 0 : case 2 : nVal = lcl_ConvertAttrToCfg(aDeletedAttr); break;
323 : 0 : case 3 : nVal = aDeletedAttr.nColor ; break;
324 : 0 : case 4 : nVal = lcl_ConvertAttrToCfg(aFormatAttr); break;
325 : 0 : case 5 : nVal = aFormatAttr.nColor ; break;
326 : 0 : case 6 : nVal = nMarkAlign ; break;
327 : 0 : case 7 : nVal = aMarkColor.GetColor(); break;
328 : : }
329 [ # # ]: 0 : pValues[nProp] <<= nVal;
330 : : }
331 [ # # ][ # # ]: 0 : PutProperties(aNames, aValues);
332 : 0 : }
333 : :
334 : 219 : void lcl_ConvertCfgToAttr(sal_Int32 nVal, AuthorCharAttr& rAttr, sal_Bool bDelete = sal_False)
335 : : {
336 : 219 : rAttr.nItemId = rAttr.nAttr = 0;
337 [ + - + - : 219 : switch(nVal)
- - - - -
- ]
338 : : {
339 : 73 : case 1: rAttr.nItemId = SID_ATTR_CHAR_WEIGHT; rAttr.nAttr = WEIGHT_BOLD ; break;
340 : 0 : case 2: rAttr.nItemId = SID_ATTR_CHAR_POSTURE; rAttr.nAttr = ITALIC_NORMAL ; break;
341 [ + + ]: 146 : case 3: if(bDelete)
342 : : {
343 : 73 : rAttr.nItemId = SID_ATTR_CHAR_STRIKEOUT;
344 : 73 : rAttr.nAttr = STRIKEOUT_SINGLE;
345 : : }
346 : : else
347 : : {
348 : 73 : rAttr.nItemId = SID_ATTR_CHAR_UNDERLINE;
349 : 73 : rAttr.nAttr = UNDERLINE_SINGLE;
350 : : }
351 : 146 : break;
352 : 0 : case 4: rAttr.nItemId = SID_ATTR_CHAR_UNDERLINE;rAttr.nAttr = UNDERLINE_DOUBLE ; break;
353 : 0 : case 5: rAttr.nItemId = SID_ATTR_CHAR_CASEMAP; rAttr.nAttr = SVX_CASEMAP_VERSALIEN ; break;
354 : 0 : case 6: rAttr.nItemId = SID_ATTR_CHAR_CASEMAP; rAttr.nAttr = SVX_CASEMAP_GEMEINE ; break;
355 : 0 : case 7: rAttr.nItemId = SID_ATTR_CHAR_CASEMAP; rAttr.nAttr = SVX_CASEMAP_KAPITAELCHEN ; break;
356 : 0 : case 8: rAttr.nItemId = SID_ATTR_CHAR_CASEMAP; rAttr.nAttr = SVX_CASEMAP_TITEL ; break;
357 : 0 : case 9: rAttr.nItemId = SID_ATTR_BRUSH; break;
358 : : }
359 : 219 : }
360 : 73 : void SwRevisionConfig::Load()
361 : : {
362 [ + - ]: 73 : const Sequence<OUString>& aNames = GetPropertyNames();
363 [ + - ]: 73 : Sequence<Any> aValues = GetProperties(aNames);
364 : 73 : const Any* pValues = aValues.getConstArray();
365 : : OSL_ENSURE(aValues.getLength() == aNames.getLength(), "GetProperties failed");
366 [ + - ]: 73 : if(aValues.getLength() == aNames.getLength())
367 : : {
368 [ + + ]: 657 : for(int nProp = 0; nProp < aNames.getLength(); nProp++)
369 : : {
370 [ + - ]: 584 : if(pValues[nProp].hasValue())
371 : : {
372 : 584 : sal_Int32 nVal = 0;
373 : 584 : pValues[nProp] >>= nVal;
374 [ + + + + : 584 : switch(nProp)
+ + + +
- ]
375 : : {
376 : 73 : case 0 : lcl_ConvertCfgToAttr(nVal, aInsertAttr); break;
377 : 73 : case 1 : aInsertAttr.nColor = nVal; break;
378 : 73 : case 2 : lcl_ConvertCfgToAttr(nVal, aDeletedAttr, sal_True); break;
379 : 73 : case 3 : aDeletedAttr.nColor = nVal; break;
380 : 73 : case 4 : lcl_ConvertCfgToAttr(nVal, aFormatAttr); break;
381 : 73 : case 5 : aFormatAttr.nColor = nVal; break;
382 : 73 : case 6 : nMarkAlign = sal::static_int_cast< sal_uInt16, sal_Int32>(nVal); break;
383 : 584 : case 7 : aMarkColor.SetColor(nVal); break;
384 : : }
385 : : }
386 : : }
387 [ + - ]: 73 : }
388 : 73 : }
389 : :
390 : : enum InsertConfigProp
391 : : {
392 : : INS_PROP_TABLE_HEADER = 0,
393 : : INS_PROP_TABLE_REPEATHEADER, // 1
394 : : INS_PROP_TABLE_BORDER, // 2
395 : : INS_PROP_TABLE_SPLIT, // 3 from here not in writer/web
396 : : INS_PROP_CAP_AUTOMATIC, // 4
397 : : INS_PROP_CAP_CAPTIONORDERNUMBERINGFIRST, // 5
398 : : INS_PROP_CAP_OBJECT_TABLE_ENABLE, // 6
399 : : INS_PROP_CAP_OBJECT_TABLE_CATEGORY, // 7
400 : : INS_PROP_CAP_OBJECT_TABLE_NUMBERING, // 8
401 : : INS_PROP_CAP_OBJECT_TABLE_NUMBERINGSEPARATOR, // 9
402 : : INS_PROP_CAP_OBJECT_TABLE_CAPTIONTEXT, //10
403 : : INS_PROP_CAP_OBJECT_TABLE_DELIMITER, //11
404 : : INS_PROP_CAP_OBJECT_TABLE_LEVEL, //12
405 : : INS_PROP_CAP_OBJECT_TABLE_POSITION, //13
406 : : INS_PROP_CAP_OBJECT_TABLE_CHARACTERSTYLE, //14
407 : : INS_PROP_CAP_OBJECT_FRAME_ENABLE, //15
408 : : INS_PROP_CAP_OBJECT_FRAME_CATEGORY, //16
409 : : INS_PROP_CAP_OBJECT_FRAME_NUMBERING, //17
410 : : INS_PROP_CAP_OBJECT_FRAME_NUMBERINGSEPARATOR, //18
411 : : INS_PROP_CAP_OBJECT_FRAME_CAPTIONTEXT, //19
412 : : INS_PROP_CAP_OBJECT_FRAME_DELIMITER, //20
413 : : INS_PROP_CAP_OBJECT_FRAME_LEVEL, //21
414 : : INS_PROP_CAP_OBJECT_FRAME_POSITION, //22
415 : : INS_PROP_CAP_OBJECT_FRAME_CHARACTERSTYLE, //23
416 : : INS_PROP_CAP_OBJECT_GRAPHIC_ENABLE, //24
417 : : INS_PROP_CAP_OBJECT_GRAPHIC_CATEGORY, //25
418 : : INS_PROP_CAP_OBJECT_GRAPHIC_NUMBERING, //26
419 : : INS_PROP_CAP_OBJECT_GRAPHIC_NUMBERINGSEPARATOR, //27
420 : : INS_PROP_CAP_OBJECT_GRAPHIC_CAPTIONTEXT, //28
421 : : INS_PROP_CAP_OBJECT_GRAPHIC_DELIMITER, //29
422 : : INS_PROP_CAP_OBJECT_GRAPHIC_LEVEL, //30
423 : : INS_PROP_CAP_OBJECT_GRAPHIC_POSITION, //31
424 : : INS_PROP_CAP_OBJECT_GRAPHIC_CHARACTERSTYLE, //32
425 : : INS_PROP_CAP_OBJECT_GRAPHIC_APPLYATTRIBUTES, //33
426 : : INS_PROP_CAP_OBJECT_CALC_ENABLE, //34
427 : : INS_PROP_CAP_OBJECT_CALC_CATEGORY, //35
428 : : INS_PROP_CAP_OBJECT_CALC_NUMBERING, //36
429 : : INS_PROP_CAP_OBJECT_CALC_NUMBERINGSEPARATOR, //37
430 : : INS_PROP_CAP_OBJECT_CALC_CAPTIONTEXT, //38
431 : : INS_PROP_CAP_OBJECT_CALC_DELIMITER, //39
432 : : INS_PROP_CAP_OBJECT_CALC_LEVEL, //40
433 : : INS_PROP_CAP_OBJECT_CALC_POSITION, //41
434 : : INS_PROP_CAP_OBJECT_CALC_CHARACTERSTYLE, //42
435 : : INS_PROP_CAP_OBJECT_CALC_APPLYATTRIBUTES, //43
436 : : INS_PROP_CAP_OBJECT_IMPRESS_ENABLE, //44
437 : : INS_PROP_CAP_OBJECT_IMPRESS_CATEGORY, //45
438 : : INS_PROP_CAP_OBJECT_IMPRESS_NUMBERING, //46
439 : : INS_PROP_CAP_OBJECT_IMPRESS_NUMBERINGSEPARATOR, //47
440 : : INS_PROP_CAP_OBJECT_IMPRESS_CAPTIONTEXT, //48
441 : : INS_PROP_CAP_OBJECT_IMPRESS_DELIMITER, //49
442 : : INS_PROP_CAP_OBJECT_IMPRESS_LEVEL, //50
443 : : INS_PROP_CAP_OBJECT_IMPRESS_POSITION, //51
444 : : INS_PROP_CAP_OBJECT_IMPRESS_CHARACTERSTYLE, //52
445 : : INS_PROP_CAP_OBJECT_IMPRESS_APPLYATTRIBUTES, //53
446 : : INS_PROP_CAP_OBJECT_CHART_ENABLE, //54
447 : : INS_PROP_CAP_OBJECT_CHART_CATEGORY, //55
448 : : INS_PROP_CAP_OBJECT_CHART_NUMBERING, //56
449 : : INS_PROP_CAP_OBJECT_CHART_NUMBERINGSEPARATOR, //57
450 : : INS_PROP_CAP_OBJECT_CHART_CAPTIONTEXT, //58
451 : : INS_PROP_CAP_OBJECT_CHART_DELIMITER, //59
452 : : INS_PROP_CAP_OBJECT_CHART_LEVEL, //60
453 : : INS_PROP_CAP_OBJECT_CHART_POSITION, //61
454 : : INS_PROP_CAP_OBJECT_CHART_CHARACTERSTYLE, //62
455 : : INS_PROP_CAP_OBJECT_CHART_APPLYATTRIBUTES, //63
456 : : INS_PROP_CAP_OBJECT_FORMULA_ENABLE, //64
457 : : INS_PROP_CAP_OBJECT_FORMULA_CATEGORY, //65
458 : : INS_PROP_CAP_OBJECT_FORMULA_NUMBERING, //66
459 : : INS_PROP_CAP_OBJECT_FORMULA_NUMBERINGSEPARATOR, //67
460 : : INS_PROP_CAP_OBJECT_FORMULA_CAPTIONTEXT, //68
461 : : INS_PROP_CAP_OBJECT_FORMULA_DELIMITER, //69
462 : : INS_PROP_CAP_OBJECT_FORMULA_LEVEL, //70
463 : : INS_PROP_CAP_OBJECT_FORMULA_POSITION, //71
464 : : INS_PROP_CAP_OBJECT_FORMULA_CHARACTERSTYLE, //72
465 : : INS_PROP_CAP_OBJECT_FORMULA_APPLYATTRIBUTES, //73
466 : : INS_PROP_CAP_OBJECT_DRAW_ENABLE, //74
467 : : INS_PROP_CAP_OBJECT_DRAW_CATEGORY, //75
468 : : INS_PROP_CAP_OBJECT_DRAW_NUMBERING, //76
469 : : INS_PROP_CAP_OBJECT_DRAW_NUMBERINGSEPARATOR, //77
470 : : INS_PROP_CAP_OBJECT_DRAW_CAPTIONTEXT, //78
471 : : INS_PROP_CAP_OBJECT_DRAW_DELIMITER, //79
472 : : INS_PROP_CAP_OBJECT_DRAW_LEVEL, //80
473 : : INS_PROP_CAP_OBJECT_DRAW_POSITION, //81
474 : : INS_PROP_CAP_OBJECT_DRAW_CHARACTERSTYLE, //82
475 : : INS_PROP_CAP_OBJECT_DRAW_APPLYATTRIBUTES, //83
476 : : INS_PROP_CAP_OBJECT_OLEMISC_ENABLE, //84
477 : : INS_PROP_CAP_OBJECT_OLEMISC_CATEGORY, //85
478 : : INS_PROP_CAP_OBJECT_OLEMISC_NUMBERING, //86
479 : : INS_PROP_CAP_OBJECT_OLEMISC_NUMBERINGSEPARATOR, //87
480 : : INS_PROP_CAP_OBJECT_OLEMISC_CAPTIONTEXT, //88
481 : : INS_PROP_CAP_OBJECT_OLEMISC_DELIMITER, //89
482 : : INS_PROP_CAP_OBJECT_OLEMISC_LEVEL, //90
483 : : INS_PROP_CAP_OBJECT_OLEMISC_POSITION, //91
484 : : INS_PROP_CAP_OBJECT_OLEMISC_CHARACTERSTYLE, //92
485 : : INS_PROP_CAP_OBJECT_OLEMISC_APPLYATTRIBUTES //93
486 : : };
487 : 146 : const Sequence<OUString>& SwInsertConfig::GetPropertyNames()
488 : : {
489 [ + + ][ + - ]: 146 : static Sequence<OUString> aNames;
[ + - ][ # # ]
490 [ + + ][ + - ]: 146 : static Sequence<OUString> aWebNames;
[ + - ][ # # ]
491 [ + + ]: 146 : if(!aNames.getLength())
492 : : {
493 : : static const char* aPropNames[] =
494 : : {
495 : : "Table/Header", // 0
496 : : "Table/RepeatHeader", // 1
497 : : "Table/Border", // 2
498 : : "Table/Split", // 3 from here not in writer/web
499 : : "Caption/Automatic", // 4
500 : : "Caption/CaptionOrderNumberingFirst", // 5
501 : : "Caption/WriterObject/Table/Enable", // 6
502 : : "Caption/WriterObject/Table/Settings/Category", // 7
503 : : "Caption/WriterObject/Table/Settings/Numbering", // 8
504 : : "Caption/WriterObject/Table/Settings/NumberingSeparator", // 9
505 : : "Caption/WriterObject/Table/Settings/CaptionText", //10
506 : : "Caption/WriterObject/Table/Settings/Delimiter", //11
507 : : "Caption/WriterObject/Table/Settings/Level", //12
508 : : "Caption/WriterObject/Table/Settings/Position", //13
509 : : "Caption/WriterObject/Table/Settings/CharacterStyle", //14
510 : : "Caption/WriterObject/Frame/Enable", //15
511 : : "Caption/WriterObject/Frame/Settings/Category", //16
512 : : "Caption/WriterObject/Frame/Settings/Numbering", //17
513 : : "Caption/WriterObject/Frame/Settings/NumberingSeparator", //18
514 : : "Caption/WriterObject/Frame/Settings/CaptionText", //19
515 : : "Caption/WriterObject/Frame/Settings/Delimiter", //20
516 : : "Caption/WriterObject/Frame/Settings/Level", //21
517 : : "Caption/WriterObject/Frame/Settings/Position", //22
518 : : "Caption/WriterObject/Frame/Settings/CharacterStyle", //23
519 : : "Caption/WriterObject/Graphic/Enable", //24
520 : : "Caption/WriterObject/Graphic/Settings/Category", //25
521 : : "Caption/WriterObject/Graphic/Settings/Numbering", //26
522 : : "Caption/WriterObject/Graphic/Settings/NumberingSeparator", //27
523 : : "Caption/WriterObject/Graphic/Settings/CaptionText", //28
524 : : "Caption/WriterObject/Graphic/Settings/Delimiter", //29
525 : : "Caption/WriterObject/Graphic/Settings/Level", //30
526 : : "Caption/WriterObject/Graphic/Settings/Position", //31
527 : : "Caption/WriterObject/Graphic/Settings/CharacterStyle", //32
528 : : "Caption/WriterObject/Graphic/Settings/ApplyAttributes", //33
529 : : "Caption/OfficeObject/Calc/Enable", //34
530 : : "Caption/OfficeObject/Calc/Settings/Category", //35
531 : : "Caption/OfficeObject/Calc/Settings/Numbering", //36
532 : : "Caption/OfficeObject/Calc/Settings/NumberingSeparator", //37
533 : : "Caption/OfficeObject/Calc/Settings/CaptionText", //38
534 : : "Caption/OfficeObject/Calc/Settings/Delimiter", //39
535 : : "Caption/OfficeObject/Calc/Settings/Level", //40
536 : : "Caption/OfficeObject/Calc/Settings/Position", //41
537 : : "Caption/OfficeObject/Calc/Settings/CharacterStyle", //42
538 : : "Caption/OfficeObject/Calc/Settings/ApplyAttributes", //43
539 : : "Caption/OfficeObject/Impress/Enable", //44
540 : : "Caption/OfficeObject/Impress/Settings/Category", //45
541 : : "Caption/OfficeObject/Impress/Settings/Numbering", //46
542 : : "Caption/OfficeObject/Impress/Settings/NumberingSeparator", //47
543 : : "Caption/OfficeObject/Impress/Settings/CaptionText", //48
544 : : "Caption/OfficeObject/Impress/Settings/Delimiter", //49
545 : : "Caption/OfficeObject/Impress/Settings/Level", //50
546 : : "Caption/OfficeObject/Impress/Settings/Position", //51
547 : : "Caption/OfficeObject/Impress/Settings/CharacterStyle", //52
548 : : "Caption/OfficeObject/Impress/Settings/ApplyAttributes", //53
549 : : "Caption/OfficeObject/Chart/Enable", //54
550 : : "Caption/OfficeObject/Chart/Settings/Category", //55
551 : : "Caption/OfficeObject/Chart/Settings/Numbering", //56
552 : : "Caption/OfficeObject/Chart/Settings/NumberingSeparator", //57
553 : : "Caption/OfficeObject/Chart/Settings/CaptionText", //58
554 : : "Caption/OfficeObject/Chart/Settings/Delimiter", //59
555 : : "Caption/OfficeObject/Chart/Settings/Level", //60
556 : : "Caption/OfficeObject/Chart/Settings/Position", //61
557 : : "Caption/OfficeObject/Chart/Settings/CharacterStyle", //62
558 : : "Caption/OfficeObject/Chart/Settings/ApplyAttributes", //63
559 : : "Caption/OfficeObject/Formula/Enable", //64
560 : : "Caption/OfficeObject/Formula/Settings/Category", //65
561 : : "Caption/OfficeObject/Formula/Settings/Numbering", //66
562 : : "Caption/OfficeObject/Formula/Settings/NumberingSeparator", //67
563 : : "Caption/OfficeObject/Formula/Settings/CaptionText", //68
564 : : "Caption/OfficeObject/Formula/Settings/Delimiter", //69
565 : : "Caption/OfficeObject/Formula/Settings/Level", //70
566 : : "Caption/OfficeObject/Formula/Settings/Position", //71
567 : : "Caption/OfficeObject/Formula/Settings/CharacterStyle", //72
568 : : "Caption/OfficeObject/Formula/Settings/ApplyAttributes", //73
569 : : "Caption/OfficeObject/Draw/Enable", //74
570 : : "Caption/OfficeObject/Draw/Settings/Category", //75
571 : : "Caption/OfficeObject/Draw/Settings/Numbering", //76
572 : : "Caption/OfficeObject/Draw/Settings/NumberingSeparator", //77
573 : : "Caption/OfficeObject/Draw/Settings/CaptionText", //78
574 : : "Caption/OfficeObject/Draw/Settings/Delimiter", //79
575 : : "Caption/OfficeObject/Draw/Settings/Level", //80
576 : : "Caption/OfficeObject/Draw/Settings/Position", //81
577 : : "Caption/OfficeObject/Draw/Settings/CharacterStyle", //82
578 : : "Caption/OfficeObject/Draw/Settings/ApplyAttributes", //83
579 : : "Caption/OfficeObject/OLEMisc/Enable", //84
580 : : "Caption/OfficeObject/OLEMisc/Settings/Category", //85
581 : : "Caption/OfficeObject/OLEMisc/Settings/Numbering", //86
582 : : "Caption/OfficeObject/OLEMisc/Settings/NumberingSeparator", //87
583 : : "Caption/OfficeObject/OLEMisc/Settings/CaptionText", //88
584 : : "Caption/OfficeObject/OLEMisc/Settings/Delimiter", //89
585 : : "Caption/OfficeObject/OLEMisc/Settings/Level", //90
586 : : "Caption/OfficeObject/OLEMisc/Settings/Position", //91
587 : : "Caption/OfficeObject/OLEMisc/Settings/CharacterStyle", //92
588 : : "Caption/OfficeObject/OLEMisc/Settings/ApplyAttributes" //93
589 : : };
590 : 73 : const int nCount = INS_PROP_CAP_OBJECT_OLEMISC_APPLYATTRIBUTES + 1;
591 : 73 : const int nWebCount = INS_PROP_TABLE_BORDER + 1;
592 : 73 : aNames.realloc(nCount);
593 : 73 : aWebNames.realloc(nWebCount);
594 : 73 : OUString* pNames = aNames.getArray();
595 : 73 : OUString* pWebNames = aWebNames.getArray();
596 : : int i;
597 [ + + ]: 6935 : for(i = 0; i < nCount; i++)
598 : 6862 : pNames[i] = rtl::OUString::createFromAscii(aPropNames[i]);
599 [ + + ]: 292 : for(i = 0; i < nWebCount; i++)
600 : 219 : pWebNames[i] = rtl::OUString::createFromAscii(aPropNames[i]);
601 : : }
602 [ + + ]: 146 : return bIsWeb ? aWebNames : aNames;
603 : : }
604 : :
605 : 146 : SwInsertConfig::SwInsertConfig(sal_Bool bWeb) :
606 : : ConfigItem(bWeb ? C2U("Office.WriterWeb/Insert") : C2U("Office.Writer/Insert"),
607 : : CONFIG_MODE_DELAYED_UPDATE|CONFIG_MODE_RELEASE_TREE),
608 : : pCapOptions(0),
609 : : pOLEMiscOpt(0),
610 : : bInsWithCaption( sal_False ),
611 : : bCaptionOrderNumberingFirst( sal_False ),
612 : : aInsTblOpts(0,0),
613 [ + + ][ + - ]: 876 : bIsWeb(bWeb)
[ + - ][ + + ]
[ # # # # ]
614 : : {
615 [ + - ][ + - ]: 146 : aGlobalNames[GLOB_NAME_CALC ] = SvGlobalName(SO3_SC_CLASSID);
[ + - ]
616 [ + - ][ + - ]: 146 : aGlobalNames[GLOB_NAME_IMPRESS] = SvGlobalName(SO3_SIMPRESS_CLASSID);
[ + - ]
617 [ + - ][ + - ]: 146 : aGlobalNames[GLOB_NAME_DRAW ] = SvGlobalName(SO3_SDRAW_CLASSID);
[ + - ]
618 [ + - ][ + - ]: 146 : aGlobalNames[GLOB_NAME_MATH ] = SvGlobalName(SO3_SM_CLASSID);
[ + - ]
619 [ + - ][ + - ]: 146 : aGlobalNames[GLOB_NAME_CHART ] = SvGlobalName(SO3_SCH_CLASSID);
[ + - ]
620 [ + + ]: 146 : if(!bIsWeb)
621 [ + - ][ + - ]: 73 : pCapOptions = new InsCaptionOptArr;
622 : :
623 [ + - ]: 146 : Load();
624 [ # # # # ]: 146 : }
625 : :
626 [ + - ]: 480 : SwInsertConfig::~SwInsertConfig()
627 : : {
628 [ + + ][ + - ]: 80 : delete pCapOptions;
629 [ + + ][ + - ]: 80 : delete pOLEMiscOpt;
630 [ + - ][ + + ]: 560 : }
[ - + ]
[ # # # # ]
631 : :
632 : 0 : void lcl_WriteOpt(const InsCaptionOpt& rOpt, Any* pValues, sal_Int32 nProp, sal_Int32 nOffset)
633 : : {
634 [ # # # # : 0 : switch(nOffset)
# # # # #
# # ]
635 : : {
636 : : case 0:
637 : : {
638 : 0 : sal_Bool bTemp = rOpt.UseCaption();
639 [ # # ]: 0 : pValues[nProp].setValue(&bTemp, ::getBooleanCppuType());
640 : : }
641 : 0 : break;//Enable
642 [ # # ]: 0 : case 1: pValues[nProp] <<= OUString(rOpt.GetCategory()); break;//Category
643 [ # # ]: 0 : case 2: pValues[nProp] <<= (sal_Int32)rOpt.GetNumType(); break;//Numbering",
644 : 0 : case 3: pValues[nProp] <<= rOpt.GetNumSeparator(); break;//NumberingSeparator",
645 [ # # ]: 0 : case 4: pValues[nProp] <<= OUString(rOpt.GetCaption()); break;//CaptionText",
646 [ # # ]: 0 : case 5: pValues[nProp] <<= OUString(rOpt.GetSeparator());break;//Delimiter",
647 [ # # ]: 0 : case 6: pValues[nProp] <<= (sal_Int32)rOpt.GetLevel(); break;//Level",
648 [ # # ]: 0 : case 7: pValues[nProp] <<= (sal_Int32)rOpt.GetPos(); break;//Position",
649 : 0 : case 8: pValues[nProp] <<= (::rtl::OUString&)rOpt.GetCharacterStyle(); break; //CharacterStyle
650 [ # # ]: 0 : case 9: pValues[nProp] <<= rOpt.CopyAttributes(); break; //ApplyAttributes
651 : : }
652 : 0 : }
653 : :
654 : 0 : void SwInsertConfig::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {}
655 : :
656 : 0 : void SwInsertConfig::Commit()
657 : : {
658 [ # # ]: 0 : const Sequence<OUString>& aNames = GetPropertyNames();
659 [ # # ]: 0 : Sequence<Any> aValues(aNames.getLength());
660 [ # # ]: 0 : Any* pValues = aValues.getArray();
661 : :
662 [ # # ]: 0 : const Type& rType = ::getBooleanCppuType();
663 [ # # ]: 0 : for(int nProp = 0; nProp < aNames.getLength(); nProp++)
664 : : {
665 : 0 : const InsCaptionOpt* pWriterTableOpt = 0;
666 : 0 : const InsCaptionOpt* pWriterFrameOpt = 0;
667 : 0 : const InsCaptionOpt* pWriterGraphicOpt = 0;
668 : 0 : const InsCaptionOpt* pOLECalcOpt = 0;
669 : 0 : const InsCaptionOpt* pOLEImpressOpt = 0;
670 : 0 : const InsCaptionOpt* pOLEChartOpt = 0;
671 : 0 : const InsCaptionOpt* pOLEFormulaOpt = 0;
672 : 0 : const InsCaptionOpt* pOLEDrawOpt = 0;
673 [ # # ]: 0 : if(pCapOptions)
674 : : {
675 [ # # ]: 0 : pWriterTableOpt = pCapOptions->Find(TABLE_CAP, 0);
676 [ # # ]: 0 : pWriterFrameOpt = pCapOptions->Find(FRAME_CAP, 0);
677 [ # # ]: 0 : pWriterGraphicOpt = pCapOptions->Find(GRAPHIC_CAP, 0);
678 [ # # ]: 0 : pOLECalcOpt = pCapOptions->Find(OLE_CAP, &aGlobalNames[GLOB_NAME_CALC]);
679 [ # # ]: 0 : pOLEImpressOpt = pCapOptions->Find(OLE_CAP, &aGlobalNames[GLOB_NAME_IMPRESS]);
680 [ # # ]: 0 : pOLEDrawOpt = pCapOptions->Find(OLE_CAP, &aGlobalNames[GLOB_NAME_DRAW ]);
681 [ # # ]: 0 : pOLEFormulaOpt = pCapOptions->Find(OLE_CAP, &aGlobalNames[GLOB_NAME_MATH ]);
682 [ # # ]: 0 : pOLEChartOpt = pCapOptions->Find(OLE_CAP, &aGlobalNames[GLOB_NAME_CHART ]);
683 : : }
684 [ # # # # : 0 : switch(nProp)
# # # # #
# # # # #
# # ]
685 : : {
686 : : case INS_PROP_TABLE_HEADER:
687 : : {
688 : 0 : sal_Bool bVal = 0 !=(aInsTblOpts.mnInsMode & tabopts::HEADLINE); pValues[nProp].setValue(&bVal, rType);
689 : : }
690 : 0 : break;//"Table/Header",
691 : : case INS_PROP_TABLE_REPEATHEADER:
692 : : {
693 : 0 : sal_Bool bVal = (aInsTblOpts.mnRowsToRepeat>0); pValues[nProp].setValue(&bVal, rType);
694 : : }
695 : 0 : break;//"Table/RepeatHeader",
696 : : case INS_PROP_TABLE_BORDER:
697 : : {
698 : 0 : sal_Bool bVal = 0 !=(aInsTblOpts.mnInsMode & tabopts::DEFAULT_BORDER ); pValues[nProp].setValue(&bVal, rType);
699 : : }
700 : 0 : break;//"Table/Border",
701 : : case INS_PROP_TABLE_SPLIT:
702 : : {
703 : 0 : sal_Bool bVal = 0 !=(aInsTblOpts.mnInsMode & tabopts::SPLIT_LAYOUT); pValues[nProp].setValue(&bVal, rType);
704 : : }
705 : 0 : break;//"Table/Split",
706 : 0 : case INS_PROP_CAP_AUTOMATIC: pValues[nProp].setValue(&bInsWithCaption, rType);break;//"Caption/Automatic",
707 : : case INS_PROP_CAP_CAPTIONORDERNUMBERINGFIRST:
708 [ # # ]: 0 : pValues[nProp] <<= bCaptionOrderNumberingFirst;
709 : 0 : break;//"Caption/CaptionOrderNumberingFirst"
710 : :
711 : : case INS_PROP_CAP_OBJECT_TABLE_ENABLE:
712 : : case INS_PROP_CAP_OBJECT_TABLE_CATEGORY:
713 : : case INS_PROP_CAP_OBJECT_TABLE_NUMBERING:
714 : : case INS_PROP_CAP_OBJECT_TABLE_NUMBERINGSEPARATOR:
715 : : case INS_PROP_CAP_OBJECT_TABLE_CAPTIONTEXT:
716 : : case INS_PROP_CAP_OBJECT_TABLE_DELIMITER:
717 : : case INS_PROP_CAP_OBJECT_TABLE_LEVEL:
718 : : case INS_PROP_CAP_OBJECT_TABLE_POSITION:
719 : : case INS_PROP_CAP_OBJECT_TABLE_CHARACTERSTYLE:
720 [ # # ]: 0 : if(pWriterTableOpt)
721 [ # # ]: 0 : lcl_WriteOpt(*pWriterTableOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_TABLE_ENABLE);
722 : 0 : break;
723 : : case INS_PROP_CAP_OBJECT_FRAME_ENABLE:
724 : : case INS_PROP_CAP_OBJECT_FRAME_CATEGORY:
725 : : case INS_PROP_CAP_OBJECT_FRAME_NUMBERING:
726 : : case INS_PROP_CAP_OBJECT_FRAME_NUMBERINGSEPARATOR:
727 : : case INS_PROP_CAP_OBJECT_FRAME_CAPTIONTEXT:
728 : : case INS_PROP_CAP_OBJECT_FRAME_DELIMITER:
729 : : case INS_PROP_CAP_OBJECT_FRAME_LEVEL:
730 : : case INS_PROP_CAP_OBJECT_FRAME_POSITION:
731 : : case INS_PROP_CAP_OBJECT_FRAME_CHARACTERSTYLE:
732 [ # # ]: 0 : if(pWriterFrameOpt)
733 [ # # ]: 0 : lcl_WriteOpt(*pWriterFrameOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_FRAME_ENABLE);
734 : 0 : break;
735 : : case INS_PROP_CAP_OBJECT_GRAPHIC_ENABLE:
736 : : case INS_PROP_CAP_OBJECT_GRAPHIC_CATEGORY:
737 : : case INS_PROP_CAP_OBJECT_GRAPHIC_NUMBERING:
738 : : case INS_PROP_CAP_OBJECT_GRAPHIC_NUMBERINGSEPARATOR:
739 : : case INS_PROP_CAP_OBJECT_GRAPHIC_CAPTIONTEXT:
740 : : case INS_PROP_CAP_OBJECT_GRAPHIC_DELIMITER:
741 : : case INS_PROP_CAP_OBJECT_GRAPHIC_LEVEL:
742 : : case INS_PROP_CAP_OBJECT_GRAPHIC_POSITION:
743 : : case INS_PROP_CAP_OBJECT_GRAPHIC_CHARACTERSTYLE:
744 : : case INS_PROP_CAP_OBJECT_GRAPHIC_APPLYATTRIBUTES:
745 [ # # ]: 0 : if(pWriterGraphicOpt)
746 [ # # ]: 0 : lcl_WriteOpt(*pWriterGraphicOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_GRAPHIC_ENABLE);
747 : 0 : break;
748 : : case INS_PROP_CAP_OBJECT_CALC_ENABLE:
749 : : case INS_PROP_CAP_OBJECT_CALC_CATEGORY:
750 : : case INS_PROP_CAP_OBJECT_CALC_NUMBERING:
751 : : case INS_PROP_CAP_OBJECT_CALC_NUMBERINGSEPARATOR:
752 : : case INS_PROP_CAP_OBJECT_CALC_CAPTIONTEXT:
753 : : case INS_PROP_CAP_OBJECT_CALC_DELIMITER:
754 : : case INS_PROP_CAP_OBJECT_CALC_LEVEL:
755 : : case INS_PROP_CAP_OBJECT_CALC_POSITION:
756 : : case INS_PROP_CAP_OBJECT_CALC_CHARACTERSTYLE:
757 : : case INS_PROP_CAP_OBJECT_CALC_APPLYATTRIBUTES:
758 [ # # ]: 0 : if(pOLECalcOpt)
759 [ # # ]: 0 : lcl_WriteOpt(*pOLECalcOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_CALC_ENABLE);
760 : 0 : break;
761 : : case INS_PROP_CAP_OBJECT_IMPRESS_ENABLE:
762 : : case INS_PROP_CAP_OBJECT_IMPRESS_CATEGORY:
763 : : case INS_PROP_CAP_OBJECT_IMPRESS_NUMBERING:
764 : : case INS_PROP_CAP_OBJECT_IMPRESS_NUMBERINGSEPARATOR:
765 : : case INS_PROP_CAP_OBJECT_IMPRESS_CAPTIONTEXT:
766 : : case INS_PROP_CAP_OBJECT_IMPRESS_DELIMITER:
767 : : case INS_PROP_CAP_OBJECT_IMPRESS_LEVEL:
768 : : case INS_PROP_CAP_OBJECT_IMPRESS_POSITION:
769 : : case INS_PROP_CAP_OBJECT_IMPRESS_CHARACTERSTYLE:
770 : : case INS_PROP_CAP_OBJECT_IMPRESS_APPLYATTRIBUTES:
771 [ # # ]: 0 : if(pOLEImpressOpt)
772 [ # # ]: 0 : lcl_WriteOpt(*pOLEImpressOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_IMPRESS_ENABLE);
773 : 0 : break;
774 : : case INS_PROP_CAP_OBJECT_CHART_ENABLE:
775 : : case INS_PROP_CAP_OBJECT_CHART_CATEGORY:
776 : : case INS_PROP_CAP_OBJECT_CHART_NUMBERING:
777 : : case INS_PROP_CAP_OBJECT_CHART_NUMBERINGSEPARATOR:
778 : : case INS_PROP_CAP_OBJECT_CHART_CAPTIONTEXT:
779 : : case INS_PROP_CAP_OBJECT_CHART_DELIMITER:
780 : : case INS_PROP_CAP_OBJECT_CHART_LEVEL:
781 : : case INS_PROP_CAP_OBJECT_CHART_POSITION:
782 : : case INS_PROP_CAP_OBJECT_CHART_CHARACTERSTYLE:
783 : : case INS_PROP_CAP_OBJECT_CHART_APPLYATTRIBUTES:
784 [ # # ]: 0 : if(pOLEChartOpt)
785 [ # # ]: 0 : lcl_WriteOpt(*pOLEChartOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_CHART_ENABLE);
786 : 0 : break;
787 : : case INS_PROP_CAP_OBJECT_FORMULA_ENABLE:
788 : : case INS_PROP_CAP_OBJECT_FORMULA_CATEGORY:
789 : : case INS_PROP_CAP_OBJECT_FORMULA_NUMBERING:
790 : : case INS_PROP_CAP_OBJECT_FORMULA_NUMBERINGSEPARATOR:
791 : : case INS_PROP_CAP_OBJECT_FORMULA_CAPTIONTEXT:
792 : : case INS_PROP_CAP_OBJECT_FORMULA_DELIMITER:
793 : : case INS_PROP_CAP_OBJECT_FORMULA_LEVEL:
794 : : case INS_PROP_CAP_OBJECT_FORMULA_POSITION:
795 : : case INS_PROP_CAP_OBJECT_FORMULA_CHARACTERSTYLE:
796 : : case INS_PROP_CAP_OBJECT_FORMULA_APPLYATTRIBUTES:
797 [ # # ]: 0 : if(pOLEFormulaOpt)
798 [ # # ]: 0 : lcl_WriteOpt(*pOLEFormulaOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_FORMULA_ENABLE);
799 : 0 : break;
800 : : case INS_PROP_CAP_OBJECT_DRAW_ENABLE:
801 : : case INS_PROP_CAP_OBJECT_DRAW_CATEGORY:
802 : : case INS_PROP_CAP_OBJECT_DRAW_NUMBERING:
803 : : case INS_PROP_CAP_OBJECT_DRAW_NUMBERINGSEPARATOR:
804 : : case INS_PROP_CAP_OBJECT_DRAW_CAPTIONTEXT:
805 : : case INS_PROP_CAP_OBJECT_DRAW_DELIMITER:
806 : : case INS_PROP_CAP_OBJECT_DRAW_LEVEL:
807 : : case INS_PROP_CAP_OBJECT_DRAW_POSITION:
808 : : case INS_PROP_CAP_OBJECT_DRAW_CHARACTERSTYLE:
809 : : case INS_PROP_CAP_OBJECT_DRAW_APPLYATTRIBUTES:
810 [ # # ]: 0 : if(pOLEDrawOpt)
811 [ # # ]: 0 : lcl_WriteOpt(*pOLEDrawOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_DRAW_ENABLE);
812 : 0 : break;
813 : : case INS_PROP_CAP_OBJECT_OLEMISC_ENABLE:
814 : : case INS_PROP_CAP_OBJECT_OLEMISC_CATEGORY:
815 : : case INS_PROP_CAP_OBJECT_OLEMISC_NUMBERING:
816 : : case INS_PROP_CAP_OBJECT_OLEMISC_NUMBERINGSEPARATOR:
817 : : case INS_PROP_CAP_OBJECT_OLEMISC_CAPTIONTEXT:
818 : : case INS_PROP_CAP_OBJECT_OLEMISC_DELIMITER:
819 : : case INS_PROP_CAP_OBJECT_OLEMISC_LEVEL:
820 : : case INS_PROP_CAP_OBJECT_OLEMISC_POSITION:
821 : : case INS_PROP_CAP_OBJECT_OLEMISC_CHARACTERSTYLE:
822 : : case INS_PROP_CAP_OBJECT_OLEMISC_APPLYATTRIBUTES:
823 [ # # ]: 0 : if(pOLEMiscOpt)
824 [ # # ]: 0 : lcl_WriteOpt(*pOLEMiscOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_OLEMISC_ENABLE);
825 : 0 : break;
826 : :
827 : : }
828 : : }
829 [ # # ][ # # ]: 0 : PutProperties(aNames, aValues);
830 : 0 : }
831 : :
832 : 5256 : void lcl_ReadOpt(InsCaptionOpt& rOpt, const Any* pValues, sal_Int32 nProp, sal_Int32 nOffset)
833 : : {
834 [ + + + + : 5256 : switch(nOffset)
+ + + + -
- - ]
835 : : {
836 : : case 0:
837 : 657 : rOpt.UseCaption() = *(sal_Bool*)pValues[nProp].getValue();
838 : 657 : break;//Enable
839 : : case 1:
840 : : {
841 : 657 : OUString sTemp; pValues[nProp] >>= sTemp;
842 [ + - ][ + - ]: 657 : rOpt.SetCategory(sTemp);
[ + - ]
843 : : }
844 : 657 : break;//Category
845 : : case 2:
846 : : {
847 : 657 : sal_Int32 nTemp = 0;
848 : 657 : pValues[nProp] >>= nTemp;
849 : 657 : rOpt.SetNumType(sal::static_int_cast< sal_uInt16, sal_Int32>(nTemp));
850 : : }
851 : 657 : break;//Numbering",
852 : : case 3:
853 : : {
854 : 657 : OUString sTemp; pValues[nProp] >>= sTemp;
855 : 657 : rOpt.SetNumSeparator(sTemp);
856 : : }
857 : 657 : break;//NumberingSeparator",
858 : : case 4:
859 : : {
860 : 657 : OUString sTemp; pValues[nProp] >>= sTemp;
861 [ + - ][ + - ]: 657 : rOpt.SetCaption(sTemp);
[ + - ]
862 : : }
863 : 657 : break;//CaptionText",
864 : : case 5:
865 : : {
866 : 657 : OUString sTemp;
867 [ + - ]: 657 : if(pValues[nProp] >>= sTemp)
868 [ + - ][ + - ]: 657 : rOpt.SetSeparator(sTemp);
[ + - ]
869 : : }
870 : 657 : break;//Delimiter",
871 : : case 6:
872 : : {
873 : 657 : sal_Int32 nTemp = 0;
874 : 657 : pValues[nProp] >>= nTemp;
875 : 657 : rOpt.SetLevel(sal::static_int_cast< sal_uInt16, sal_Int32>(nTemp));
876 : : }
877 : 657 : break;//Level",
878 : : case 7:
879 : : {
880 : 657 : sal_Int32 nTemp = 0;
881 : 657 : pValues[nProp] >>= nTemp;
882 : 657 : rOpt.SetPos(sal::static_int_cast< sal_uInt16, sal_Int32>(nTemp));
883 : : }
884 : 657 : break;//Position",
885 : : case 8 : //CharacterStyle
886 : : {
887 : 0 : ::rtl::OUString sTemp; pValues[nProp] >>= sTemp;
888 [ # # ][ # # ]: 0 : rOpt.SetCharacterStyle( sTemp );
[ # # ]
889 : : }
890 : 0 : break;
891 : : case 9 : //ApplyAttributes
892 : : {
893 : 0 : pValues[nProp] >>= rOpt.CopyAttributes();
894 : : }
895 : 0 : break;
896 : : }
897 : 5256 : }
898 : :
899 : 146 : void SwInsertConfig::Load()
900 : : {
901 [ + - ]: 146 : const Sequence<OUString>& aNames = GetPropertyNames();
902 [ + - ]: 146 : Sequence<Any> aValues = GetProperties(aNames);
903 : 146 : const Any* pValues = aValues.getConstArray();
904 : : OSL_ENSURE(aValues.getLength() == aNames.getLength(), "GetProperties failed");
905 [ + - ]: 146 : if(aValues.getLength() == aNames.getLength())
906 : : {
907 : 146 : InsCaptionOpt* pWriterTableOpt = 0;
908 : 146 : InsCaptionOpt* pWriterFrameOpt = 0;
909 : 146 : InsCaptionOpt* pWriterGraphicOpt = 0;
910 : 146 : InsCaptionOpt* pOLECalcOpt = 0;
911 : 146 : InsCaptionOpt* pOLEImpressOpt = 0;
912 : 146 : InsCaptionOpt* pOLEChartOpt = 0;
913 : 146 : InsCaptionOpt* pOLEFormulaOpt = 0;
914 : 146 : InsCaptionOpt* pOLEDrawOpt = 0;
915 [ + + ]: 146 : if(pCapOptions)
916 : : {
917 [ + - ]: 73 : pWriterTableOpt = pCapOptions->Find(TABLE_CAP, 0);
918 [ + - ]: 73 : pWriterFrameOpt = pCapOptions->Find(FRAME_CAP, 0);
919 [ + - ]: 73 : pWriterGraphicOpt = pCapOptions->Find(GRAPHIC_CAP, 0);
920 [ + - ]: 73 : pOLECalcOpt = pCapOptions->Find(OLE_CAP, &aGlobalNames[GLOB_NAME_CALC]);
921 [ + - ]: 73 : pOLEImpressOpt = pCapOptions->Find(OLE_CAP, &aGlobalNames[GLOB_NAME_IMPRESS]);
922 [ + - ]: 73 : pOLEDrawOpt = pCapOptions->Find(OLE_CAP, &aGlobalNames[GLOB_NAME_DRAW ]);
923 [ + - ]: 73 : pOLEFormulaOpt = pCapOptions->Find(OLE_CAP, &aGlobalNames[GLOB_NAME_MATH ]);
924 [ + - ]: 73 : pOLEChartOpt = pCapOptions->Find(OLE_CAP, &aGlobalNames[GLOB_NAME_CHART ]);
925 : : }
926 [ - + ]: 73 : else if(!bIsWeb)
927 : 146 : return;
928 : :
929 : 146 : sal_uInt16 nInsTblFlags = 0;
930 [ + + ]: 7227 : for(int nProp = 0; nProp < aNames.getLength(); nProp++)
931 : : {
932 [ + + ]: 7081 : if(pValues[nProp].hasValue())
933 : : {
934 [ + + ]: 5840 : sal_Bool bBool = nProp < INS_PROP_CAP_OBJECT_TABLE_ENABLE ? *(sal_Bool*)pValues[nProp].getValue() : sal_False;
935 [ + + + + : 5840 : switch(nProp)
+ - + + +
+ + + + +
+ - ]
936 : : {
937 : : case INS_PROP_TABLE_HEADER:
938 : : {
939 [ - + ]: 146 : if(bBool)
940 : 0 : nInsTblFlags|= tabopts::HEADLINE;
941 : : }
942 : 146 : break;//"Table/Header",
943 : : case INS_PROP_TABLE_REPEATHEADER:
944 : : {
945 [ + + ]: 146 : aInsTblOpts.mnRowsToRepeat = bBool? 1 : 0;
946 : :
947 : : }
948 : 146 : break;//"Table/RepeatHeader",
949 : : case INS_PROP_TABLE_BORDER:
950 : : {
951 [ + - ]: 146 : if(bBool)
952 : 146 : nInsTblFlags|= tabopts::DEFAULT_BORDER;
953 : : }
954 : 146 : break;//"Table/Border",
955 : : case INS_PROP_TABLE_SPLIT:
956 : : {
957 [ + - ]: 73 : if(bBool)
958 : 73 : nInsTblFlags|= tabopts::SPLIT_LAYOUT;
959 : : }
960 : 73 : break;//"Table/Split",
961 : : case INS_PROP_CAP_AUTOMATIC:
962 : 73 : bInsWithCaption = bBool;
963 : 73 : break;
964 : 0 : case INS_PROP_CAP_CAPTIONORDERNUMBERINGFIRST: bCaptionOrderNumberingFirst = bBool; break;
965 : : case INS_PROP_CAP_OBJECT_TABLE_ENABLE:
966 : : case INS_PROP_CAP_OBJECT_TABLE_CATEGORY:
967 : : case INS_PROP_CAP_OBJECT_TABLE_NUMBERING:
968 : : case INS_PROP_CAP_OBJECT_TABLE_NUMBERINGSEPARATOR:
969 : : case INS_PROP_CAP_OBJECT_TABLE_CAPTIONTEXT:
970 : : case INS_PROP_CAP_OBJECT_TABLE_DELIMITER:
971 : : case INS_PROP_CAP_OBJECT_TABLE_LEVEL:
972 : : case INS_PROP_CAP_OBJECT_TABLE_POSITION:
973 : : case INS_PROP_CAP_OBJECT_TABLE_CHARACTERSTYLE:
974 [ + + ]: 584 : if(!pWriterTableOpt)
975 : : {
976 [ + - ][ + - ]: 73 : pWriterTableOpt = new InsCaptionOpt(TABLE_CAP);
977 [ + - ]: 73 : pCapOptions->Insert(pWriterTableOpt);
978 : : }
979 [ + - ]: 584 : lcl_ReadOpt(*pWriterTableOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_TABLE_ENABLE);
980 : 584 : break;
981 : : case INS_PROP_CAP_OBJECT_FRAME_ENABLE:
982 : : case INS_PROP_CAP_OBJECT_FRAME_CATEGORY:
983 : : case INS_PROP_CAP_OBJECT_FRAME_NUMBERING:
984 : : case INS_PROP_CAP_OBJECT_FRAME_NUMBERINGSEPARATOR:
985 : : case INS_PROP_CAP_OBJECT_FRAME_CAPTIONTEXT:
986 : : case INS_PROP_CAP_OBJECT_FRAME_DELIMITER:
987 : : case INS_PROP_CAP_OBJECT_FRAME_LEVEL:
988 : : case INS_PROP_CAP_OBJECT_FRAME_POSITION:
989 : : case INS_PROP_CAP_OBJECT_FRAME_CHARACTERSTYLE:
990 [ + + ]: 584 : if(!pWriterFrameOpt)
991 : : {
992 [ + - ][ + - ]: 73 : pWriterFrameOpt = new InsCaptionOpt(FRAME_CAP);
993 [ + - ]: 73 : pCapOptions->Insert(pWriterFrameOpt);
994 : : }
995 [ + - ]: 584 : lcl_ReadOpt(*pWriterFrameOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_FRAME_ENABLE);
996 : 584 : break;
997 : : case INS_PROP_CAP_OBJECT_GRAPHIC_ENABLE:
998 : : case INS_PROP_CAP_OBJECT_GRAPHIC_CATEGORY:
999 : : case INS_PROP_CAP_OBJECT_GRAPHIC_NUMBERING:
1000 : : case INS_PROP_CAP_OBJECT_GRAPHIC_NUMBERINGSEPARATOR:
1001 : : case INS_PROP_CAP_OBJECT_GRAPHIC_CAPTIONTEXT:
1002 : : case INS_PROP_CAP_OBJECT_GRAPHIC_DELIMITER:
1003 : : case INS_PROP_CAP_OBJECT_GRAPHIC_LEVEL:
1004 : : case INS_PROP_CAP_OBJECT_GRAPHIC_POSITION:
1005 : : case INS_PROP_CAP_OBJECT_GRAPHIC_CHARACTERSTYLE:
1006 : : case INS_PROP_CAP_OBJECT_GRAPHIC_APPLYATTRIBUTES:
1007 [ + + ]: 584 : if(!pWriterGraphicOpt)
1008 : : {
1009 [ + - ][ + - ]: 73 : pWriterGraphicOpt = new InsCaptionOpt(GRAPHIC_CAP);
1010 [ + - ]: 73 : pCapOptions->Insert(pWriterGraphicOpt);
1011 : : }
1012 [ + - ]: 584 : lcl_ReadOpt(*pWriterGraphicOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_GRAPHIC_ENABLE);
1013 : 584 : break;
1014 : : case INS_PROP_CAP_OBJECT_CALC_ENABLE:
1015 : : case INS_PROP_CAP_OBJECT_CALC_CATEGORY:
1016 : : case INS_PROP_CAP_OBJECT_CALC_NUMBERING:
1017 : : case INS_PROP_CAP_OBJECT_CALC_NUMBERINGSEPARATOR:
1018 : : case INS_PROP_CAP_OBJECT_CALC_CAPTIONTEXT:
1019 : : case INS_PROP_CAP_OBJECT_CALC_DELIMITER:
1020 : : case INS_PROP_CAP_OBJECT_CALC_LEVEL:
1021 : : case INS_PROP_CAP_OBJECT_CALC_POSITION:
1022 : : case INS_PROP_CAP_OBJECT_CALC_CHARACTERSTYLE:
1023 : : case INS_PROP_CAP_OBJECT_CALC_APPLYATTRIBUTES:
1024 [ + + ]: 584 : if(!pOLECalcOpt)
1025 : : {
1026 [ + - ][ + - ]: 73 : pOLECalcOpt = new InsCaptionOpt(OLE_CAP, &aGlobalNames[GLOB_NAME_CALC]);
1027 [ + - ]: 73 : pCapOptions->Insert(pOLECalcOpt);
1028 : : }
1029 [ + - ]: 584 : lcl_ReadOpt(*pOLECalcOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_CALC_ENABLE);
1030 : 584 : break;
1031 : : case INS_PROP_CAP_OBJECT_IMPRESS_ENABLE:
1032 : : case INS_PROP_CAP_OBJECT_IMPRESS_CATEGORY:
1033 : : case INS_PROP_CAP_OBJECT_IMPRESS_NUMBERING:
1034 : : case INS_PROP_CAP_OBJECT_IMPRESS_NUMBERINGSEPARATOR:
1035 : : case INS_PROP_CAP_OBJECT_IMPRESS_CAPTIONTEXT:
1036 : : case INS_PROP_CAP_OBJECT_IMPRESS_DELIMITER:
1037 : : case INS_PROP_CAP_OBJECT_IMPRESS_LEVEL:
1038 : : case INS_PROP_CAP_OBJECT_IMPRESS_POSITION:
1039 : : case INS_PROP_CAP_OBJECT_IMPRESS_CHARACTERSTYLE:
1040 : : case INS_PROP_CAP_OBJECT_IMPRESS_APPLYATTRIBUTES:
1041 [ + + ]: 584 : if(!pOLEImpressOpt)
1042 : : {
1043 [ + - ][ + - ]: 73 : pOLEImpressOpt = new InsCaptionOpt(OLE_CAP, &aGlobalNames[GLOB_NAME_IMPRESS]);
1044 [ + - ]: 73 : pCapOptions->Insert(pOLEImpressOpt);
1045 : : }
1046 [ + - ]: 584 : lcl_ReadOpt(*pOLEImpressOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_IMPRESS_ENABLE);
1047 : 584 : break;
1048 : : case INS_PROP_CAP_OBJECT_CHART_ENABLE:
1049 : : case INS_PROP_CAP_OBJECT_CHART_CATEGORY:
1050 : : case INS_PROP_CAP_OBJECT_CHART_NUMBERING:
1051 : : case INS_PROP_CAP_OBJECT_CHART_NUMBERINGSEPARATOR:
1052 : : case INS_PROP_CAP_OBJECT_CHART_CAPTIONTEXT:
1053 : : case INS_PROP_CAP_OBJECT_CHART_DELIMITER:
1054 : : case INS_PROP_CAP_OBJECT_CHART_LEVEL:
1055 : : case INS_PROP_CAP_OBJECT_CHART_POSITION:
1056 : : case INS_PROP_CAP_OBJECT_CHART_CHARACTERSTYLE:
1057 : : case INS_PROP_CAP_OBJECT_CHART_APPLYATTRIBUTES:
1058 [ + + ]: 584 : if(!pOLEChartOpt)
1059 : : {
1060 [ + - ][ + - ]: 73 : pOLEChartOpt = new InsCaptionOpt(OLE_CAP, &aGlobalNames[GLOB_NAME_CHART]);
1061 [ + - ]: 73 : pCapOptions->Insert(pOLEChartOpt);
1062 : : }
1063 [ + - ]: 584 : lcl_ReadOpt(*pOLEChartOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_CHART_ENABLE);
1064 : 584 : break;
1065 : : case INS_PROP_CAP_OBJECT_FORMULA_ENABLE:
1066 : : case INS_PROP_CAP_OBJECT_FORMULA_CATEGORY:
1067 : : case INS_PROP_CAP_OBJECT_FORMULA_NUMBERING:
1068 : : case INS_PROP_CAP_OBJECT_FORMULA_NUMBERINGSEPARATOR:
1069 : : case INS_PROP_CAP_OBJECT_FORMULA_CAPTIONTEXT:
1070 : : case INS_PROP_CAP_OBJECT_FORMULA_DELIMITER:
1071 : : case INS_PROP_CAP_OBJECT_FORMULA_LEVEL:
1072 : : case INS_PROP_CAP_OBJECT_FORMULA_POSITION:
1073 : : case INS_PROP_CAP_OBJECT_FORMULA_CHARACTERSTYLE:
1074 : : case INS_PROP_CAP_OBJECT_FORMULA_APPLYATTRIBUTES:
1075 [ + + ]: 584 : if(!pOLEFormulaOpt)
1076 : : {
1077 [ + - ][ + - ]: 73 : pOLEFormulaOpt = new InsCaptionOpt(OLE_CAP, &aGlobalNames[GLOB_NAME_MATH]);
1078 [ + - ]: 73 : pCapOptions->Insert(pOLEFormulaOpt);
1079 : : }
1080 [ + - ]: 584 : lcl_ReadOpt(*pOLEFormulaOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_FORMULA_ENABLE);
1081 : 584 : break;
1082 : : case INS_PROP_CAP_OBJECT_DRAW_ENABLE:
1083 : : case INS_PROP_CAP_OBJECT_DRAW_CATEGORY:
1084 : : case INS_PROP_CAP_OBJECT_DRAW_NUMBERING:
1085 : : case INS_PROP_CAP_OBJECT_DRAW_NUMBERINGSEPARATOR:
1086 : : case INS_PROP_CAP_OBJECT_DRAW_CAPTIONTEXT:
1087 : : case INS_PROP_CAP_OBJECT_DRAW_DELIMITER:
1088 : : case INS_PROP_CAP_OBJECT_DRAW_LEVEL:
1089 : : case INS_PROP_CAP_OBJECT_DRAW_POSITION:
1090 : : case INS_PROP_CAP_OBJECT_DRAW_CHARACTERSTYLE:
1091 : : case INS_PROP_CAP_OBJECT_DRAW_APPLYATTRIBUTES:
1092 [ + + ]: 584 : if(!pOLEDrawOpt)
1093 : : {
1094 [ + - ][ + - ]: 73 : pOLEDrawOpt = new InsCaptionOpt(OLE_CAP, &aGlobalNames[GLOB_NAME_DRAW]);
1095 [ + - ]: 73 : pCapOptions->Insert(pOLEDrawOpt);
1096 : : }
1097 [ + - ]: 584 : lcl_ReadOpt(*pOLEDrawOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_DRAW_ENABLE);
1098 : 584 : break;
1099 : : case INS_PROP_CAP_OBJECT_OLEMISC_ENABLE:
1100 : : case INS_PROP_CAP_OBJECT_OLEMISC_CATEGORY:
1101 : : case INS_PROP_CAP_OBJECT_OLEMISC_NUMBERING:
1102 : : case INS_PROP_CAP_OBJECT_OLEMISC_NUMBERINGSEPARATOR:
1103 : : case INS_PROP_CAP_OBJECT_OLEMISC_CAPTIONTEXT:
1104 : : case INS_PROP_CAP_OBJECT_OLEMISC_DELIMITER:
1105 : : case INS_PROP_CAP_OBJECT_OLEMISC_LEVEL:
1106 : : case INS_PROP_CAP_OBJECT_OLEMISC_POSITION:
1107 : : case INS_PROP_CAP_OBJECT_OLEMISC_CHARACTERSTYLE:
1108 : : case INS_PROP_CAP_OBJECT_OLEMISC_APPLYATTRIBUTES:
1109 [ + + ]: 584 : if(!pOLEMiscOpt)
1110 : : {
1111 [ + - ][ + - ]: 73 : pOLEMiscOpt = new InsCaptionOpt(OLE_CAP);
1112 : : }
1113 [ + - ]: 584 : lcl_ReadOpt(*pOLEMiscOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_OLEMISC_ENABLE);
1114 : 5840 : break;
1115 : : }
1116 : : }
1117 [ + + ]: 1241 : else if(nProp == INS_PROP_CAP_CAPTIONORDERNUMBERINGFIRST)
1118 : : {
1119 : : //#i61007# initialize caption order, right now only HUNGARIAN seems to need a different order
1120 [ + - ]: 73 : SvtSysLocaleOptions aSysLocaleOptions;
1121 [ + - ]: 73 : OUString sLang = aSysLocaleOptions.GetLocaleConfigString();
1122 [ - + ][ + - ]: 73 : bCaptionOrderNumberingFirst = ( !sLang.isEmpty() && sLang.matchAsciiL( "hu", 2 )) ? sal_True : sal_False;
[ + + ]
1123 : : }
1124 : :
1125 : : }
1126 : 146 : aInsTblOpts.mnInsMode = nInsTblFlags;
1127 [ + - ][ + - ]: 146 : }
1128 : : }
1129 : :
1130 : 146 : const Sequence<OUString>& SwTableConfig::GetPropertyNames()
1131 : : {
1132 : 146 : const int nCount = 8;
1133 [ + + ][ + - ]: 146 : static Sequence<OUString> aNames(nCount);
[ + - ][ # # ]
1134 : : static const char* aPropNames[] =
1135 : : {
1136 : : "Shift/Row", // 0
1137 : : "Shift/Column", // 1
1138 : : "Insert/Row", // 2
1139 : : "Insert/Column", // 3
1140 : : "Change/Effect", // 4
1141 : : "Input/NumberRecognition", // 5
1142 : : "Input/NumberFormatRecognition",// 6
1143 : : "Input/Alignment" // 7
1144 : : };
1145 : 146 : OUString* pNames = aNames.getArray();
1146 [ + + ]: 1314 : for(int i = 0; i < nCount; i++)
1147 : 1168 : pNames[i] = OUString::createFromAscii(aPropNames[i]);
1148 : 146 : return aNames;
1149 : : }
1150 : :
1151 : 146 : SwTableConfig::SwTableConfig(sal_Bool bWeb) :
1152 : : ConfigItem(bWeb ? C2U("Office.WriterWeb/Table") : C2U("Office.Writer/Table"),
1153 [ + + ][ + - ]: 146 : CONFIG_MODE_DELAYED_UPDATE|CONFIG_MODE_RELEASE_TREE)
1154 : : {
1155 [ + - ]: 146 : Load();
1156 : 146 : }
1157 : :
1158 : 80 : SwTableConfig::~SwTableConfig()
1159 : : {
1160 [ - + ]: 80 : }
1161 : :
1162 : 0 : void SwTableConfig::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {}
1163 : :
1164 : 0 : void SwTableConfig::Commit()
1165 : : {
1166 [ # # ]: 0 : const Sequence<OUString>& aNames = GetPropertyNames();
1167 [ # # ]: 0 : Sequence<Any> aValues(aNames.getLength());
1168 [ # # ]: 0 : Any* pValues = aValues.getArray();
1169 : :
1170 [ # # ]: 0 : const Type& rType = ::getBooleanCppuType();
1171 [ # # ]: 0 : for(int nProp = 0; nProp < aNames.getLength(); nProp++)
1172 : : {
1173 [ # # # # : 0 : switch(nProp)
# # # #
# ]
1174 : : {
1175 [ # # ]: 0 : case 0 : pValues[nProp] <<= (sal_Int32)TWIP_TO_MM100_UNSIGNED(nTblHMove); break; //"Shift/Row",
1176 [ # # ]: 0 : case 1 : pValues[nProp] <<= (sal_Int32)TWIP_TO_MM100_UNSIGNED(nTblVMove); break; //"Shift/Column",
1177 [ # # ]: 0 : case 2 : pValues[nProp] <<= (sal_Int32)TWIP_TO_MM100_UNSIGNED(nTblHInsert); break; //"Insert/Row",
1178 [ # # ]: 0 : case 3 : pValues[nProp] <<= (sal_Int32)TWIP_TO_MM100_UNSIGNED(nTblVInsert); break; //"Insert/Column",
1179 [ # # ]: 0 : case 4 : pValues[nProp] <<= (sal_Int32)eTblChgMode; break; //"Change/Effect",
1180 : 0 : case 5 : pValues[nProp].setValue(&bInsTblFormatNum, rType); break; //"Input/NumberRecognition",
1181 : 0 : case 6 : pValues[nProp].setValue(&bInsTblChangeNumFormat, rType); break; //"Input/NumberFormatRecognition",
1182 : 0 : case 7 : pValues[nProp].setValue(&bInsTblAlignNum, rType); break; //"Input/Alignment"
1183 : : }
1184 : : }
1185 [ # # ][ # # ]: 0 : PutProperties(aNames, aValues);
1186 : 0 : }
1187 : :
1188 : 146 : void SwTableConfig::Load()
1189 : : {
1190 [ + - ]: 146 : const Sequence<OUString>& aNames = GetPropertyNames();
1191 [ + - ]: 146 : Sequence<Any> aValues = GetProperties(aNames);
1192 : 146 : const Any* pValues = aValues.getConstArray();
1193 : : OSL_ENSURE(aValues.getLength() == aNames.getLength(), "GetProperties failed");
1194 [ + - ]: 146 : if(aValues.getLength() == aNames.getLength())
1195 : : {
1196 [ + + ]: 1314 : for(int nProp = 0; nProp < aNames.getLength(); nProp++)
1197 : : {
1198 [ + - ]: 1168 : if(pValues[nProp].hasValue())
1199 : : {
1200 : 1168 : sal_Int32 nTemp = 0;
1201 [ + + + + : 1168 : switch(nProp)
+ + + +
- ]
1202 : : {
1203 [ + - ]: 146 : case 0 : pValues[nProp] >>= nTemp; nTblHMove = (sal_uInt16)MM100_TO_TWIP(nTemp); break; //"Shift/Row",
1204 [ + - ]: 146 : case 1 : pValues[nProp] >>= nTemp; nTblVMove = (sal_uInt16)MM100_TO_TWIP(nTemp); break; //"Shift/Column",
1205 [ + - ]: 146 : case 2 : pValues[nProp] >>= nTemp; nTblHInsert = (sal_uInt16)MM100_TO_TWIP(nTemp); break; //"Insert/Row",
1206 [ + - ]: 146 : case 3 : pValues[nProp] >>= nTemp; nTblVInsert = (sal_uInt16)MM100_TO_TWIP(nTemp); break; //"Insert/Column",
1207 : 146 : case 4 : pValues[nProp] >>= nTemp; eTblChgMode = (TblChgMode)nTemp; break; //"Change/Effect",
1208 : 146 : case 5 : bInsTblFormatNum = *(sal_Bool*)pValues[nProp].getValue(); break; //"Input/NumberRecognition",
1209 : 146 : case 6 : bInsTblChangeNumFormat = *(sal_Bool*)pValues[nProp].getValue(); break; //"Input/NumberFormatRecognition",
1210 : 1168 : case 7 : bInsTblAlignNum = *(sal_Bool*)pValues[nProp].getValue(); break; //"Input/Alignment"
1211 : : }
1212 : : }
1213 : : }
1214 [ + - ]: 146 : }
1215 : 146 : }
1216 : :
1217 : 73 : SwMiscConfig::SwMiscConfig() :
1218 : : ConfigItem(C2U("Office.Writer"),
1219 : : CONFIG_MODE_DELAYED_UPDATE|CONFIG_MODE_RELEASE_TREE),
1220 : : bDefaultFontsInCurrDocOnly(sal_False),
1221 : : bShowIndexPreview(sal_False),
1222 : : bGrfToGalleryAsLnk(sal_True),
1223 : : bNumAlignSize(sal_True),
1224 : : bSinglePrintJob(sal_False),
1225 : : bIsNameFromColumn(sal_True),
1226 : : bAskForMailMergeInPrint(sal_True),
1227 [ + - ][ + - ]: 73 : nMailingFormats(0)
[ + - ][ + - ]
[ + - ]
1228 : : {
1229 [ + - ]: 73 : Load();
1230 : 73 : }
1231 : :
1232 [ + - ][ + - ]: 40 : SwMiscConfig::~SwMiscConfig()
[ + - ][ + - ]
1233 : : {
1234 [ - + ]: 40 : }
1235 : :
1236 : 75 : const Sequence<OUString>& SwMiscConfig::GetPropertyNames()
1237 : : {
1238 [ + + ][ + - ]: 75 : static Sequence<OUString> aNames;
[ + - ][ # # ]
1239 [ + + ]: 75 : if(!aNames.getLength())
1240 : : {
1241 : 73 : const int nCount = 12;
1242 : 73 : aNames.realloc(nCount);
1243 : : static const char* aPropNames[] =
1244 : : {
1245 : : "Statistics/WordNumber/Delimiter", // 0
1246 : : "DefaultFont/Document", // 1
1247 : : "Index/ShowPreview", // 2
1248 : : "Misc/GraphicToGalleryAsLink", // 3
1249 : : "Numbering/Graphic/KeepRatio", // 4
1250 : : "FormLetter/PrintOutput/SinglePrintJobs", // 5
1251 : : "FormLetter/MailingOutput/Format", // 6
1252 : : "FormLetter/FileOutput/FileName/FromDatabaseField", // 7
1253 : : "FormLetter/FileOutput/Path", // 8
1254 : : "FormLetter/FileOutput/FileName/FromManualSetting", // 9
1255 : : "FormLetter/FileOutput/FileName/Generation",//10
1256 : : "FormLetter/PrintOutput/AskForMerge" //11
1257 : : };
1258 : 73 : OUString* pNames = aNames.getArray();
1259 [ + + ]: 949 : for(int i = 0; i < nCount; i++)
1260 : 876 : pNames[i] = rtl::OUString::createFromAscii(aPropNames[i]);
1261 : : }
1262 : 75 : return aNames;
1263 : : }
1264 : :
1265 : 0 : void SwMiscConfig::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {}
1266 : :
1267 : 2 : void SwMiscConfig::Commit()
1268 : : {
1269 [ + - ]: 2 : const Sequence<OUString>& aNames = GetPropertyNames();
1270 [ + - ]: 2 : Sequence<Any> aValues(aNames.getLength());
1271 [ + - ]: 2 : Any* pValues = aValues.getArray();
1272 : :
1273 [ + - ]: 2 : const Type& rType = ::getBooleanCppuType();
1274 [ + + ]: 26 : for(int nProp = 0; nProp < aNames.getLength(); nProp++)
1275 : : {
1276 [ + + + + : 24 : switch(nProp)
+ + + + +
+ + + - ]
1277 : : {
1278 : : case 0 :
1279 : 2 : pValues[nProp] <<= OUString(
1280 [ + - ][ + - ]: 2 : SwModuleOptions::ConvertWordDelimiter(sWordDelimiter, sal_False));
[ + - ][ + - ]
1281 : 2 : break;
1282 : 2 : case 1 : pValues[nProp].setValue(&bDefaultFontsInCurrDocOnly, rType); break;
1283 : 2 : case 2 : pValues[nProp].setValue(&bShowIndexPreview, rType) ; break;
1284 : 2 : case 3 : pValues[nProp].setValue(&bGrfToGalleryAsLnk, rType); break;
1285 : 2 : case 4 : pValues[nProp].setValue(&bNumAlignSize, rType); break;
1286 : 2 : case 5 : pValues[nProp].setValue(&bSinglePrintJob, rType); break;
1287 [ + - ]: 2 : case 6 : pValues[nProp] <<= nMailingFormats; break;
1288 [ + - ][ + - ]: 2 : case 7 : pValues[nProp] <<= OUString(sNameFromColumn); break;
1289 [ + - ][ + - ]: 2 : case 8 : pValues[nProp] <<= OUString(sMailingPath); break;
1290 [ + - ][ + - ]: 2 : case 9 : pValues[nProp] <<= OUString(sMailName); break;
1291 : 2 : case 10: pValues[nProp].setValue(&bIsNameFromColumn, rType);break;
1292 [ + - ]: 2 : case 11: pValues[nProp] <<= bAskForMailMergeInPrint; break;
1293 : : }
1294 : : }
1295 [ + - ][ + - ]: 2 : PutProperties(aNames, aValues);
1296 : 2 : }
1297 : :
1298 : 73 : void SwMiscConfig::Load()
1299 : : {
1300 [ + - ]: 73 : const Sequence<OUString>& aNames = GetPropertyNames();
1301 [ + - ]: 73 : Sequence<Any> aValues = GetProperties(aNames);
1302 : 73 : const Any* pValues = aValues.getConstArray();
1303 : : OSL_ENSURE(aValues.getLength() == aNames.getLength(), "GetProperties failed");
1304 [ + - ]: 73 : if(aValues.getLength() == aNames.getLength())
1305 : : {
1306 : 73 : OUString sTmp;
1307 [ + + ]: 949 : for(int nProp = 0; nProp < aNames.getLength(); nProp++)
1308 : : {
1309 [ + + ]: 876 : if(pValues[nProp].hasValue())
1310 : : {
1311 [ + + + + : 584 : switch(nProp)
+ + - - +
- - + - ]
1312 : : {
1313 : 73 : case 0 : pValues[nProp] >>= sTmp;
1314 [ + - ][ + - ]: 73 : sWordDelimiter = SwModuleOptions::ConvertWordDelimiter(sTmp, sal_True);
[ + - ][ + - ]
[ + - ]
1315 : 73 : break;
1316 : 73 : case 1 : bDefaultFontsInCurrDocOnly = *(sal_Bool*)pValues[nProp].getValue(); break;
1317 : 73 : case 2 : bShowIndexPreview = *(sal_Bool*)pValues[nProp].getValue(); break;
1318 : 73 : case 3 : bGrfToGalleryAsLnk = *(sal_Bool*)pValues[nProp].getValue(); break;
1319 : 73 : case 4 : bNumAlignSize = *(sal_Bool*)pValues[nProp].getValue(); break;
1320 : 73 : case 5 : bSinglePrintJob = *(sal_Bool*)pValues[nProp].getValue(); break;
1321 : 0 : case 6 : pValues[nProp] >>= nMailingFormats; ; break;
1322 [ # # ]: 0 : case 7 : pValues[nProp] >>= sTmp; sNameFromColumn = sTmp; break;
1323 [ + - ]: 73 : case 8 : pValues[nProp] >>= sTmp; sMailingPath = sTmp; break;
1324 [ # # ]: 0 : case 9 : pValues[nProp] >>= sTmp; sMailName = sTmp; break;
1325 : 0 : case 10: bIsNameFromColumn = *(sal_Bool*)pValues[nProp].getValue(); break;
1326 : 584 : case 11: pValues[nProp] >>= bAskForMailMergeInPrint; break;
1327 : : }
1328 : : }
1329 : 73 : }
1330 [ + - ]: 73 : }
1331 : 73 : }
1332 : :
1333 : 73 : const Sequence<OUString>& SwCompareConfig::GetPropertyNames()
1334 : : {
1335 [ + - ][ + - ]: 73 : static Sequence<OUString> aNames;
[ + - ][ # # ]
1336 [ + - ]: 73 : if(!aNames.getLength())
1337 : : {
1338 : 73 : const int nCount = 4;
1339 : 73 : aNames.realloc(nCount);
1340 : : static const char* aPropNames[] =
1341 : : {
1342 : : "Mode", // 0
1343 : : "UseRSID", // 1
1344 : : "IgnorePieces", // 2
1345 : : "IgnoreLength" // 3
1346 : : };
1347 : 73 : OUString* pNames = aNames.getArray();
1348 [ + + ]: 365 : for(int i = 0; i < nCount; i++)
1349 : 292 : pNames[i] = OUString::createFromAscii(aPropNames[i]);
1350 : : }
1351 : 73 : return aNames;
1352 : : }
1353 : :
1354 : 73 : SwCompareConfig::SwCompareConfig() :
1355 : : ConfigItem(C2U("Office.Writer/Comparison"),
1356 [ + - ]: 73 : CONFIG_MODE_DELAYED_UPDATE|CONFIG_MODE_RELEASE_TREE)
1357 : : {
1358 : 73 : eCmpMode = SVX_CMP_AUTO;
1359 : 73 : bUseRsid = 0;
1360 : 73 : bIgnorePieces = 0;
1361 : 73 : nPieceLen = 1;
1362 : :
1363 [ + - ]: 73 : Load();
1364 : 73 : }
1365 : :
1366 : 40 : SwCompareConfig::~SwCompareConfig()
1367 : : {
1368 [ - + ]: 40 : }
1369 : :
1370 : 0 : void SwCompareConfig::Commit()
1371 : : {
1372 [ # # ]: 0 : const Sequence<OUString>& aNames = GetPropertyNames();
1373 [ # # ]: 0 : Sequence<Any> aValues(aNames.getLength());
1374 [ # # ]: 0 : Any* pValues = aValues.getArray();
1375 : :
1376 [ # # ]: 0 : const Type& rType = ::getBooleanCppuType();
1377 : :
1378 [ # # ]: 0 : pValues[0] <<= (sal_Int32) eCmpMode;
1379 : 0 : pValues[1].setValue(&bUseRsid, rType);
1380 : 0 : pValues[2].setValue(&bIgnorePieces, rType);
1381 [ # # ]: 0 : pValues[3] <<= (sal_Int32) nPieceLen;
1382 : :
1383 [ # # ][ # # ]: 0 : PutProperties(aNames, aValues);
1384 : 0 : }
1385 : :
1386 : 73 : void SwCompareConfig::Load()
1387 : : {
1388 [ + - ]: 73 : const Sequence<OUString>& aNames = GetPropertyNames();
1389 [ + - ]: 73 : Sequence<Any> aValues = GetProperties(aNames);
1390 : 73 : const Any* pValues = aValues.getConstArray();
1391 : : DBG_ASSERT(aValues.getLength() == aNames.getLength(), "GetProperties failed");
1392 [ + - ]: 73 : if(aValues.getLength() == aNames.getLength())
1393 : : {
1394 [ + + ]: 365 : for(int nProp = 0; nProp < aNames.getLength(); nProp++)
1395 : : {
1396 [ - + ]: 292 : if(pValues[nProp].hasValue())
1397 : : {
1398 : 0 : sal_Int32 nVal = 0;
1399 : 0 : pValues[nProp] >>= nVal;
1400 : :
1401 [ # # # # : 0 : switch(nProp)
# ]
1402 : : {
1403 : 0 : case 0 : eCmpMode = (SvxCompareMode) nVal; break;;
1404 : 0 : case 1 : bUseRsid = *(sal_Bool*)pValues[nProp].getValue(); break;
1405 : 0 : case 2 : bIgnorePieces = *(sal_Bool*)pValues[nProp].getValue(); break;
1406 : 0 : case 3 : nPieceLen = nVal; break;
1407 : : }
1408 : : }
1409 : : }
1410 [ + - ]: 73 : }
1411 : 73 : }
1412 : :
1413 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|