1 /**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements. See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership. The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License. You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied. See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23
24 // MARKER(update_precomp.py): autogen include statement, do not remove
25 #include "precompiled_sw.hxx"
26
27 #ifdef SW_DLLIMPLEMENTATION
28 #undef SW_DLLIMPLEMENTATION
29 #endif
30
31
32
33 #include <rsc/rscsfx.hxx>
34 #include <com/sun/star/text/XDocumentIndexesSupplier.hpp>
35 #include <com/sun/star/text/XDocumentIndex.hpp>
36 #include <com/sun/star/text/XTextSectionsSupplier.hpp>
37 #include <com/sun/star/style/BreakType.hpp>
38 #include <com/sun/star/text/XTextFieldsSupplier.hpp>
39 #include <com/sun/star/text/XDependentTextField.hpp>
40 #include <com/sun/star/text/XParagraphCursor.hpp>
41 #include <com/sun/star/text/XDocumentIndex.hpp>
42 #include <com/sun/star/text/ChapterFormat.hpp>
43 #include <com/sun/star/text/XTextSection.hpp>
44 #include <com/sun/star/text/ControlCharacter.hpp>
45 #include <com/sun/star/beans/PropertyValues.hpp>
46 #include <com/sun/star/text/TextContentAnchorType.hpp>
47 #include <com/sun/star/ucb/XCommandEnvironment.hpp>
48 #include <com/sun/star/ui/dialogs/XFilePicker.hpp>
49 #include <com/sun/star/ui/dialogs/XFilterManager.hpp>
50 #include <wrtsh.hxx>
51 #ifndef _VIEW_HXX
52 #include <view.hxx>
53 #endif
54 #include <cnttab.hxx>
55 #include <poolfmt.hxx>
56 #include <unoprnms.hxx>
57 #include <unotools.hxx>
58 #include <unotxdoc.hxx>
59 #include <docsh.hxx>
60 #include <swmodule.hxx>
61
62 #ifndef _CMDID_H
63 #include <cmdid.h>
64 #endif
65 #ifndef _UTLUI_HRC
66 #include <utlui.hrc>
67 #endif
68 #ifndef _INDEX_HRC
69 #include <index.hrc>
70 #endif
71 #ifndef _CNTTAB_HRC
72 #include <cnttab.hrc>
73 #endif
74 #ifndef _GLOBALS_HRC
75 #include <globals.hrc>
76 #endif
77 #include <SwStyleNameMapper.hxx>
78 #include <swuicnttab.hxx>
79 #include <unomid.h>
80
81
82 using namespace ::com::sun::star;
83 using namespace ::com::sun::star::text;
84 using namespace ::com::sun::star::beans;
85 using namespace ::com::sun::star::container;
86 using namespace ::com::sun::star::lang;
87 using namespace ::com::sun::star::ucb;
88 using namespace ::com::sun::star::uno;
89 using namespace com::sun::star::ui::dialogs;
90 using ::rtl::OUString;
91
92
93 #define INDEX_SECTION_NAME String::CreateFromAscii( \
94 RTL_CONSTASCII_STRINGPARAM( "IndexSection_" ))
95
96 #ifdef SW_PROP_NAME_STR
97 #undef SW_PROP_NAME_STR
98 #endif
99 #define SW_PROP_NAME_STR(nId) SwGetPropName((nId)).pName
100
101 /* -----------------04.11.99 11:28-------------------
102
103 --------------------------------------------------*/
lcl_SetProp(uno::Reference<XPropertySetInfo> & xInfo,uno::Reference<XPropertySet> & xProps,const char * pPropName,const String & rValue)104 void lcl_SetProp( uno::Reference< XPropertySetInfo > & xInfo,
105 uno::Reference< XPropertySet > & xProps,
106 const char* pPropName, const String& rValue)
107 {
108 OUString uPropName(C2U(pPropName));
109 if(xInfo->hasPropertyByName(uPropName))
110 {
111 uno::Any aValue;
112 aValue <<= OUString(rValue);
113 xProps->setPropertyValue(uPropName, aValue);
114 }
115 }
lcl_SetProp(uno::Reference<XPropertySetInfo> & xInfo,uno::Reference<XPropertySet> & xProps,sal_uInt16 nId,const String & rValue)116 void lcl_SetProp( uno::Reference< XPropertySetInfo > & xInfo,
117 uno::Reference< XPropertySet > & xProps,
118 sal_uInt16 nId, const String& rValue)
119 {
120 lcl_SetProp( xInfo, xProps, SW_PROP_NAME_STR(nId), rValue);
121 }
lcl_SetProp(uno::Reference<XPropertySetInfo> & xInfo,uno::Reference<XPropertySet> & xProps,sal_uInt16 nId,sal_Int16 nValue)122 void lcl_SetProp( uno::Reference< XPropertySetInfo > & xInfo,
123 uno::Reference< XPropertySet > & xProps,
124 sal_uInt16 nId, sal_Int16 nValue )
125 {
126 OUString uPropName(C2U(SW_PROP_NAME_STR(nId)));
127 if(xInfo->hasPropertyByName(uPropName))
128 {
129 uno::Any aValue;
130 aValue <<= nValue;
131 xProps->setPropertyValue(uPropName, aValue);
132 }
133 }
134
lcl_SetBOOLProp(uno::Reference<beans::XPropertySetInfo> & xInfo,uno::Reference<beans::XPropertySet> & xProps,sal_uInt16 nId,sal_Bool bValue)135 void lcl_SetBOOLProp(
136 uno::Reference< beans::XPropertySetInfo > & xInfo,
137 uno::Reference< beans::XPropertySet > & xProps,
138 sal_uInt16 nId, sal_Bool bValue )
139 {
140 OUString uPropName(C2U(SW_PROP_NAME_STR(nId)));
141 if(xInfo->hasPropertyByName(uPropName))
142 {
143 uno::Any aValue;
144 aValue.setValue(&bValue, ::getCppuBooleanType());
145 xProps->setPropertyValue(uPropName, aValue);
146 }
147 }
148 //-----------------------------------------------------------------------------
IMPL_LINK(SwMultiTOXTabDialog,CreateExample_Hdl,void *,EMPTYARG)149 IMPL_LINK( SwMultiTOXTabDialog, CreateExample_Hdl, void*, EMPTYARG )
150 {
151 try
152 {
153 uno::Reference< frame::XModel > & xModel = pExampleFrame->GetModel();
154 uno::Reference< lang::XUnoTunnel > xDocTunnel(xModel, uno::UNO_QUERY);
155 SwXTextDocument* pDoc = reinterpret_cast<SwXTextDocument*>(xDocTunnel->getSomething(SwXTextDocument::getUnoTunnelId()));
156
157 if( pDoc )
158 pDoc->GetDocShell()->_LoadStyles( *rSh.GetView().GetDocShell(), sal_True );
159
160 uno::Reference< lang::XMultiServiceFactory > xFact(
161 xModel, uno::UNO_QUERY);
162
163 uno::Reference< text::XTextSectionsSupplier > xSectionSupplier(
164 xModel, uno::UNO_QUERY);
165 uno::Reference< container::XNameAccess > xSections =
166 xSectionSupplier->getTextSections();
167
168 String sSectionName( INDEX_SECTION_NAME );
169 for(int i = 0; i < 7; ++i )
170 {
171 String sTmp( sSectionName ); sTmp += String::CreateFromInt32(i);
172 uno::Any aSection = xSections->getByName( sTmp );
173 aSection >>= pxIndexSectionsArr[i]->xContainerSection;
174 }
175 uno::Reference< text::XDocumentIndexesSupplier > xIdxSupp(xModel, uno::UNO_QUERY);
176 uno::Reference< container::XIndexAccess > xIdxs = xIdxSupp->getDocumentIndexes();
177 int n = xIdxs->getCount();
178 while(n)
179 {
180 n--;
181 uno::Any aIdx = xIdxs->getByIndex(n);
182 uno::Reference< text::XDocumentIndex > xIdx;
183 aIdx >>= xIdx;
184 xIdx->dispose();
185 }
186 CreateOrUpdateExample(eCurrentTOXType.eType);
187 }
188 catch(Exception&)
189 {
190 DBG_ERROR("::CreateExample() - exception caught");
191 }
192 return 0;
193 }
194
195 /* --------------------------------------------------
196
197 --------------------------------------------------*/
CreateOrUpdateExample(TOXTypes nTOXIndex,sal_uInt16 nPage,sal_uInt16 nCurrentLevel)198 void SwMultiTOXTabDialog::CreateOrUpdateExample(
199 TOXTypes nTOXIndex, sal_uInt16 nPage, sal_uInt16 nCurrentLevel)
200 {
201 if(!pExampleFrame || !pExampleFrame->IsInitialized())
202 return;
203
204 const char* __FAR_DATA IndexServiceNames[] =
205 {
206 "com.sun.star.text.DocumentIndex",
207 "com.sun.star.text.UserIndex",
208 "com.sun.star.text.ContentIndex",
209 "com.sun.star.text.IllustrationsIndex",
210 "com.sun.star.text.ObjectIndex",
211 "com.sun.star.text.TableIndex",
212 "com.sun.star.text.Bibliography"
213 };
214
215 try
216 {
217 DBG_ASSERT(pxIndexSectionsArr[nTOXIndex] &&
218 pxIndexSectionsArr[nTOXIndex]->xContainerSection.is(),
219 "Section not created");
220 uno::Reference< frame::XModel > & xModel = pExampleFrame->GetModel();
221 sal_Bool bInitialCreate = sal_True;
222 if(!pxIndexSectionsArr[nTOXIndex]->xDocumentIndex.is())
223 {
224 bInitialCreate = sal_True;
225 if(!pxIndexSectionsArr[nTOXIndex]->xContainerSection.is())
226 throw uno::RuntimeException();
227 uno::Reference< text::XTextRange > xAnchor = pxIndexSectionsArr[nTOXIndex]->xContainerSection->getAnchor();
228 xAnchor = xAnchor->getStart();
229 uno::Reference< text::XTextCursor > xCrsr = xAnchor->getText()->createTextCursorByRange(xAnchor);
230
231 uno::Reference< lang::XMultiServiceFactory > xFact(xModel, uno::UNO_QUERY);
232
233 String sIndexTypeName;
234 sIndexTypeName.AssignAscii( IndexServiceNames[
235 nTOXIndex <= TOX_AUTHORITIES ? nTOXIndex : TOX_USER] );
236 pxIndexSectionsArr[nTOXIndex]->xDocumentIndex = uno::Reference< text::XDocumentIndex > (xFact->createInstance(
237 sIndexTypeName), uno::UNO_QUERY);
238 uno::Reference< text::XTextContent > xContent(pxIndexSectionsArr[nTOXIndex]->xDocumentIndex, uno::UNO_QUERY);
239 uno::Reference< text::XTextRange > xRg(xCrsr, uno::UNO_QUERY);
240 xCrsr->getText()->insertTextContent(xRg, xContent, sal_False);
241 }
242 OUString uIsVisible(C2U(SW_PROP_NAME_STR(UNO_NAME_IS_VISIBLE)));
243 for(sal_uInt16 i = 0 ; i <= TOX_AUTHORITIES; i++)
244 {
245 uno::Reference< beans::XPropertySet > xSectPr(pxIndexSectionsArr[i]->xContainerSection, uno::UNO_QUERY);
246 uno::Any aVal;
247
248 if(xSectPr.is())
249 {
250 sal_Bool bTemp = i == nTOXIndex;
251 aVal.setValue(&bTemp, ::getBooleanCppuType());
252 xSectPr->setPropertyValue(uIsVisible, aVal);
253 }
254 }
255 // set properties
256 uno::Reference< beans::XPropertySet > xIdxProps(pxIndexSectionsArr[nTOXIndex]->xDocumentIndex, uno::UNO_QUERY);
257 uno::Reference< beans::XPropertySetInfo > xInfo = xIdxProps->getPropertySetInfo();
258 SwTOXDescription& rDesc = GetTOXDescription(eCurrentTOXType);
259 sal_uInt16 nIdxOptions = rDesc.GetIndexOptions();
260 if(bInitialCreate || !nPage || nPage == TOX_PAGE_SELECT)
261 {
262 //title
263 if(rDesc.GetTitle())
264 lcl_SetProp(xInfo, xIdxProps, UNO_NAME_TITLE, *rDesc.GetTitle());
265
266 //stylenames
267 sal_uInt16 nContentOptions = rDesc.GetContentOptions();
268 if(xInfo->hasPropertyByName(C2U(SW_PROP_NAME_STR(UNO_NAME_LEVEL_PARAGRAPH_STYLES))))
269 {
270 sal_Bool bOn = 0!=(nContentOptions&nsSwTOXElement::TOX_TEMPLATE );
271 uno::Any aStyleNames(xIdxProps->getPropertyValue(C2U(SW_PROP_NAME_STR(UNO_NAME_LEVEL_PARAGRAPH_STYLES))));
272 uno::Reference< container::XIndexReplace > xAcc;
273 aStyleNames >>= xAcc;
274
275 for(sal_uInt16 i = 0; i < MAXLEVEL; i++)
276 {
277 String sLevel;
278 if(bOn)
279 sLevel = rDesc.GetStyleNames(i);
280 sal_uInt16 nStyles = sLevel.GetTokenCount(TOX_STYLE_DELIMITER);
281 uno::Sequence<OUString> aStyles(nStyles);
282 OUString* pArr = aStyles.getArray();
283 for(sal_uInt16 nStyle = 0; nStyle < nStyles; nStyle++)
284 pArr[nStyle] = sLevel.GetToken(nStyle, TOX_STYLE_DELIMITER);
285 uno::Any aAny(&aStyles, ::getCppuType((uno::Sequence<OUString>*)0));
286 xAcc->replaceByIndex(i, aAny);
287 }
288 }
289 lcl_SetProp(xInfo, xIdxProps, UNO_NAME_LEVEL, (sal_Int16)rDesc.GetLevel());
290 lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_CREATE_FROM_MARKS, 0!=(nContentOptions&nsSwTOXElement::TOX_MARK ));
291 lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_CREATE_FROM_OUTLINE, 0!=(nContentOptions&nsSwTOXElement::TOX_OUTLINELEVEL));
292 lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_CREATE_FROM_EMBEDDED_OBJECTS,0!=(nContentOptions&nsSwTOXElement::TOX_OLE ));
293 lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_CREATE_FROM_TABLES , 0!=(nContentOptions&nsSwTOXElement::TOX_TABLE ));
294 lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_CREATE_FROM_GRAPHIC_OBJECTS, 0!=(nContentOptions&nsSwTOXElement::TOX_GRAPHIC ));
295 lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_CREATE_FROM_TEXT_FRAMES, 0!=(nContentOptions&nsSwTOXElement::TOX_FRAME ));
296 lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_CREATE_FROM_LABELS, 0!=(nContentOptions&nsSwTOXElement::TOX_SEQUENCE ));
297
298 lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_CREATE_FROM_CHAPTER, rDesc.IsFromChapter());
299 lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_IS_PROTECTED, rDesc.IsReadonly());
300
301 lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_USE_COMBINED_ENTRIES, 0 != (nIdxOptions&nsSwTOIOptions::TOI_SAME_ENTRY ));
302 lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_USE_P_P, 0 != (nIdxOptions&nsSwTOIOptions::TOI_FF ));
303 lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_IS_CASE_SENSITIVE, 0 != (nIdxOptions&nsSwTOIOptions::TOI_CASE_SENSITIVE ));
304 lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_USE_KEY_AS_ENTRY, 0 != (nIdxOptions&nsSwTOIOptions::TOI_KEY_AS_ENTRY ));
305 lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_USE_ALPHABETICAL_SEPARATORS, 0 != (nIdxOptions&nsSwTOIOptions::TOI_ALPHA_DELIMITTER));
306 lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_USE_DASH, 0 != (nIdxOptions&nsSwTOIOptions::TOI_DASH ));
307 lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_USE_UPPER_CASE, 0 != (nIdxOptions&nsSwTOIOptions::TOI_INITIAL_CAPS ));
308
309 String aTmpName( SwStyleNameMapper::GetSpecialExtraProgName( rDesc.GetSequenceName() ) );
310 lcl_SetProp(xInfo, xIdxProps, UNO_NAME_LABEL_CATEGORY, aTmpName );
311 lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_CREATE_FROM_LABELS, !rDesc.IsCreateFromObjectNames());
312
313 sal_Int16 nSet = text::ChapterFormat::NAME_NUMBER;
314 switch (rDesc.GetCaptionDisplay())
315 {
316 case CAPTION_COMPLETE: nSet = text::ChapterFormat::NAME_NUMBER;break;
317 case CAPTION_NUMBER : nSet = text::ChapterFormat::NUMBER; break;
318 case CAPTION_TEXT : nSet = text::ChapterFormat::NAME; break;
319 }
320 lcl_SetProp(xInfo, xIdxProps, UNO_NAME_LABEL_DISPLAY_TYPE, nSet);
321
322 sal_uInt16 nOLEOptions = rDesc.GetOLEOptions();
323 lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_CREATE_FROM_STAR_MATH, 0 != (nsSwTOOElements::TOO_MATH &nOLEOptions ));
324 lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_CREATE_FROM_STAR_CHART, 0 != (nsSwTOOElements::TOO_CHART &nOLEOptions ));
325 lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_CREATE_FROM_STAR_CALC, 0 != (nsSwTOOElements::TOO_CALC &nOLEOptions ));
326 lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_CREATE_FROM_STAR_DRAW, 0 != (nsSwTOOElements::TOO_DRAW_IMPRESS&nOLEOptions));
327 lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_CREATE_FROM_OTHER_EMBEDDED_OBJECTS, 0 != (nsSwTOOElements::TOO_OTHER|nOLEOptions ));
328
329 //lcl_SetBOOLProp(xInfo, xIdxProps, , rDesc.IsLevelFromChapter());
330 }
331 const SwForm* pForm = GetForm(eCurrentTOXType);
332 if(bInitialCreate || !nPage || nPage == TOX_PAGE_ENTRY)
333 {
334 lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_IS_COMMA_SEPARATED, pForm->IsCommaSeparated());
335 lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_USE_ALPHABETICAL_SEPARATORS, 0 != (nIdxOptions&nsSwTOIOptions::TOI_ALPHA_DELIMITTER));
336 sal_uInt16 nStartLevel = USHRT_MAX;
337 sal_uInt16 nEndLevel = USHRT_MAX;
338 if(nCurrentLevel < pForm->GetFormMax())
339 nStartLevel = nEndLevel = nCurrentLevel;
340 else
341 {
342 nStartLevel = 0;
343 nEndLevel = pForm->GetFormMax() - 1;
344 }
345
346 if(xInfo->hasPropertyByName(C2U(SW_PROP_NAME_STR(UNO_NAME_LEVEL_FORMAT))))
347 {
348 for(sal_uInt16 nCurrLevel = nStartLevel; nCurrLevel <= nEndLevel; nCurrLevel++)
349 {
350 String sTokenType;
351 uno::Sequence< beans::PropertyValues> aSequPropVals(10);
352 long nTokenIndex = 0;
353 long nParamCount = 2;
354
355 // #i24377#
356 SwFormTokens aPattern = pForm->GetPattern(nCurrLevel);
357 SwFormTokens::iterator aIt = aPattern.begin();
358
359 while(aIt != aPattern.end())
360 {
361 if( aSequPropVals.getLength() <= nTokenIndex)
362 aSequPropVals.realloc(nTokenIndex + 10);
363
364 SwFormToken aToken = *aIt; // #i24377#
365 switch(aToken.eTokenType)
366 {
367 case TOKEN_ENTRY_NO :
368 sTokenType.AssignAscii(RTL_CONSTASCII_STRINGPARAM(
369 "TokenEntryNumber"));
370 // fuer Inhaltsverzeichnis Numerierung
371 break;
372 case TOKEN_ENTRY_TEXT :
373 case TOKEN_ENTRY :
374 sTokenType.AssignAscii(RTL_CONSTASCII_STRINGPARAM(
375 "TokenEntryText"));
376 break;
377 case TOKEN_TAB_STOP :
378 nParamCount += 3;
379 sTokenType.AssignAscii(RTL_CONSTASCII_STRINGPARAM(
380 "TokenTabStop"));
381 break;
382 case TOKEN_TEXT :
383 sTokenType.AssignAscii(RTL_CONSTASCII_STRINGPARAM(
384 "TokenText"));
385 nParamCount += 1;
386 break;
387 case TOKEN_PAGE_NUMS :
388 sTokenType.AssignAscii(RTL_CONSTASCII_STRINGPARAM(
389 "TokenPageNumber"));
390 break;
391 case TOKEN_CHAPTER_INFO :
392 sTokenType.AssignAscii(RTL_CONSTASCII_STRINGPARAM(
393 "TokenChapterInfo"));
394 break;
395 case TOKEN_LINK_START :
396 sTokenType.AssignAscii(RTL_CONSTASCII_STRINGPARAM(
397 "TokenHyperlinkStart"));
398 break;
399 case TOKEN_LINK_END :
400 sTokenType.AssignAscii(RTL_CONSTASCII_STRINGPARAM(
401 "TokenHyperlinkEnd"));
402 break;
403 case TOKEN_AUTHORITY :
404 {
405 sTokenType.AssignAscii(RTL_CONSTASCII_STRINGPARAM(
406 "TokenBibliographyDataField"));
407 }
408 break;
409 default:; //prevent warning
410 }
411 beans::PropertyValues aPropVals(nParamCount);
412 beans::PropertyValue* pPropValArr = aPropVals.getArray();
413 pPropValArr[0].Name = C2U("TokenType");
414 pPropValArr[0].Value <<= OUString(sTokenType);
415 pPropValArr[1].Name = C2U("CharacterStyleName");
416 pPropValArr[1].Value <<= OUString(aToken.sCharStyleName);
417 if(TOKEN_TAB_STOP == aToken.eTokenType)
418 {
419 pPropValArr[2].Name = C2U("TabStopRightAligned");
420 sal_Bool bTemp = SVX_TAB_ADJUST_END == aToken.eTabAlign;
421 pPropValArr[2].Value.setValue(&bTemp, ::getBooleanCppuType());
422 pPropValArr[3].Name = C2U("TabStopFillCharacter");
423 pPropValArr[3].Value <<= OUString(aToken.cTabFillChar);
424 pPropValArr[4].Name = C2U("TabStopPosition");
425 SwTwips nTempPos = aToken.nTabStopPosition >= 0 ?
426 aToken.nTabStopPosition : 0;
427 nTempPos = TWIP_TO_MM100(nTempPos);
428 pPropValArr[4].Value <<= (sal_Int32)nTempPos;
429 }
430 else if(TOKEN_TEXT == aToken.eTokenType)
431 {
432 pPropValArr[2].Name = C2U("Text");
433 pPropValArr[2].Value <<= OUString(aToken.sText);
434 }
435 beans::PropertyValues* pValues = aSequPropVals.getArray();
436 pValues[nTokenIndex] = aPropVals;
437 nTokenIndex++;
438
439 aIt++; // #i24377#
440 }
441 aSequPropVals.realloc(nTokenIndex);
442
443 uno::Any aFormatAccess = xIdxProps->getPropertyValue(C2U(SW_PROP_NAME_STR(UNO_NAME_LEVEL_FORMAT)));
444 DBG_ASSERT(aFormatAccess.getValueType() == ::getCppuType((uno::Reference<container::XIndexReplace>*)0),
445 "wrong property type");
446
447
448 uno::Reference< container::XIndexReplace > xFormatAccess;
449 aFormatAccess >>= xFormatAccess;
450 uno::Any aLevelProp(&aSequPropVals, ::getCppuType((uno::Sequence<beans::PropertyValues>*)0));
451 xFormatAccess->replaceByIndex(nCurrLevel, aLevelProp);
452 }
453 }
454 }
455 if(bInitialCreate || !nPage || nPage == TOX_PAGE_STYLES)
456 {
457 lcl_SetProp(xInfo, xIdxProps, "ParaStyleHeading", pForm->GetTemplate(0));
458 sal_uInt16 nOffset = 0;
459 sal_uInt16 nEndLevel = 2;
460 switch(eCurrentTOXType.eType)
461 {
462 case TOX_INDEX:
463 {
464 nOffset = 1;
465 nEndLevel = 4;
466 lcl_SetProp(xInfo, xIdxProps, "ParaStyleSeparator", pForm->GetTemplate(1));
467 }
468 break;
469 case TOX_CONTENT :
470 nEndLevel = 11;
471 break;
472 default:; //prevent warning
473 }
474 for(sal_uInt16 i = 1; i < nEndLevel; i++)
475 {
476 String sPropName(C2S("ParaStyleLevel"));
477 sPropName += String::CreateFromInt32( i );
478 lcl_SetProp(xInfo,
479 xIdxProps,
480 ByteString(sPropName, RTL_TEXTENCODING_ASCII_US).GetBuffer(),
481 pForm->GetTemplate(i + nOffset));
482 }
483 }
484 /*
485 const String& GetAutoMarkURL() const { return sAutoMarkURL;}
486 const String& GetMainEntryCharStyle() const {return sMainEntryCharStyle;}
487
488 String GetAuthBrackets() const {return sAuthBrackets;}
489 sal_Bool IsAuthSequence() const {return bIsAuthSequence;}
490 sal_Bool IsSortByDocument()const {return bSortByDocument ;}
491
492 SwTOXSortKey GetSortKey1() const {return eSortKey1;}
493 SwTOXSortKey GetSortKey2() const {return eSortKey2;}
494 SwTOXSortKey GetSortKey3() const {return eSortKey3;}
495 */
496 //
497 pxIndexSectionsArr[nTOXIndex]->xDocumentIndex->update();
498
499 //#if OSL_DEBUG_LEVEL > 1
500 // uno::Reference< frame::XStorable > xStor(xModel, uno::UNO_QUERY);
501 // String sURL("file:///e|/temp/sw/idxexample.sdw");
502 // uno::Sequence< beans::PropertyValue > aArgs(0);
503 // xStor->storeToURL(S2U(sURL), aArgs);
504 //#endif
505
506 }
507 catch(Exception&)
508 {
509 DBG_ERROR("::CreateExample() - exception caught");
510 }
511 }
512
513