LCOV - code coverage report
Current view: top level - sw/source/uibase/config - uinums.cxx (source / functions) Hit Total Coverage
Test: commit 10e77ab3ff6f4314137acd6e2702a6e5c1ce1fae Lines: 1 290 0.3 %
Date: 2014-11-03 Functions: 2 26 7.7 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2             : /*
       3             :  * This file is part of the LibreOffice project.
       4             :  *
       5             :  * This Source Code Form is subject to the terms of the Mozilla Public
       6             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       7             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
       8             :  *
       9             :  * This file incorporates work covered by the following license notice:
      10             :  *
      11             :  *   Licensed to the Apache Software Foundation (ASF) under one or more
      12             :  *   contributor license agreements. See the NOTICE file distributed
      13             :  *   with this work for additional information regarding copyright
      14             :  *   ownership. The ASF licenses this file to you under the Apache
      15             :  *   License, Version 2.0 (the "License"); you may not use this file
      16             :  *   except in compliance with the License. You may obtain a copy of
      17             :  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
      18             :  */
      19             : 
      20             : #include <hintids.hxx>
      21             : #include <svl/urihelper.hxx>
      22             : #include <osl/thread.h>
      23             : #include <unotools/pathoptions.hxx>
      24             : #include <tools/stream.hxx>
      25             : #include <sfx2/docfile.hxx>
      26             : #include <svl/itemiter.hxx>
      27             : #include <editeng/brushitem.hxx>
      28             : 
      29             : #include <tools/resid.hxx>
      30             : #include <fmtornt.hxx>
      31             : #include <swtypes.hxx>
      32             : #include <wrtsh.hxx>
      33             : #include <uinums.hxx>
      34             : #include <poolfmt.hxx>
      35             : #include <charfmt.hxx>
      36             : #include <frmatr.hxx>
      37             : 
      38             : #include <unomid.h>
      39             : 
      40             : using namespace ::com::sun::star;
      41             : 
      42             : #define VERSION_30B     ((sal_uInt16)250)
      43             : #define VERSION_31B     ((sal_uInt16)326)
      44             : #define VERSION_40A     ((sal_uInt16)364)
      45             : #define VERSION_53A     ((sal_uInt16)596)
      46             : #define ACT_NUM_VERSION VERSION_53A
      47             : 
      48             : #define CHAPTER_FILENAME "chapter.cfg"
      49             : 
      50             : /*
      51             :  Description:   Saving a rule
      52             :  Parameter:     rCopy -- the rule to save
      53             :                     nIdx -- position, where the rule is to be saved.
      54             :                         An old rule at that position will be overwritten.
      55             : */
      56             : 
      57           0 : SwBaseNumRules::SwBaseNumRules( const OUString& rFileName )
      58             :     :
      59             :     sFileName( rFileName ),
      60             :     nVersion(0),
      61           0 :     bModified( false )
      62             : {
      63           0 :     Init();
      64           0 : }
      65             : 
      66           0 : SwBaseNumRules::~SwBaseNumRules()
      67             : {
      68           0 :     if( bModified )
      69             :     {
      70           0 :         SvtPathOptions aPathOpt;
      71           0 :         OUString sNm( aPathOpt.GetUserConfigPath() + "/" + sFileName );
      72           0 :         INetURLObject aTempObj(sNm);
      73           0 :         sNm = aTempObj.GetFull();
      74             :         SfxMedium aStrm( sNm, STREAM_WRITE | STREAM_TRUNC |
      75           0 :                                         STREAM_SHARE_DENYALL );
      76           0 :         Store( *aStrm.GetOutStream() );
      77             :     }
      78             : 
      79           0 :     for( sal_uInt16 i = 0; i < nMaxRules; ++i )
      80           0 :         delete pNumRules[i];
      81           0 : }
      82             : 
      83           0 : void  SwBaseNumRules::Init()
      84             : {
      85           0 :     for(sal_uInt16 i = 0; i < nMaxRules; ++i )
      86           0 :         pNumRules[i] = 0;
      87             : 
      88           0 :     OUString sNm( sFileName );
      89           0 :     SvtPathOptions aOpt;
      90           0 :     if( aOpt.SearchFile( sNm, SvtPathOptions::PATH_USERCONFIG ))
      91             :     {
      92           0 :         SfxMedium aStrm( sNm, STREAM_STD_READ );
      93           0 :         Load( *aStrm.GetInStream() );
      94           0 :     }
      95           0 : }
      96             : 
      97           0 : void SwBaseNumRules::ApplyNumRules(const SwNumRulesWithName &rCopy, sal_uInt16 nIdx)
      98             : {
      99             :     OSL_ENSURE(nIdx < nMaxRules, "Array der NumRules ueberindiziert.");
     100           0 :     if( !pNumRules[nIdx] )
     101           0 :         pNumRules[nIdx] = new SwNumRulesWithName( rCopy );
     102             :     else
     103           0 :         *pNumRules[nIdx] = rCopy;
     104           0 : }
     105             : 
     106           0 : bool SwBaseNumRules::Store(SvStream &rStream)
     107             : {
     108           0 :     rStream.WriteUInt16( ACT_NUM_VERSION );
     109             :         // Write, what positions are occupied by a rule
     110             :         // Then write each of the rules
     111           0 :     for(sal_uInt16 i = 0; i < nMaxRules; ++i)
     112             :     {
     113           0 :         if(pNumRules[i])
     114             :         {
     115           0 :             rStream.WriteUChar(  sal_True );
     116           0 :             pNumRules[i]->Store( rStream );
     117             :         }
     118             :         else
     119           0 :             rStream.WriteUChar(  sal_False );
     120             :     }
     121           0 :     return true;
     122             : }
     123             : 
     124           0 : int SwBaseNumRules::Load(SvStream &rStream)
     125             : {
     126           0 :     int         rc = 0;
     127             : 
     128           0 :     rStream.ReadUInt16( nVersion );
     129             : 
     130             :     // due to a small but serious mistake, PreFinal writes the same VERION_40A as SP2
     131             :     // #55402#
     132           0 :     if(VERSION_40A == nVersion)
     133             :     {
     134             :         OSL_FAIL("Version 364 is not clear #55402#");
     135             :     }
     136           0 :     else if( VERSION_30B == nVersion || VERSION_31B == nVersion ||
     137           0 :              ACT_NUM_VERSION >= nVersion )
     138             :     {
     139           0 :         unsigned char bRule = sal_False;
     140           0 :         for(sal_uInt16 i = 0; i < nMaxRules; ++i)
     141             :         {
     142           0 :             rStream.ReadUChar( bRule );
     143           0 :             if(bRule)
     144           0 :                 pNumRules[i] = new SwNumRulesWithName( rStream, nVersion );
     145           0 :         }
     146             :     }
     147             :     else
     148             :     {
     149           0 :         rc = 1;
     150             :     }
     151             : 
     152           0 :     return rc;
     153             : }
     154             : 
     155           0 : SwChapterNumRules::SwChapterNumRules() :
     156           0 :     SwBaseNumRules(OUString(CHAPTER_FILENAME))
     157             : {
     158           0 : }
     159             : 
     160           0 :  SwChapterNumRules::~SwChapterNumRules()
     161             : {
     162           0 : }
     163             : 
     164           0 : void SwChapterNumRules::ApplyNumRules(const SwNumRulesWithName &rCopy, sal_uInt16 nIdx)
     165             : {
     166           0 :     bModified = true;
     167           0 :     SwBaseNumRules::ApplyNumRules(rCopy, nIdx);
     168           0 : }
     169             : 
     170           0 : SwNumRulesWithName::SwNumRulesWithName( const SwNumRule &rCopy,
     171             :                                         const OUString &rName )
     172           0 :     : maName(rName)
     173             : {
     174           0 :     for( sal_uInt16 n = 0; n < MAXLEVEL; ++n )
     175             :     {
     176           0 :         const SwNumFmt* pFmt = rCopy.GetNumFmt( n );
     177           0 :         if( pFmt )
     178           0 :             aFmts[ n ] = new _SwNumFmtGlobal( *pFmt );
     179             :         else
     180           0 :             aFmts[ n ] = 0;
     181             :     }
     182           0 : }
     183             : 
     184           0 : SwNumRulesWithName::SwNumRulesWithName( const SwNumRulesWithName& rCopy )
     185             : {
     186           0 :     memset( aFmts, 0, sizeof( aFmts ));
     187           0 :     *this = rCopy;
     188           0 : }
     189             : 
     190           0 : SwNumRulesWithName::~SwNumRulesWithName()
     191             : {
     192           0 :     for( int n = 0; n < MAXLEVEL; ++n )
     193           0 :         delete aFmts[ n ];
     194           0 : }
     195             : 
     196           0 : const SwNumRulesWithName& SwNumRulesWithName::operator=(const SwNumRulesWithName &rCopy)
     197             : {
     198           0 :     if( this != &rCopy )
     199             :     {
     200           0 :         maName = rCopy.maName;
     201           0 :         for( int n = 0; n < MAXLEVEL; ++n )
     202             :         {
     203           0 :             delete aFmts[ n ];
     204             : 
     205           0 :             _SwNumFmtGlobal* pFmt = rCopy.aFmts[ n ];
     206           0 :             if( pFmt )
     207           0 :                 aFmts[ n ] = new _SwNumFmtGlobal( *pFmt );
     208             :             else
     209           0 :                 aFmts[ n ] = 0;
     210             :         }
     211             :     }
     212           0 :     return *this;
     213             : }
     214             : 
     215           0 : SwNumRulesWithName::SwNumRulesWithName( SvStream &rStream, sal_uInt16 nVersion )
     216             : {
     217           0 :     rtl_TextEncoding eEncoding = osl_getThreadTextEncoding();
     218           0 :     maName = rStream.ReadUniOrByteString(eEncoding);
     219             : 
     220             :     char c;
     221           0 :     for(sal_uInt16 n = 0; n < MAXLEVEL; ++n )
     222             :     {
     223           0 :         if( VERSION_30B == nVersion )
     224           0 :             c = 1;
     225             :         // due to a small but serious mistake, PreFinal writes the same VERION_40A as SP2
     226             :         // #55402#
     227           0 :         else if(nVersion < VERSION_40A && n > 5)
     228           0 :             c = 0;
     229             :         else
     230           0 :             rStream.ReadChar( c );
     231             : 
     232           0 :         if( c )
     233           0 :             aFmts[ n ] = new _SwNumFmtGlobal( rStream, nVersion );
     234             :         else
     235           0 :             aFmts[ n ] = 0;
     236             :     }
     237           0 : }
     238             : 
     239           0 : void SwNumRulesWithName::MakeNumRule( SwWrtShell& rSh, SwNumRule& rChg ) const
     240             : {
     241             :     // #i89178#
     242           0 :     rChg = SwNumRule( maName, numfunc::GetDefaultPositionAndSpaceMode() );
     243           0 :     rChg.SetAutoRule( false );
     244             :     _SwNumFmtGlobal* pFmt;
     245           0 :     for( sal_uInt16 n = 0; n < MAXLEVEL; ++n )
     246           0 :         if( 0 != ( pFmt = aFmts[ n ] ) )
     247             :         {
     248           0 :             SwNumFmt aNew;
     249           0 :             pFmt->ChgNumFmt( rSh, aNew );
     250           0 :             rChg.Set( n, aNew );
     251             :         }
     252           0 : }
     253             : 
     254           0 : void SwNumRulesWithName::Store( SvStream &rStream )
     255             : {
     256           0 :     rtl_TextEncoding eEncoding = osl_getThreadTextEncoding();
     257           0 :     rStream.WriteUniOrByteString(maName, eEncoding);
     258             : 
     259           0 :     for( sal_uInt16 n = 0; n < MAXLEVEL; ++n )
     260             :     {
     261           0 :         _SwNumFmtGlobal* pFmt = aFmts[ n ];
     262           0 :         if( pFmt )
     263             :         {
     264           0 :             rStream.WriteChar( (char)1 );
     265           0 :             pFmt->Store( rStream );
     266             :         }
     267             :         else
     268           0 :             rStream.WriteChar( (char)0 );
     269             :     }
     270           0 : }
     271             : 
     272           0 : SwNumRulesWithName::_SwNumFmtGlobal::_SwNumFmtGlobal( const SwNumFmt& rFmt )
     273           0 :     : aFmt( rFmt ), nCharPoolId( USHRT_MAX )
     274             : {
     275             :     // relative gaps?????
     276             : 
     277           0 :     SwCharFmt* pFmt = rFmt.GetCharFmt();
     278           0 :     if( pFmt )
     279             :     {
     280           0 :         sCharFmtName = pFmt->GetName();
     281           0 :         nCharPoolId = pFmt->GetPoolFmtId();
     282           0 :         if( pFmt->GetAttrSet().Count() )
     283             :         {
     284           0 :             SfxItemIter aIter( pFmt->GetAttrSet() );
     285           0 :             const SfxPoolItem *pCurr = aIter.GetCurItem();
     286             :             while( true )
     287             :             {
     288           0 :                 aItems.push_back( pCurr->Clone() );
     289           0 :                 if( aIter.IsAtEnd() )
     290           0 :                     break;
     291           0 :                 pCurr = aIter.NextItem();
     292           0 :             }
     293             :         }
     294             : 
     295           0 :         aFmt.SetCharFmt( 0 );
     296             :     }
     297           0 : }
     298             : 
     299           0 : SwNumRulesWithName::_SwNumFmtGlobal::_SwNumFmtGlobal( const _SwNumFmtGlobal& rFmt )
     300             :     :
     301             :     aFmt( rFmt.aFmt ),
     302             :     sCharFmtName( rFmt.sCharFmtName ),
     303           0 :     nCharPoolId( rFmt.nCharPoolId )
     304             : {
     305           0 :     for( sal_uInt16 n = rFmt.aItems.size(); n; )
     306           0 :         aItems.push_back( rFmt.aItems[ --n ].Clone() );
     307           0 : }
     308             : 
     309           0 : SwNumRulesWithName::_SwNumFmtGlobal::_SwNumFmtGlobal( SvStream& rStream,
     310             :                                                         sal_uInt16 nVersion )
     311           0 :     : nCharPoolId( USHRT_MAX )
     312             : {
     313           0 :     rtl_TextEncoding eEncoding = osl_getThreadTextEncoding();
     314             :     {
     315             :         sal_uInt16 nUS;
     316             :         short nShort;
     317             :         sal_Char cChar;
     318             :         bool bFlag;
     319           0 :         OUString sStr;
     320             : 
     321           0 :         rStream.ReadUInt16( nUS );           aFmt.SetNumberingType((sal_Int16)nUS );
     322           0 :         if( VERSION_53A > nVersion )
     323             :         {
     324           0 :             rStream.ReadChar( cChar );       aFmt.SetBulletChar( cChar );
     325             :         }
     326             :         else
     327             :         {
     328           0 :             rStream.ReadUInt16( nUS );       aFmt.SetBulletChar( nUS );
     329             :         }
     330             : 
     331           0 :         rStream.ReadCharAsBool( bFlag );     aFmt.SetIncludeUpperLevels( bFlag );
     332             : 
     333           0 :         if( VERSION_30B == nVersion )
     334             :         {
     335             :             sal_Int32 nL;
     336           0 :             rStream.ReadChar( cChar );       aFmt.SetStart( (sal_uInt16)cChar );
     337             : 
     338           0 :             sStr = rStream.ReadUniOrByteString(eEncoding);
     339           0 :             aFmt.SetPrefix( sStr );
     340           0 :             sStr = rStream.ReadUniOrByteString(eEncoding);
     341           0 :             aFmt.SetSuffix( sStr );
     342           0 :             rStream.ReadUInt16( nUS );        aFmt.SetNumAdjust( SvxAdjust( nUS ) );
     343           0 :             rStream.ReadInt32( nL );          aFmt.SetLSpace( lNumIndent );
     344           0 :             rStream.ReadInt32( nL );          aFmt.SetFirstLineOffset( (short)nL );
     345             :         }
     346             :         else                // old start-value was a Byte
     347             :         {
     348           0 :             rStream.ReadUInt16( nUS );         aFmt.SetStart( nUS );
     349           0 :             sStr = rStream.ReadUniOrByteString(eEncoding);
     350           0 :             aFmt.SetPrefix( sStr );
     351           0 :             sStr = rStream.ReadUniOrByteString(eEncoding);
     352           0 :             aFmt.SetSuffix( sStr );
     353           0 :             rStream.ReadUInt16( nUS );         aFmt.SetNumAdjust( SvxAdjust( nUS ) );
     354           0 :             rStream.ReadUInt16( nUS );         aFmt.SetAbsLSpace( nUS );
     355           0 :             rStream.ReadInt16( nShort );       aFmt.SetFirstLineOffset( nShort );
     356           0 :             rStream.ReadUInt16( nUS );         aFmt.SetCharTextDistance( nUS );
     357           0 :             rStream.ReadInt16( nShort );       aFmt.SetLSpace( nShort );
     358           0 :             rStream.ReadCharAsBool( bFlag );
     359             :         }
     360             : 
     361             :         sal_uInt16  nFamily;
     362             :         sal_uInt16  nCharSet;
     363             :         short   nWidth;
     364             :         short   nHeight;
     365             :         sal_uInt16  nPitch;
     366           0 :         OUString aName;
     367             : 
     368           0 :         aName = rStream.ReadUniOrByteString(eEncoding);
     369           0 :         rStream.ReadUInt16( nFamily ).ReadUInt16( nCharSet ).ReadInt16( nWidth ).ReadInt16( nHeight ).ReadUInt16( nPitch );
     370             : 
     371           0 :         if( !aName.isEmpty() )
     372             :         {
     373           0 :             vcl::Font aFont( static_cast<FontFamily>(nFamily), Size( nWidth, nHeight ) );
     374           0 :             aFont.SetName( aName );
     375           0 :             aFont.SetCharSet( (rtl_TextEncoding)nCharSet );
     376           0 :             aFont.SetPitch( (FontPitch)nPitch );
     377             : 
     378           0 :             aFmt.SetBulletFont( &aFont );
     379             :         }
     380             :         else
     381           0 :             nCharSet = RTL_TEXTENCODING_SYMBOL;
     382             : 
     383           0 :         if( VERSION_53A > nVersion )
     384             :         {
     385           0 :             sal_Char cEncoded(aFmt.GetBulletChar());
     386           0 :             aFmt.SetBulletChar(OUString(&cEncoded, 1, nCharSet).toChar());
     387           0 :         }
     388             :     }
     389             : 
     390           0 :     if( VERSION_30B != nVersion )
     391             :     {
     392             :         sal_uInt16 nItemCount;
     393           0 :         rStream.ReadUInt16( nCharPoolId );
     394           0 :         sCharFmtName = rStream.ReadUniOrByteString(eEncoding);
     395           0 :         rStream.ReadUInt16( nItemCount );
     396             : 
     397           0 :         while( nItemCount-- )
     398             :         {
     399             :             sal_uInt16 nWhich, nVers;
     400           0 :             rStream.ReadUInt16( nWhich ).ReadUInt16( nVers );
     401           0 :             aItems.push_back( GetDfltAttr( nWhich )->Create( rStream, nVers ) );
     402             :         }
     403             :     }
     404             : 
     405           0 :     if( VERSION_40A == nVersion && SVX_NUM_BITMAP == aFmt.GetNumberingType() )
     406             :     {
     407             :         sal_uInt8 cF;
     408           0 :         sal_Int32 nWidth(0), nHeight(0);
     409             : 
     410           0 :         rStream.ReadInt32( nWidth ).ReadInt32( nHeight );
     411             : 
     412           0 :         Size aSz(nWidth, nHeight);
     413             : 
     414           0 :         rStream.ReadUChar( cF );
     415           0 :         if( cF )
     416             :         {
     417           0 :             SvxBrushItem* pBrush = 0;
     418           0 :             SwFmtVertOrient* pVOrient = 0;
     419             :             sal_uInt16 nVer;
     420             : 
     421           0 :             if( cF & 1 )
     422             :             {
     423           0 :                 rStream.ReadUInt16( nVer );
     424           0 :                 pBrush = (SvxBrushItem*)GetDfltAttr( RES_BACKGROUND )
     425           0 :                                         ->Create( rStream, nVer );
     426             :             }
     427             : 
     428           0 :             if( cF & 2 )
     429             :             {
     430           0 :                 rStream.ReadUInt16( nVer );
     431           0 :                 pVOrient = (SwFmtVertOrient*)GetDfltAttr( RES_VERT_ORIENT )
     432           0 :                                         ->Create( rStream, nVer );
     433             :             }
     434           0 :             sal_Int16 eOrient = text::VertOrientation::NONE;
     435           0 :             if(pVOrient)
     436           0 :                 eOrient = (sal_Int16)pVOrient->GetVertOrient();
     437           0 :             aFmt.SetGraphicBrush( pBrush, &aSz, pVOrient ? &eOrient : 0 );
     438             :         }
     439             :     }
     440           0 : }
     441             : 
     442           0 : SwNumRulesWithName::_SwNumFmtGlobal::~_SwNumFmtGlobal()
     443             : {
     444           0 : }
     445             : 
     446           0 : void SwNumRulesWithName::_SwNumFmtGlobal::Store( SvStream& rStream )
     447             : {
     448           0 :     rtl_TextEncoding eEncoding = osl_getThreadTextEncoding();
     449             :     {
     450           0 :         OUString aName;
     451           0 :         sal_uInt16 nFamily = FAMILY_DONTKNOW, nCharSet = 0, nPitch = 0;
     452           0 :         short  nWidth = 0, nHeight = 0;
     453             : 
     454           0 :         const vcl::Font* pFnt = aFmt.GetBulletFont();
     455           0 :         if( pFnt )
     456             :         {
     457           0 :             aName = pFnt->GetName();
     458           0 :             nFamily = (sal_uInt16)pFnt->GetFamily();
     459           0 :             nCharSet = (sal_uInt16)pFnt->GetCharSet();
     460           0 :             nWidth = (short)pFnt->GetSize().Width();
     461           0 :             nHeight = (short)pFnt->GetSize().Height();
     462           0 :             nPitch = (sal_uInt16)pFnt->GetPitch();
     463             :         }
     464             : 
     465           0 :         rStream.WriteUInt16( aFmt.GetNumberingType() )
     466           0 :                .WriteUInt16( aFmt.GetBulletChar() )
     467           0 :                .WriteUChar( aFmt.GetIncludeUpperLevels() > 0 )
     468           0 :                .WriteUInt16( aFmt.GetStart() );
     469           0 :         rStream.WriteUniOrByteString( aFmt.GetPrefix(), eEncoding );
     470           0 :         rStream.WriteUniOrByteString( aFmt.GetSuffix(), eEncoding );
     471           0 :         rStream.WriteUInt16( aFmt.GetNumAdjust() )
     472           0 :                .WriteInt16( aFmt.GetAbsLSpace() )
     473           0 :                .WriteInt16( aFmt.GetFirstLineOffset() )
     474           0 :                .WriteInt16( aFmt.GetCharTextDistance() )
     475           0 :                .WriteInt16( aFmt.GetLSpace() )
     476           0 :                .WriteUChar( sal_False );//aFmt.IsRelLSpace();
     477           0 :         rStream.WriteUniOrByteString( aName, eEncoding );
     478           0 :         rStream.WriteUInt16( nFamily )
     479           0 :                .WriteUInt16( nCharSet )
     480           0 :                .WriteInt16( nWidth )
     481           0 :                .WriteInt16( nHeight )
     482           0 :                .WriteUInt16( nPitch );
     483             :     }
     484           0 :     rStream.WriteUInt16( nCharPoolId );
     485           0 :     rStream.WriteUniOrByteString( sCharFmtName, eEncoding );
     486           0 :     rStream.WriteUInt16( aItems.size() );
     487             : 
     488           0 :     for( sal_uInt16 n = aItems.size(); n; )
     489             :     {
     490           0 :         SfxPoolItem* pItem = &aItems[ --n ];
     491           0 :         sal_uInt16 nIVers = pItem->GetVersion( SOFFICE_FILEFORMAT_50 );
     492             :         OSL_ENSURE( nIVers != USHRT_MAX,
     493             :                 "Was'n das: Item-Version USHRT_MAX in der aktuellen Version" );
     494           0 :         rStream.WriteUInt16( pItem->Which() )
     495           0 :                .WriteUInt16( nIVers );
     496           0 :         pItem->Store( rStream, nIVers );
     497             :     }
     498             : 
     499             :     // Extensions for 40A
     500             : 
     501           0 :     if( SVX_NUM_BITMAP == aFmt.GetNumberingType() )
     502             :     {
     503           0 :         rStream.WriteInt32( aFmt.GetGraphicSize().Width() )
     504           0 :                .WriteInt32( aFmt.GetGraphicSize().Height() );
     505           0 :         sal_uInt8 cFlg = ( 0 != aFmt.GetBrush() ? 1 : 0 ) +
     506           0 :                     ( 0 != aFmt.GetGraphicOrientation() ? 2 : 0 );
     507           0 :         rStream.WriteUChar( cFlg );
     508             : 
     509           0 :         if( aFmt.GetBrush() )
     510             :         {
     511           0 :             sal_uInt16 nVersion = aFmt.GetBrush()->GetVersion( SOFFICE_FILEFORMAT_50 );
     512           0 :             rStream.WriteUInt16( nVersion );
     513           0 :             aFmt.GetBrush()->Store( rStream, nVersion );
     514             :         }
     515           0 :         if( aFmt.GetGraphicOrientation() )
     516             :         {
     517           0 :             sal_uInt16 nVersion = aFmt.GetGraphicOrientation()->GetVersion( SOFFICE_FILEFORMAT_50 );
     518           0 :             rStream.WriteUInt16( nVersion );
     519           0 :             aFmt.GetGraphicOrientation()->Store( rStream, nVersion );
     520             :         }
     521             :     }
     522           0 : }
     523             : 
     524           0 : void SwNumRulesWithName::_SwNumFmtGlobal::ChgNumFmt( SwWrtShell& rSh,
     525             :                             SwNumFmt& rNew ) const
     526             : {
     527           0 :     SwCharFmt* pFmt = 0;
     528           0 :     if( !sCharFmtName.isEmpty() )
     529             :     {
     530             :         // at first, look for the name
     531           0 :         sal_uInt16 nArrLen = rSh.GetCharFmtCount();
     532           0 :         for( sal_uInt16 i = 1; i < nArrLen; ++i )
     533             :         {
     534           0 :             pFmt = &rSh.GetCharFmt( i );
     535           0 :             if (pFmt->GetName()==sCharFmtName)
     536             :                 // exists, so leave attributes as they are!
     537           0 :                 break;
     538           0 :             pFmt = 0;
     539             :         }
     540             : 
     541           0 :         if( !pFmt )
     542             :         {
     543           0 :             if( IsPoolUserFmt( nCharPoolId ) )
     544             :             {
     545           0 :                 pFmt = rSh.MakeCharFmt( sCharFmtName );
     546           0 :                 pFmt->SetAuto( false );
     547             :             }
     548             :             else
     549           0 :                 pFmt = rSh.GetCharFmtFromPool( nCharPoolId );
     550             : 
     551           0 :             if( !pFmt->GetDepends() )       // set attributes
     552           0 :                 for( sal_uInt16 n = aItems.size(); n; )
     553           0 :                     pFmt->SetFmtAttr( aItems[ --n ] );
     554             :         }
     555             :     }
     556           0 :     ((SwNumFmt&)aFmt).SetCharFmt( pFmt );
     557           0 :     rNew = aFmt;
     558           0 :     if( pFmt )
     559           0 :         ((SwNumFmt&)aFmt).SetCharFmt( 0 );
     560         270 : }
     561             : 
     562             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10