| /************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| |
| // MARKER(update_precomp.py): autogen include statement, do not remove |
| #include "precompiled_sw.hxx" |
| |
| #ifdef SW_DLLIMPLEMENTATION |
| #undef SW_DLLIMPLEMENTATION |
| #endif |
| |
| |
| |
| #include <rsc/rscsfx.hxx> |
| #include <com/sun/star/text/XDocumentIndexesSupplier.hpp> |
| #include <com/sun/star/text/XDocumentIndex.hpp> |
| #include <com/sun/star/text/XTextSectionsSupplier.hpp> |
| #include <com/sun/star/style/BreakType.hpp> |
| #include <com/sun/star/text/XTextFieldsSupplier.hpp> |
| #include <com/sun/star/text/XDependentTextField.hpp> |
| #include <com/sun/star/text/XParagraphCursor.hpp> |
| #include <com/sun/star/text/XDocumentIndex.hpp> |
| #include <com/sun/star/text/ChapterFormat.hpp> |
| #include <com/sun/star/text/XTextSection.hpp> |
| #include <com/sun/star/text/ControlCharacter.hpp> |
| #include <com/sun/star/beans/PropertyValues.hpp> |
| #include <com/sun/star/text/TextContentAnchorType.hpp> |
| #include <com/sun/star/ucb/XCommandEnvironment.hpp> |
| #include <com/sun/star/ui/dialogs/XFilePicker.hpp> |
| #include <com/sun/star/ui/dialogs/XFilterManager.hpp> |
| #include <wrtsh.hxx> |
| #ifndef _VIEW_HXX |
| #include <view.hxx> |
| #endif |
| #include <cnttab.hxx> |
| #include <poolfmt.hxx> |
| #include <unoprnms.hxx> |
| #include <unotools.hxx> |
| #include <unotxdoc.hxx> |
| #include <docsh.hxx> |
| #include <swmodule.hxx> |
| |
| #ifndef _CMDID_H |
| #include <cmdid.h> |
| #endif |
| #ifndef _UTLUI_HRC |
| #include <utlui.hrc> |
| #endif |
| #ifndef _INDEX_HRC |
| #include <index.hrc> |
| #endif |
| #ifndef _CNTTAB_HRC |
| #include <cnttab.hrc> |
| #endif |
| #ifndef _GLOBALS_HRC |
| #include <globals.hrc> |
| #endif |
| #include <SwStyleNameMapper.hxx> |
| #include <swuicnttab.hxx> |
| #include <unomid.h> |
| |
| |
| using namespace ::com::sun::star; |
| using namespace ::com::sun::star::text; |
| using namespace ::com::sun::star::beans; |
| using namespace ::com::sun::star::container; |
| using namespace ::com::sun::star::lang; |
| using namespace ::com::sun::star::ucb; |
| using namespace ::com::sun::star::uno; |
| using namespace com::sun::star::ui::dialogs; |
| using ::rtl::OUString; |
| |
| |
| #define INDEX_SECTION_NAME String::CreateFromAscii( \ |
| RTL_CONSTASCII_STRINGPARAM( "IndexSection_" )) |
| |
| #ifdef SW_PROP_NAME_STR |
| #undef SW_PROP_NAME_STR |
| #endif |
| #define SW_PROP_NAME_STR(nId) SwGetPropName((nId)).pName |
| |
| /* -----------------04.11.99 11:28------------------- |
| |
| --------------------------------------------------*/ |
| void lcl_SetProp( uno::Reference< XPropertySetInfo > & xInfo, |
| uno::Reference< XPropertySet > & xProps, |
| const char* pPropName, const String& rValue) |
| { |
| OUString uPropName(C2U(pPropName)); |
| if(xInfo->hasPropertyByName(uPropName)) |
| { |
| uno::Any aValue; |
| aValue <<= OUString(rValue); |
| xProps->setPropertyValue(uPropName, aValue); |
| } |
| } |
| void lcl_SetProp( uno::Reference< XPropertySetInfo > & xInfo, |
| uno::Reference< XPropertySet > & xProps, |
| sal_uInt16 nId, const String& rValue) |
| { |
| lcl_SetProp( xInfo, xProps, SW_PROP_NAME_STR(nId), rValue); |
| } |
| void lcl_SetProp( uno::Reference< XPropertySetInfo > & xInfo, |
| uno::Reference< XPropertySet > & xProps, |
| sal_uInt16 nId, sal_Int16 nValue ) |
| { |
| OUString uPropName(C2U(SW_PROP_NAME_STR(nId))); |
| if(xInfo->hasPropertyByName(uPropName)) |
| { |
| uno::Any aValue; |
| aValue <<= nValue; |
| xProps->setPropertyValue(uPropName, aValue); |
| } |
| } |
| |
| void lcl_SetBOOLProp( |
| uno::Reference< beans::XPropertySetInfo > & xInfo, |
| uno::Reference< beans::XPropertySet > & xProps, |
| sal_uInt16 nId, sal_Bool bValue ) |
| { |
| OUString uPropName(C2U(SW_PROP_NAME_STR(nId))); |
| if(xInfo->hasPropertyByName(uPropName)) |
| { |
| uno::Any aValue; |
| aValue.setValue(&bValue, ::getCppuBooleanType()); |
| xProps->setPropertyValue(uPropName, aValue); |
| } |
| } |
| //----------------------------------------------------------------------------- |
| IMPL_LINK( SwMultiTOXTabDialog, CreateExample_Hdl, void*, EMPTYARG ) |
| { |
| try |
| { |
| uno::Reference< frame::XModel > & xModel = pExampleFrame->GetModel(); |
| uno::Reference< lang::XUnoTunnel > xDocTunnel(xModel, uno::UNO_QUERY); |
| SwXTextDocument* pDoc = reinterpret_cast<SwXTextDocument*>(xDocTunnel->getSomething(SwXTextDocument::getUnoTunnelId())); |
| |
| if( pDoc ) |
| pDoc->GetDocShell()->_LoadStyles( *rSh.GetView().GetDocShell(), sal_True ); |
| |
| uno::Reference< lang::XMultiServiceFactory > xFact( |
| xModel, uno::UNO_QUERY); |
| |
| uno::Reference< text::XTextSectionsSupplier > xSectionSupplier( |
| xModel, uno::UNO_QUERY); |
| uno::Reference< container::XNameAccess > xSections = |
| xSectionSupplier->getTextSections(); |
| |
| String sSectionName( INDEX_SECTION_NAME ); |
| for(int i = 0; i < 7; ++i ) |
| { |
| String sTmp( sSectionName ); sTmp += String::CreateFromInt32(i); |
| uno::Any aSection = xSections->getByName( sTmp ); |
| aSection >>= pxIndexSectionsArr[i]->xContainerSection; |
| } |
| uno::Reference< text::XDocumentIndexesSupplier > xIdxSupp(xModel, uno::UNO_QUERY); |
| uno::Reference< container::XIndexAccess > xIdxs = xIdxSupp->getDocumentIndexes(); |
| int n = xIdxs->getCount(); |
| while(n) |
| { |
| n--; |
| uno::Any aIdx = xIdxs->getByIndex(n); |
| uno::Reference< text::XDocumentIndex > xIdx; |
| aIdx >>= xIdx; |
| xIdx->dispose(); |
| } |
| CreateOrUpdateExample(eCurrentTOXType.eType); |
| } |
| catch(Exception&) |
| { |
| DBG_ERROR("::CreateExample() - exception caught"); |
| } |
| return 0; |
| } |
| |
| /* -------------------------------------------------- |
| |
| --------------------------------------------------*/ |
| void SwMultiTOXTabDialog::CreateOrUpdateExample( |
| TOXTypes nTOXIndex, sal_uInt16 nPage, sal_uInt16 nCurrentLevel) |
| { |
| if(!pExampleFrame || !pExampleFrame->IsInitialized()) |
| return; |
| |
| const char* __FAR_DATA IndexServiceNames[] = |
| { |
| "com.sun.star.text.DocumentIndex", |
| "com.sun.star.text.UserIndex", |
| "com.sun.star.text.ContentIndex", |
| "com.sun.star.text.IllustrationsIndex", |
| "com.sun.star.text.ObjectIndex", |
| "com.sun.star.text.TableIndex", |
| "com.sun.star.text.Bibliography" |
| }; |
| |
| try |
| { |
| DBG_ASSERT(pxIndexSectionsArr[nTOXIndex] && |
| pxIndexSectionsArr[nTOXIndex]->xContainerSection.is(), |
| "Section not created"); |
| uno::Reference< frame::XModel > & xModel = pExampleFrame->GetModel(); |
| sal_Bool bInitialCreate = sal_True; |
| if(!pxIndexSectionsArr[nTOXIndex]->xDocumentIndex.is()) |
| { |
| bInitialCreate = sal_True; |
| if(!pxIndexSectionsArr[nTOXIndex]->xContainerSection.is()) |
| throw uno::RuntimeException(); |
| uno::Reference< text::XTextRange > xAnchor = pxIndexSectionsArr[nTOXIndex]->xContainerSection->getAnchor(); |
| xAnchor = xAnchor->getStart(); |
| uno::Reference< text::XTextCursor > xCrsr = xAnchor->getText()->createTextCursorByRange(xAnchor); |
| |
| uno::Reference< lang::XMultiServiceFactory > xFact(xModel, uno::UNO_QUERY); |
| |
| String sIndexTypeName; |
| sIndexTypeName.AssignAscii( IndexServiceNames[ |
| nTOXIndex <= TOX_AUTHORITIES ? nTOXIndex : TOX_USER] ); |
| pxIndexSectionsArr[nTOXIndex]->xDocumentIndex = uno::Reference< text::XDocumentIndex > (xFact->createInstance( |
| sIndexTypeName), uno::UNO_QUERY); |
| uno::Reference< text::XTextContent > xContent(pxIndexSectionsArr[nTOXIndex]->xDocumentIndex, uno::UNO_QUERY); |
| uno::Reference< text::XTextRange > xRg(xCrsr, uno::UNO_QUERY); |
| xCrsr->getText()->insertTextContent(xRg, xContent, sal_False); |
| } |
| OUString uIsVisible(C2U(SW_PROP_NAME_STR(UNO_NAME_IS_VISIBLE))); |
| for(sal_uInt16 i = 0 ; i <= TOX_AUTHORITIES; i++) |
| { |
| uno::Reference< beans::XPropertySet > xSectPr(pxIndexSectionsArr[i]->xContainerSection, uno::UNO_QUERY); |
| uno::Any aVal; |
| |
| if(xSectPr.is()) |
| { |
| sal_Bool bTemp = i == nTOXIndex; |
| aVal.setValue(&bTemp, ::getBooleanCppuType()); |
| xSectPr->setPropertyValue(uIsVisible, aVal); |
| } |
| } |
| // set properties |
| uno::Reference< beans::XPropertySet > xIdxProps(pxIndexSectionsArr[nTOXIndex]->xDocumentIndex, uno::UNO_QUERY); |
| uno::Reference< beans::XPropertySetInfo > xInfo = xIdxProps->getPropertySetInfo(); |
| SwTOXDescription& rDesc = GetTOXDescription(eCurrentTOXType); |
| sal_uInt16 nIdxOptions = rDesc.GetIndexOptions(); |
| if(bInitialCreate || !nPage || nPage == TOX_PAGE_SELECT) |
| { |
| //title |
| if(rDesc.GetTitle()) |
| lcl_SetProp(xInfo, xIdxProps, UNO_NAME_TITLE, *rDesc.GetTitle()); |
| |
| //stylenames |
| sal_uInt16 nContentOptions = rDesc.GetContentOptions(); |
| if(xInfo->hasPropertyByName(C2U(SW_PROP_NAME_STR(UNO_NAME_LEVEL_PARAGRAPH_STYLES)))) |
| { |
| sal_Bool bOn = 0!=(nContentOptions&nsSwTOXElement::TOX_TEMPLATE ); |
| uno::Any aStyleNames(xIdxProps->getPropertyValue(C2U(SW_PROP_NAME_STR(UNO_NAME_LEVEL_PARAGRAPH_STYLES)))); |
| uno::Reference< container::XIndexReplace > xAcc; |
| aStyleNames >>= xAcc; |
| |
| for(sal_uInt16 i = 0; i < MAXLEVEL; i++) |
| { |
| String sLevel; |
| if(bOn) |
| sLevel = rDesc.GetStyleNames(i); |
| sal_uInt16 nStyles = sLevel.GetTokenCount(TOX_STYLE_DELIMITER); |
| uno::Sequence<OUString> aStyles(nStyles); |
| OUString* pArr = aStyles.getArray(); |
| for(sal_uInt16 nStyle = 0; nStyle < nStyles; nStyle++) |
| pArr[nStyle] = sLevel.GetToken(nStyle, TOX_STYLE_DELIMITER); |
| uno::Any aAny(&aStyles, ::getCppuType((uno::Sequence<OUString>*)0)); |
| xAcc->replaceByIndex(i, aAny); |
| } |
| } |
| lcl_SetProp(xInfo, xIdxProps, UNO_NAME_LEVEL, (sal_Int16)rDesc.GetLevel()); |
| lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_CREATE_FROM_MARKS, 0!=(nContentOptions&nsSwTOXElement::TOX_MARK )); |
| lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_CREATE_FROM_OUTLINE, 0!=(nContentOptions&nsSwTOXElement::TOX_OUTLINELEVEL)); |
| lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_CREATE_FROM_EMBEDDED_OBJECTS,0!=(nContentOptions&nsSwTOXElement::TOX_OLE )); |
| lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_CREATE_FROM_TABLES , 0!=(nContentOptions&nsSwTOXElement::TOX_TABLE )); |
| lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_CREATE_FROM_GRAPHIC_OBJECTS, 0!=(nContentOptions&nsSwTOXElement::TOX_GRAPHIC )); |
| lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_CREATE_FROM_TEXT_FRAMES, 0!=(nContentOptions&nsSwTOXElement::TOX_FRAME )); |
| lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_CREATE_FROM_LABELS, 0!=(nContentOptions&nsSwTOXElement::TOX_SEQUENCE )); |
| |
| lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_CREATE_FROM_CHAPTER, rDesc.IsFromChapter()); |
| lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_IS_PROTECTED, rDesc.IsReadonly()); |
| |
| lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_USE_COMBINED_ENTRIES, 0 != (nIdxOptions&nsSwTOIOptions::TOI_SAME_ENTRY )); |
| lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_USE_P_P, 0 != (nIdxOptions&nsSwTOIOptions::TOI_FF )); |
| lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_IS_CASE_SENSITIVE, 0 != (nIdxOptions&nsSwTOIOptions::TOI_CASE_SENSITIVE )); |
| lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_USE_KEY_AS_ENTRY, 0 != (nIdxOptions&nsSwTOIOptions::TOI_KEY_AS_ENTRY )); |
| lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_USE_ALPHABETICAL_SEPARATORS, 0 != (nIdxOptions&nsSwTOIOptions::TOI_ALPHA_DELIMITTER)); |
| lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_USE_DASH, 0 != (nIdxOptions&nsSwTOIOptions::TOI_DASH )); |
| lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_USE_UPPER_CASE, 0 != (nIdxOptions&nsSwTOIOptions::TOI_INITIAL_CAPS )); |
| |
| String aTmpName( SwStyleNameMapper::GetSpecialExtraProgName( rDesc.GetSequenceName() ) ); |
| lcl_SetProp(xInfo, xIdxProps, UNO_NAME_LABEL_CATEGORY, aTmpName ); |
| lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_CREATE_FROM_LABELS, !rDesc.IsCreateFromObjectNames()); |
| |
| sal_Int16 nSet = text::ChapterFormat::NAME_NUMBER; |
| switch (rDesc.GetCaptionDisplay()) |
| { |
| case CAPTION_COMPLETE: nSet = text::ChapterFormat::NAME_NUMBER;break; |
| case CAPTION_NUMBER : nSet = text::ChapterFormat::NUMBER; break; |
| case CAPTION_TEXT : nSet = text::ChapterFormat::NAME; break; |
| } |
| lcl_SetProp(xInfo, xIdxProps, UNO_NAME_LABEL_DISPLAY_TYPE, nSet); |
| |
| sal_uInt16 nOLEOptions = rDesc.GetOLEOptions(); |
| lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_CREATE_FROM_STAR_MATH, 0 != (nsSwTOOElements::TOO_MATH &nOLEOptions )); |
| lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_CREATE_FROM_STAR_CHART, 0 != (nsSwTOOElements::TOO_CHART &nOLEOptions )); |
| lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_CREATE_FROM_STAR_CALC, 0 != (nsSwTOOElements::TOO_CALC &nOLEOptions )); |
| lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_CREATE_FROM_STAR_DRAW, 0 != (nsSwTOOElements::TOO_DRAW_IMPRESS&nOLEOptions)); |
| lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_CREATE_FROM_OTHER_EMBEDDED_OBJECTS, 0 != (nsSwTOOElements::TOO_OTHER|nOLEOptions )); |
| |
| //lcl_SetBOOLProp(xInfo, xIdxProps, , rDesc.IsLevelFromChapter()); |
| } |
| const SwForm* pForm = GetForm(eCurrentTOXType); |
| if(bInitialCreate || !nPage || nPage == TOX_PAGE_ENTRY) |
| { |
| lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_IS_COMMA_SEPARATED, pForm->IsCommaSeparated()); |
| lcl_SetBOOLProp(xInfo, xIdxProps, UNO_NAME_USE_ALPHABETICAL_SEPARATORS, 0 != (nIdxOptions&nsSwTOIOptions::TOI_ALPHA_DELIMITTER)); |
| sal_uInt16 nStartLevel = USHRT_MAX; |
| sal_uInt16 nEndLevel = USHRT_MAX; |
| if(nCurrentLevel < pForm->GetFormMax()) |
| nStartLevel = nEndLevel = nCurrentLevel; |
| else |
| { |
| nStartLevel = 0; |
| nEndLevel = pForm->GetFormMax() - 1; |
| } |
| |
| if(xInfo->hasPropertyByName(C2U(SW_PROP_NAME_STR(UNO_NAME_LEVEL_FORMAT)))) |
| { |
| for(sal_uInt16 nCurrLevel = nStartLevel; nCurrLevel <= nEndLevel; nCurrLevel++) |
| { |
| String sTokenType; |
| uno::Sequence< beans::PropertyValues> aSequPropVals(10); |
| long nTokenIndex = 0; |
| long nParamCount = 2; |
| |
| // #i24377# |
| SwFormTokens aPattern = pForm->GetPattern(nCurrLevel); |
| SwFormTokens::iterator aIt = aPattern.begin(); |
| |
| while(aIt != aPattern.end()) |
| { |
| if( aSequPropVals.getLength() <= nTokenIndex) |
| aSequPropVals.realloc(nTokenIndex + 10); |
| |
| SwFormToken aToken = *aIt; // #i24377# |
| switch(aToken.eTokenType) |
| { |
| case TOKEN_ENTRY_NO : |
| sTokenType.AssignAscii(RTL_CONSTASCII_STRINGPARAM( |
| "TokenEntryNumber")); |
| // fuer Inhaltsverzeichnis Numerierung |
| break; |
| case TOKEN_ENTRY_TEXT : |
| case TOKEN_ENTRY : |
| sTokenType.AssignAscii(RTL_CONSTASCII_STRINGPARAM( |
| "TokenEntryText")); |
| break; |
| case TOKEN_TAB_STOP : |
| nParamCount += 3; |
| sTokenType.AssignAscii(RTL_CONSTASCII_STRINGPARAM( |
| "TokenTabStop")); |
| break; |
| case TOKEN_TEXT : |
| sTokenType.AssignAscii(RTL_CONSTASCII_STRINGPARAM( |
| "TokenText")); |
| nParamCount += 1; |
| break; |
| case TOKEN_PAGE_NUMS : |
| sTokenType.AssignAscii(RTL_CONSTASCII_STRINGPARAM( |
| "TokenPageNumber")); |
| break; |
| case TOKEN_CHAPTER_INFO : |
| sTokenType.AssignAscii(RTL_CONSTASCII_STRINGPARAM( |
| "TokenChapterInfo")); |
| break; |
| case TOKEN_LINK_START : |
| sTokenType.AssignAscii(RTL_CONSTASCII_STRINGPARAM( |
| "TokenHyperlinkStart")); |
| break; |
| case TOKEN_LINK_END : |
| sTokenType.AssignAscii(RTL_CONSTASCII_STRINGPARAM( |
| "TokenHyperlinkEnd")); |
| break; |
| case TOKEN_AUTHORITY : |
| { |
| sTokenType.AssignAscii(RTL_CONSTASCII_STRINGPARAM( |
| "TokenBibliographyDataField")); |
| } |
| break; |
| default:; //prevent warning |
| } |
| beans::PropertyValues aPropVals(nParamCount); |
| beans::PropertyValue* pPropValArr = aPropVals.getArray(); |
| pPropValArr[0].Name = C2U("TokenType"); |
| pPropValArr[0].Value <<= OUString(sTokenType); |
| pPropValArr[1].Name = C2U("CharacterStyleName"); |
| pPropValArr[1].Value <<= OUString(aToken.sCharStyleName); |
| if(TOKEN_TAB_STOP == aToken.eTokenType) |
| { |
| pPropValArr[2].Name = C2U("TabStopRightAligned"); |
| sal_Bool bTemp = SVX_TAB_ADJUST_END == aToken.eTabAlign; |
| pPropValArr[2].Value.setValue(&bTemp, ::getBooleanCppuType()); |
| pPropValArr[3].Name = C2U("TabStopFillCharacter"); |
| pPropValArr[3].Value <<= OUString(aToken.cTabFillChar); |
| pPropValArr[4].Name = C2U("TabStopPosition"); |
| SwTwips nTempPos = aToken.nTabStopPosition >= 0 ? |
| aToken.nTabStopPosition : 0; |
| nTempPos = TWIP_TO_MM100(nTempPos); |
| pPropValArr[4].Value <<= (sal_Int32)nTempPos; |
| } |
| else if(TOKEN_TEXT == aToken.eTokenType) |
| { |
| pPropValArr[2].Name = C2U("Text"); |
| pPropValArr[2].Value <<= OUString(aToken.sText); |
| } |
| beans::PropertyValues* pValues = aSequPropVals.getArray(); |
| pValues[nTokenIndex] = aPropVals; |
| nTokenIndex++; |
| |
| aIt++; // #i24377# |
| } |
| aSequPropVals.realloc(nTokenIndex); |
| |
| uno::Any aFormatAccess = xIdxProps->getPropertyValue(C2U(SW_PROP_NAME_STR(UNO_NAME_LEVEL_FORMAT))); |
| DBG_ASSERT(aFormatAccess.getValueType() == ::getCppuType((uno::Reference<container::XIndexReplace>*)0), |
| "wrong property type"); |
| |
| |
| uno::Reference< container::XIndexReplace > xFormatAccess; |
| aFormatAccess >>= xFormatAccess; |
| uno::Any aLevelProp(&aSequPropVals, ::getCppuType((uno::Sequence<beans::PropertyValues>*)0)); |
| xFormatAccess->replaceByIndex(nCurrLevel, aLevelProp); |
| } |
| } |
| } |
| if(bInitialCreate || !nPage || nPage == TOX_PAGE_STYLES) |
| { |
| lcl_SetProp(xInfo, xIdxProps, "ParaStyleHeading", pForm->GetTemplate(0)); |
| sal_uInt16 nOffset = 0; |
| sal_uInt16 nEndLevel = 2; |
| switch(eCurrentTOXType.eType) |
| { |
| case TOX_INDEX: |
| { |
| nOffset = 1; |
| nEndLevel = 4; |
| lcl_SetProp(xInfo, xIdxProps, "ParaStyleSeparator", pForm->GetTemplate(1)); |
| } |
| break; |
| case TOX_CONTENT : |
| nEndLevel = 11; |
| break; |
| default:; //prevent warning |
| } |
| for(sal_uInt16 i = 1; i < nEndLevel; i++) |
| { |
| String sPropName(C2S("ParaStyleLevel")); |
| sPropName += String::CreateFromInt32( i ); |
| lcl_SetProp(xInfo, |
| xIdxProps, |
| ByteString(sPropName, RTL_TEXTENCODING_ASCII_US).GetBuffer(), |
| pForm->GetTemplate(i + nOffset)); |
| } |
| } |
| /* |
| const String& GetAutoMarkURL() const { return sAutoMarkURL;} |
| const String& GetMainEntryCharStyle() const {return sMainEntryCharStyle;} |
| |
| String GetAuthBrackets() const {return sAuthBrackets;} |
| sal_Bool IsAuthSequence() const {return bIsAuthSequence;} |
| sal_Bool IsSortByDocument()const {return bSortByDocument ;} |
| |
| SwTOXSortKey GetSortKey1() const {return eSortKey1;} |
| SwTOXSortKey GetSortKey2() const {return eSortKey2;} |
| SwTOXSortKey GetSortKey3() const {return eSortKey3;} |
| */ |
| // |
| pxIndexSectionsArr[nTOXIndex]->xDocumentIndex->update(); |
| |
| //#if OSL_DEBUG_LEVEL > 1 |
| // uno::Reference< frame::XStorable > xStor(xModel, uno::UNO_QUERY); |
| // String sURL("file:///e|/temp/sw/idxexample.sdw"); |
| // uno::Sequence< beans::PropertyValue > aArgs(0); |
| // xStor->storeToURL(S2U(sURL), aArgs); |
| //#endif |
| |
| } |
| catch(Exception&) |
| { |
| DBG_ERROR("::CreateExample() - exception caught"); |
| } |
| } |
| |