LCOV - code coverage report
Current view: top level - sc/source/core/data - attrib.cxx (source / functions) Hit Total Coverage
Test: commit c8344322a7af75b84dd3ca8f78b05543a976dfd5 Lines: 204 511 39.9 %
Date: 2015-06-13 12:38:46 Functions: 87 138 63.0 %
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 <com/sun/star/util/CellProtection.hpp>
      21             : #include <com/sun/star/util/XProtectable.hpp>
      22             : #include <com/sun/star/text/XText.hpp>
      23             : #include <com/sun/star/beans/XPropertySet.hpp>
      24             : 
      25             : #include "scitems.hxx"
      26             : #include <editeng/eeitem.hxx>
      27             : 
      28             : #include <editeng/boxitem.hxx>
      29             : #include <editeng/editdata.hxx>
      30             : #include <editeng/editeng.hxx>
      31             : #include <editeng/editobj.hxx>
      32             : #include <editeng/flditem.hxx>
      33             : 
      34             : #include "attrib.hxx"
      35             : #include "global.hxx"
      36             : #include "editutil.hxx"
      37             : #include "sc.hrc"
      38             : #include "globstr.hrc"
      39             : 
      40             : #include "textuno.hxx"
      41             : 
      42             : using namespace com::sun::star;
      43             : 
      44        4116 : TYPEINIT1(ScMergeAttr,          SfxPoolItem);
      45        4389 : TYPEINIT1_AUTOFACTORY(ScProtectionAttr,     SfxPoolItem);
      46       11781 : TYPEINIT1(ScRangeItem,          SfxPoolItem);
      47        3927 : TYPEINIT1(ScTableListItem,      SfxPoolItem);
      48       20018 : TYPEINIT1(ScPageHFItem,         SfxPoolItem);
      49       11784 : TYPEINIT1(ScViewObjectModeItem, SfxEnumItem);
      50          52 : TYPEINIT1(ScDoubleItem,         SfxPoolItem);
      51        3927 : TYPEINIT1(ScPageScaleToItem,    SfxPoolItem);
      52       12532 : TYPEINIT1(ScCondFormatItem,    SfxPoolItem);
      53             : 
      54             : /**
      55             :  * General Help Function
      56             :  */
      57        1015 : bool ScHasPriority( const ::editeng::SvxBorderLine* pThis, const ::editeng::SvxBorderLine* pOther )
      58             : {
      59             : 
      60        1015 :     if (!pThis)
      61         947 :         return false;
      62          68 :     if (!pOther)
      63          68 :         return true;
      64             : 
      65           0 :     sal_uInt16 nThisSize = pThis->GetScaledWidth();
      66           0 :     sal_uInt16 nOtherSize = pOther->GetScaledWidth();
      67             : 
      68           0 :     if (nThisSize > nOtherSize)
      69           0 :         return true;
      70           0 :     else if (nThisSize < nOtherSize)
      71           0 :         return false;
      72             :     else
      73             :     {
      74           0 :         if ( pOther->GetInWidth() && !pThis->GetInWidth() )
      75           0 :             return true;
      76           0 :         else if ( pThis->GetInWidth() && !pOther->GetInWidth() )
      77           0 :             return false;
      78             :         else
      79             :         {
      80           0 :             return true; // FIXME: What is this?
      81             :         }
      82             :     }
      83             : }
      84             : 
      85             : /** Item - Implementations */
      86             : 
      87             : /**
      88             :  * Merge
      89             :  */
      90        1378 : ScMergeAttr::ScMergeAttr():
      91             :     SfxPoolItem(ATTR_MERGE),
      92             :     nColMerge(0),
      93        1378 :     nRowMerge(0)
      94        1378 : {}
      95             : 
      96         742 : ScMergeAttr::ScMergeAttr( SCsCOL nCol, SCsROW nRow):
      97             :     SfxPoolItem(ATTR_MERGE),
      98             :     nColMerge(nCol),
      99         742 :     nRowMerge(nRow)
     100         742 : {}
     101             : 
     102          51 : ScMergeAttr::ScMergeAttr(const ScMergeAttr& rItem):
     103          51 :     SfxPoolItem(ATTR_MERGE)
     104             : {
     105          51 :     nColMerge = rItem.nColMerge;
     106          51 :     nRowMerge = rItem.nRowMerge;
     107          51 : }
     108             : 
     109        3462 : ScMergeAttr::~ScMergeAttr()
     110             : {
     111        3462 : }
     112             : 
     113        2300 : bool ScMergeAttr::operator==( const SfxPoolItem& rItem ) const
     114             : {
     115             :     OSL_ENSURE( Which() != rItem.Which() || Type() == rItem.Type(), "which ==, type !=" );
     116        2300 :     return (Which() == rItem.Which())
     117        2300 :              && (nColMerge == static_cast<const ScMergeAttr&>(rItem).nColMerge)
     118        4147 :              && (nRowMerge == static_cast<const ScMergeAttr&>(rItem).nRowMerge);
     119             : }
     120             : 
     121          51 : SfxPoolItem* ScMergeAttr::Clone( SfxItemPool * ) const
     122             : {
     123          51 :     return new ScMergeAttr(*this);
     124             : }
     125             : 
     126           0 : SfxPoolItem* ScMergeAttr::Create( SvStream& rStream, sal_uInt16 /* nVer */ ) const
     127             : {
     128             :     sal_Int16   nCol;
     129             :     sal_Int16   nRow;
     130           0 :     rStream.ReadInt16( nCol );
     131           0 :     rStream.ReadInt16( nRow );
     132           0 :     return new ScMergeAttr(static_cast<SCCOL>(nCol),static_cast<SCROW>(nRow));
     133             : }
     134             : 
     135             : /**
     136             :  * MergeFlag
     137             :  */
     138        1378 : ScMergeFlagAttr::ScMergeFlagAttr():
     139        1378 :     SfxInt16Item(ATTR_MERGE_FLAG, 0)
     140             : {
     141        1378 : }
     142             : 
     143        8231 : ScMergeFlagAttr::ScMergeFlagAttr(sal_Int16 nFlags):
     144        8231 :     SfxInt16Item(ATTR_MERGE_FLAG, nFlags)
     145             : {
     146        8231 : }
     147             : 
     148       11615 : ScMergeFlagAttr::~ScMergeFlagAttr()
     149             : {
     150       11615 : }
     151             : 
     152         386 : SfxPoolItem * ScMergeFlagAttr::Clone(SfxItemPool *) const
     153             : {
     154         386 :     return new ScMergeFlagAttr(*this);
     155             : }
     156             : 
     157          28 : bool ScMergeFlagAttr::HasPivotButton() const
     158             : {
     159          28 :     return (GetValue() & SC_MF_BUTTON) != 0;
     160             : }
     161             : 
     162           0 : bool ScMergeFlagAttr::HasPivotPopupButton() const
     163             : {
     164           0 :     return (GetValue() & SC_MF_BUTTON_POPUP) != 0;
     165             : }
     166             : 
     167             : /**
     168             :  * Protection
     169             :  */
     170        1385 : ScProtectionAttr::ScProtectionAttr():
     171             :     SfxPoolItem(ATTR_PROTECTION),
     172             :     bProtection(true),
     173             :     bHideFormula(false),
     174             :     bHideCell(false),
     175        1385 :     bHidePrint(false)
     176             : {
     177        1385 : }
     178             : 
     179         318 : ScProtectionAttr::ScProtectionAttr( bool bProtect, bool bHFormula,
     180             :                                     bool bHCell, bool bHPrint):
     181             :     SfxPoolItem(ATTR_PROTECTION),
     182             :     bProtection(bProtect),
     183             :     bHideFormula(bHFormula),
     184             :     bHideCell(bHCell),
     185         318 :     bHidePrint(bHPrint)
     186             : {
     187         318 : }
     188             : 
     189          45 : ScProtectionAttr::ScProtectionAttr(const ScProtectionAttr& rItem):
     190          45 :     SfxPoolItem(ATTR_PROTECTION)
     191             : {
     192          45 :     bProtection  = rItem.bProtection;
     193          45 :     bHideFormula = rItem.bHideFormula;
     194          45 :     bHideCell    = rItem.bHideCell;
     195          45 :     bHidePrint   = rItem.bHidePrint;
     196          45 : }
     197             : 
     198        3035 : ScProtectionAttr::~ScProtectionAttr()
     199             : {
     200        3035 : }
     201             : 
     202          20 : bool ScProtectionAttr::QueryValue( uno::Any& rVal, sal_uInt8 nMemberId ) const
     203             : {
     204          20 :     nMemberId &= ~CONVERT_TWIPS;
     205          20 :     switch ( nMemberId  )
     206             :     {
     207             :         case 0 :
     208             :         {
     209          20 :             util::CellProtection aProtection;
     210          20 :             aProtection.IsLocked        = bProtection;
     211          20 :             aProtection.IsFormulaHidden = bHideFormula;
     212          20 :             aProtection.IsHidden        = bHideCell;
     213          20 :             aProtection.IsPrintHidden   = bHidePrint;
     214          20 :             rVal <<= aProtection;
     215          20 :             break;
     216             :         }
     217             :         case MID_1 :
     218           0 :             rVal <<= bProtection; break;
     219             :         case MID_2 :
     220           0 :             rVal <<= bHideFormula; break;
     221             :         case MID_3 :
     222           0 :             rVal <<= bHideCell; break;
     223             :         case MID_4 :
     224           0 :             rVal <<= bHidePrint; break;
     225             :         default:
     226             :             OSL_FAIL("Wrong MemberID!");
     227           0 :             return false;
     228             :     }
     229             : 
     230          20 :     return true;
     231             : }
     232             : 
     233          13 : bool ScProtectionAttr::PutValue( const uno::Any& rVal, sal_uInt8 nMemberId )
     234             : {
     235          13 :     bool bRet = false;
     236          13 :     bool bVal = false;
     237          13 :     nMemberId &= ~CONVERT_TWIPS;
     238          13 :     switch ( nMemberId )
     239             :     {
     240             :         case 0 :
     241             :         {
     242          13 :             util::CellProtection aProtection;
     243          13 :             if ( rVal >>= aProtection )
     244             :             {
     245          13 :                 bProtection  = aProtection.IsLocked;
     246          13 :                 bHideFormula = aProtection.IsFormulaHidden;
     247          13 :                 bHideCell    = aProtection.IsHidden;
     248          13 :                 bHidePrint   = aProtection.IsPrintHidden;
     249          13 :                 bRet = true;
     250             :             }
     251             :             else
     252             :             {
     253             :                 OSL_FAIL("exception - wrong argument");
     254             :             }
     255          13 :             break;
     256             :         }
     257             :         case MID_1 :
     258           0 :             bRet = (rVal >>= bVal); if (bRet) bProtection=bVal; break;
     259             :         case MID_2 :
     260           0 :             bRet = (rVal >>= bVal); if (bRet) bHideFormula=bVal; break;
     261             :         case MID_3 :
     262           0 :             bRet = (rVal >>= bVal); if (bRet) bHideCell=bVal; break;
     263             :         case MID_4 :
     264           0 :             bRet = (rVal >>= bVal); if (bRet) bHidePrint=bVal; break;
     265             :         default:
     266             :             OSL_FAIL("Wrong MemberID!");
     267             :     }
     268             : 
     269          13 :     return bRet;
     270             : }
     271             : 
     272           0 : OUString ScProtectionAttr::GetValueText() const
     273             : {
     274           0 :     const OUString aStrYes ( ScGlobal::GetRscString(STR_YES) );
     275           0 :     const OUString aStrNo  ( ScGlobal::GetRscString(STR_NO) );
     276             : 
     277             :     const OUString aValue  = "("
     278           0 :         + (bProtection ? aStrYes : aStrNo)
     279           0 :         + ","
     280           0 :         + (bHideFormula ? aStrYes : aStrNo)
     281           0 :         + ","
     282           0 :         + (bHideCell ? aStrYes : aStrNo)
     283           0 :         + ","
     284           0 :         + (bHidePrint ? aStrYes : aStrNo)
     285           0 :         + ")";
     286             : 
     287           0 :     return aValue;
     288             : }
     289             : 
     290           0 : bool ScProtectionAttr::GetPresentation
     291             :     (
     292             :         SfxItemPresentation ePres,
     293             :         SfxMapUnit /* eCoreMetric */,
     294             :         SfxMapUnit /* ePresMetric */,
     295             :         OUString& rText,
     296             :         const IntlWrapper* /* pIntl */
     297             :     ) const
     298             : {
     299           0 :     const OUString aStrYes ( ScGlobal::GetRscString(STR_YES) );
     300           0 :     const OUString aStrNo  ( ScGlobal::GetRscString(STR_NO) );
     301             : 
     302           0 :     switch ( ePres )
     303             :     {
     304             :         case SFX_ITEM_PRESENTATION_NAMELESS:
     305           0 :             rText = GetValueText();
     306           0 :             break;
     307             : 
     308             :         case SFX_ITEM_PRESENTATION_COMPLETE:
     309           0 :             rText  = ScGlobal::GetRscString(STR_PROTECTION)
     310           0 :                 + ": "
     311           0 :                 + (bProtection ? aStrYes : aStrNo)
     312           0 :                 + ", "
     313           0 :                 + ScGlobal::GetRscString(STR_FORMULAS)
     314           0 :                 + ": "
     315           0 :                 + (!bHideFormula ? aStrYes : aStrNo)
     316           0 :                 + ", "
     317           0 :                 + ScGlobal::GetRscString(STR_HIDE)
     318           0 :                 + ": "
     319           0 :                 + (bHideCell ? aStrYes : aStrNo)
     320           0 :                 + ", "
     321           0 :                 + ScGlobal::GetRscString(STR_PRINT)
     322           0 :                 + ": "
     323           0 :                 + (!bHidePrint ? aStrYes : aStrNo);
     324           0 :             break;
     325             : 
     326           0 :         default: break;
     327             :     }
     328             : 
     329           0 :     return true;
     330             : }
     331             : 
     332         315 : bool ScProtectionAttr::operator==( const SfxPoolItem& rItem ) const
     333             : {
     334             :     OSL_ENSURE( Which() != rItem.Which() || Type() == rItem.Type(), "which ==, type !=" );
     335         315 :     return (Which() == rItem.Which())
     336         315 :              && (bProtection == static_cast<const ScProtectionAttr&>(rItem).bProtection)
     337         302 :              && (bHideFormula == static_cast<const ScProtectionAttr&>(rItem).bHideFormula)
     338         302 :              && (bHideCell == static_cast<const ScProtectionAttr&>(rItem).bHideCell)
     339         617 :              && (bHidePrint == static_cast<const ScProtectionAttr&>(rItem).bHidePrint);
     340             : }
     341             : 
     342          45 : SfxPoolItem* ScProtectionAttr::Clone( SfxItemPool * ) const
     343             : {
     344          45 :     return new ScProtectionAttr(*this);
     345             : }
     346             : 
     347           0 : SfxPoolItem* ScProtectionAttr::Create( SvStream& rStream, sal_uInt16 /* n */ ) const
     348             : {
     349             :     bool bProtect;
     350             :     bool bHFormula;
     351             :     bool bHCell;
     352             :     bool bHPrint;
     353             : 
     354           0 :     rStream.ReadCharAsBool( bProtect );
     355           0 :     rStream.ReadCharAsBool( bHFormula );
     356           0 :     rStream.ReadCharAsBool( bHCell );
     357           0 :     rStream.ReadCharAsBool( bHPrint );
     358             : 
     359           0 :     return new ScProtectionAttr(bProtect,bHFormula,bHCell,bHPrint);
     360             : }
     361             : 
     362           7 : bool ScProtectionAttr::SetProtection( bool bProtect)
     363             : {
     364           7 :     bProtection =  bProtect;
     365           7 :     return true;
     366             : }
     367             : 
     368           0 : bool ScProtectionAttr::SetHideFormula( bool bHFormula)
     369             : {
     370           0 :     bHideFormula = bHFormula;
     371           0 :     return true;
     372             : }
     373             : 
     374           0 : bool ScProtectionAttr::SetHideCell( bool bHCell)
     375             : {
     376           0 :     bHideCell = bHCell;
     377           0 :     return true;
     378             : }
     379             : 
     380           0 : bool ScProtectionAttr::SetHidePrint( bool bHPrint)
     381             : {
     382           0 :     bHidePrint = bHPrint;
     383           0 :     return true;
     384             : }
     385             : 
     386             : /**
     387             :  * ScRangeItem - Table range
     388             :  */
     389           0 : bool ScRangeItem::operator==( const SfxPoolItem& rAttr ) const
     390             : {
     391             :     assert(SfxPoolItem::operator==(rAttr));
     392             : 
     393           0 :     return aRange == static_cast<const ScRangeItem&>(rAttr).aRange;
     394             : }
     395             : 
     396           0 : SfxPoolItem* ScRangeItem::Clone( SfxItemPool* ) const
     397             : {
     398           0 :     return new ScRangeItem( *this );
     399             : }
     400             : 
     401           0 : bool ScRangeItem::GetPresentation
     402             :     (
     403             :         SfxItemPresentation ePres,
     404             :         SfxMapUnit          /* eCoreUnit */,
     405             :         SfxMapUnit          /* ePresUnit */,
     406             :         OUString&           rText,
     407             :         const IntlWrapper*  /* pIntl */
     408             :     ) const
     409             : {
     410           0 :     rText.clear();
     411             : 
     412           0 :     switch ( ePres )
     413             :     {
     414             :         case SFX_ITEM_PRESENTATION_COMPLETE:
     415           0 :         rText = ScGlobal::GetRscString(STR_AREA) + ": ";
     416             :         /* !!! fall-through !!! */
     417             : 
     418             :         case SFX_ITEM_PRESENTATION_NAMELESS:
     419             :         {
     420             :             /* Always use OOo:A1 format */
     421           0 :             rText += aRange.Format();
     422             :         }
     423           0 :         break;
     424             : 
     425             :         default:
     426             :         {
     427             :             // added to avoid warnings
     428             :         }
     429             :     }
     430             : 
     431           0 :     return true;
     432             : }
     433             : 
     434             : /**
     435             :  * ScTableListItem - List from Tables (-numbers)
     436             :  */
     437           0 : ScTableListItem::ScTableListItem( const ScTableListItem& rCpy )
     438           0 :     :   SfxPoolItem ( rCpy.Which() ),
     439           0 :         nCount      ( rCpy.nCount )
     440             : {
     441           0 :     if ( nCount > 0 )
     442             :     {
     443           0 :         pTabArr = new SCTAB [nCount];
     444             : 
     445           0 :         for ( sal_uInt16 i=0; i<nCount; i++ )
     446           0 :             pTabArr[i] = rCpy.pTabArr[i];
     447             :     }
     448             :     else
     449           0 :         pTabArr = NULL;
     450           0 : }
     451             : 
     452        3927 : ScTableListItem::~ScTableListItem()
     453             : {
     454        1309 :     delete [] pTabArr;
     455        2618 : }
     456             : 
     457           0 : ScTableListItem& ScTableListItem::operator=( const ScTableListItem& rCpy )
     458             : {
     459           0 :     delete [] pTabArr;
     460             : 
     461           0 :     if ( rCpy.nCount > 0 )
     462             :     {
     463           0 :         pTabArr = new SCTAB [rCpy.nCount];
     464           0 :         for ( sal_uInt16 i=0; i<rCpy.nCount; i++ )
     465           0 :             pTabArr[i] = rCpy.pTabArr[i];
     466             :     }
     467             :     else
     468           0 :         pTabArr = NULL;
     469             : 
     470           0 :     nCount = rCpy.nCount;
     471             : 
     472           0 :     return *this;
     473             : }
     474             : 
     475           0 : bool ScTableListItem::operator==( const SfxPoolItem& rAttr ) const
     476             : {
     477             :     assert(SfxPoolItem::operator==(rAttr));
     478             : 
     479           0 :     const ScTableListItem& rCmp   = static_cast<const ScTableListItem&>(rAttr);
     480           0 :     bool                   bEqual = (nCount == rCmp.nCount);
     481             : 
     482           0 :     if ( nCount > 0 )
     483             :     {
     484           0 :         sal_uInt16  i=0;
     485             : 
     486           0 :         bEqual = ( pTabArr && rCmp.pTabArr );
     487             : 
     488           0 :         while ( bEqual && i<nCount )
     489             :         {
     490           0 :             bEqual = ( pTabArr[i] == rCmp.pTabArr[i] );
     491           0 :             i++;
     492             :         }
     493             :     }
     494           0 :     return bEqual;
     495             : }
     496             : 
     497           0 : SfxPoolItem* ScTableListItem::Clone( SfxItemPool* ) const
     498             : {
     499           0 :     return new ScTableListItem( *this );
     500             : }
     501             : 
     502           0 : bool ScTableListItem::GetPresentation
     503             :     (
     504             :         SfxItemPresentation ePres,
     505             :         SfxMapUnit          /* eCoreUnit */,
     506             :         SfxMapUnit          /* ePresUnit */,
     507             :         OUString&           rText,
     508             :         const IntlWrapper* /* pIntl */
     509             :     ) const
     510             : {
     511           0 :     switch ( ePres )
     512             :     {
     513             :         case SFX_ITEM_PRESENTATION_NAMELESS:
     514             :             {
     515           0 :             rText  = "(";
     516           0 :             if ( nCount>0 && pTabArr )
     517           0 :                 for ( sal_uInt16 i=0; i<nCount; i++ )
     518             :                 {
     519           0 :                     rText += OUString::number( pTabArr[i] );
     520           0 :                     if ( i<(nCount-1) )
     521           0 :                         rText += ",";
     522             :                 }
     523           0 :             rText += ")";
     524             :             }
     525           0 :             return true;
     526             : 
     527             :         case SFX_ITEM_PRESENTATION_COMPLETE:
     528           0 :             rText.clear();
     529           0 :             return false;
     530             : 
     531             :         default:
     532             :         {
     533             :             // added to avoid warnings
     534             :         }
     535             :     }
     536             : 
     537           0 :     return false;
     538             : }
     539             : 
     540             : /**
     541             :  * ScPageHFItem - Dates from the Head and Foot lines
     542             :  */
     543        6874 : ScPageHFItem::ScPageHFItem( sal_uInt16 nWhichP )
     544             :     :   SfxPoolItem ( nWhichP ),
     545             :         pLeftArea   ( NULL ),
     546             :         pCenterArea ( NULL ),
     547        6874 :         pRightArea  ( NULL )
     548             : {
     549        6874 : }
     550             : 
     551        8759 : ScPageHFItem::ScPageHFItem( const ScPageHFItem& rItem )
     552             :     :   SfxPoolItem ( rItem ),
     553             :         pLeftArea   ( NULL ),
     554             :         pCenterArea ( NULL ),
     555        8759 :         pRightArea  ( NULL )
     556             : {
     557        8759 :     if ( rItem.pLeftArea )
     558        3637 :         pLeftArea = rItem.pLeftArea->Clone();
     559        8759 :     if ( rItem.pCenterArea )
     560        3729 :         pCenterArea = rItem.pCenterArea->Clone();
     561        8759 :     if ( rItem.pRightArea )
     562        3637 :         pRightArea = rItem.pRightArea->Clone();
     563        8759 : }
     564             : 
     565       45789 : ScPageHFItem::~ScPageHFItem()
     566             : {
     567       15311 :     delete pLeftArea;
     568       15311 :     delete pCenterArea;
     569       15311 :     delete pRightArea;
     570       30478 : }
     571             : 
     572        2167 : bool ScPageHFItem::QueryValue( uno::Any& rVal, sal_uInt8 /* nMemberId */ ) const
     573             : {
     574             :     uno::Reference<sheet::XHeaderFooterContent> xContent =
     575        2167 :         new ScHeaderFooterContentObj( pLeftArea, pCenterArea, pRightArea );
     576             : 
     577        2167 :     rVal <<= xContent;
     578        2167 :     return true;
     579             : }
     580             : 
     581        1674 : bool ScPageHFItem::PutValue( const uno::Any& rVal, sal_uInt8 /* nMemberId */ )
     582             : {
     583        1674 :     bool bRet = false;
     584        1674 :     uno::Reference<sheet::XHeaderFooterContent> xContent;
     585        1674 :     if ( rVal >>= xContent )
     586             :     {
     587        1674 :         if ( xContent.is() )
     588             :         {
     589             :             rtl::Reference<ScHeaderFooterContentObj> pImp =
     590        1674 :                     ScHeaderFooterContentObj::getImplementation( xContent );
     591        1674 :             if (pImp.is())
     592             :             {
     593        1674 :                 const EditTextObject* pImpLeft = pImp->GetLeftEditObject();
     594        1674 :                 delete pLeftArea;
     595        1674 :                 pLeftArea = pImpLeft ? pImpLeft->Clone() : NULL;
     596             : 
     597        1674 :                 const EditTextObject* pImpCenter = pImp->GetCenterEditObject();
     598        1674 :                 delete pCenterArea;
     599        1674 :                 pCenterArea = pImpCenter ? pImpCenter->Clone() : NULL;
     600             : 
     601        1674 :                 const EditTextObject* pImpRight = pImp->GetRightEditObject();
     602        1674 :                 delete pRightArea;
     603        1674 :                 pRightArea = pImpRight ? pImpRight->Clone() : NULL;
     604             : 
     605        1674 :                 if ( !pLeftArea || !pCenterArea || !pRightArea )
     606             :                 {
     607             :                     // no Text with Null are left
     608          86 :                     ScEditEngineDefaulter aEngine( EditEngine::CreatePool(), true );
     609          86 :                     if (!pLeftArea)
     610          86 :                         pLeftArea = aEngine.CreateTextObject();
     611          86 :                     if (!pCenterArea)
     612           0 :                         pCenterArea = aEngine.CreateTextObject();
     613          86 :                     if (!pRightArea)
     614          86 :                         pRightArea = aEngine.CreateTextObject();
     615             :                 }
     616             : 
     617        1674 :                 bRet = true;
     618        1674 :             }
     619             :         }
     620             :     }
     621             : 
     622        1674 :     if (!bRet)
     623             :     {
     624             :         OSL_FAIL("exception - wrong argument");
     625             :     }
     626             : 
     627        1674 :     return true;
     628             : }
     629             : 
     630       10279 : bool ScPageHFItem::operator==( const SfxPoolItem& rItem ) const
     631             : {
     632             :     assert(SfxPoolItem::operator==(rItem));
     633             : 
     634       10279 :     const ScPageHFItem& r = static_cast<const ScPageHFItem&>(rItem);
     635             : 
     636       10279 :     return    ScGlobal::EETextObjEqual(pLeftArea,   r.pLeftArea)
     637        2003 :            && ScGlobal::EETextObjEqual(pCenterArea, r.pCenterArea)
     638       10840 :            && ScGlobal::EETextObjEqual(pRightArea,  r.pRightArea);
     639             : }
     640             : 
     641        8759 : SfxPoolItem* ScPageHFItem::Clone( SfxItemPool* ) const
     642             : {
     643        8759 :     return new ScPageHFItem( *this );
     644             : }
     645             : 
     646           0 : static void lcl_SetSpace( OUString& rStr, const ESelection& rSel )
     647             : {
     648             :     // Text replaced by a space to ensure they are positions:
     649           0 :     sal_Int32 nLen = rSel.nEndPos-rSel.nStartPos;
     650           0 :     rStr = rStr.replaceAt( rSel.nStartPos, nLen, " " );
     651           0 : }
     652             : 
     653           0 : static bool lcl_ConvertFields(EditEngine& rEng, const OUString* pCommands)
     654             : {
     655           0 :     bool bChange = false;
     656           0 :     sal_Int32 nParCnt = rEng.GetParagraphCount();
     657           0 :     for (sal_Int32 nPar = 0; nPar<nParCnt; nPar++)
     658             :     {
     659           0 :         OUString aStr = rEng.GetText( nPar );
     660             :         sal_Int32 nPos;
     661             : 
     662           0 :         while ((nPos = aStr.indexOf(pCommands[0])) != -1)
     663             :         {
     664           0 :             ESelection aSel( nPar,nPos, nPar,nPos+pCommands[0].getLength() );
     665           0 :             rEng.QuickInsertField( SvxFieldItem(SvxPageField(), EE_FEATURE_FIELD), aSel );
     666           0 :             lcl_SetSpace(aStr, aSel ); bChange = true;
     667             :         }
     668           0 :         while ((nPos = aStr.indexOf(pCommands[1])) != -1)
     669             :         {
     670           0 :             ESelection aSel( nPar,nPos, nPar,nPos+pCommands[1].getLength() );
     671           0 :             rEng.QuickInsertField( SvxFieldItem(SvxPagesField(), EE_FEATURE_FIELD), aSel );
     672           0 :             lcl_SetSpace(aStr, aSel ); bChange = true;
     673             :         }
     674           0 :         while ((nPos = aStr.indexOf(pCommands[2])) != -1)
     675             :         {
     676           0 :             ESelection aSel( nPar,nPos, nPar,nPos+pCommands[2].getLength() );
     677           0 :             rEng.QuickInsertField( SvxFieldItem(SvxDateField(Date( Date::SYSTEM ),SVXDATETYPE_VAR), EE_FEATURE_FIELD), aSel );
     678           0 :             lcl_SetSpace(aStr, aSel ); bChange = true;
     679             :         }
     680           0 :         while ((nPos = aStr.indexOf(pCommands[3])) != -1)
     681             :         {
     682           0 :             ESelection aSel( nPar,nPos, nPar,nPos+pCommands[3].getLength() );
     683           0 :             rEng.QuickInsertField( SvxFieldItem(SvxTimeField(), EE_FEATURE_FIELD ), aSel );
     684           0 :             lcl_SetSpace(aStr, aSel ); bChange = true;
     685             :         }
     686           0 :         while ((nPos = aStr.indexOf(pCommands[4])) != -1)
     687             :         {
     688           0 :             ESelection aSel( nPar,nPos, nPar,nPos+pCommands[4].getLength() );
     689           0 :             rEng.QuickInsertField( SvxFieldItem(SvxFileField(), EE_FEATURE_FIELD), aSel );
     690           0 :             lcl_SetSpace(aStr, aSel ); bChange = true;
     691             :         }
     692           0 :         while ((nPos = aStr.indexOf(pCommands[5])) != -1)
     693             :         {
     694           0 :             ESelection aSel( nPar,nPos, nPar,nPos+pCommands[5].getLength() );
     695           0 :             rEng.QuickInsertField( SvxFieldItem(SvxTableField(), EE_FEATURE_FIELD), aSel );
     696           0 :             lcl_SetSpace(aStr, aSel ); bChange = true;
     697             :         }
     698           0 :     }
     699           0 :     return bChange;
     700             : }
     701             : 
     702             : #define SC_FIELD_COUNT  6
     703             : 
     704           0 : SfxPoolItem* ScPageHFItem::Create( SvStream& rStream, sal_uInt16 nVer ) const
     705             : {
     706           0 :     EditTextObject* pLeft   = EditTextObject::Create(rStream);
     707           0 :     EditTextObject* pCenter = EditTextObject::Create(rStream);
     708           0 :     EditTextObject* pRight  = EditTextObject::Create(rStream);
     709             : 
     710             :     OSL_ENSURE( pLeft && pCenter && pRight, "Error reading ScPageHFItem" );
     711             : 
     712           0 :     if ( pLeft == NULL   || pLeft->GetParagraphCount() == 0 ||
     713           0 :          pCenter == NULL || pCenter->GetParagraphCount() == 0 ||
     714           0 :          pRight == NULL  || pRight->GetParagraphCount() == 0 )
     715             :     {
     716             :         // If successfully loaded, each object contains at least one paragraph.
     717             :         // Excel import in 5.1 created broken TextObjects (#67442#) that are
     718             :         // corrected here to avoid saving wrong files again (#90487#).
     719           0 :         ScEditEngineDefaulter aEngine( EditEngine::CreatePool(), true );
     720           0 :         if ( pLeft == NULL || pLeft->GetParagraphCount() == 0 )
     721             :         {
     722           0 :             delete pLeft;
     723           0 :             pLeft = aEngine.CreateTextObject();
     724             :         }
     725           0 :         if ( pCenter == NULL || pCenter->GetParagraphCount() == 0 )
     726             :         {
     727           0 :             delete pCenter;
     728           0 :             pCenter = aEngine.CreateTextObject();
     729             :         }
     730           0 :         if ( pRight == NULL || pRight->GetParagraphCount() == 0 )
     731             :         {
     732           0 :             delete pRight;
     733           0 :             pRight = aEngine.CreateTextObject();
     734           0 :         }
     735             :     }
     736             : 
     737           0 :     if ( nVer < 1 ) // old field command conversions
     738             :     {
     739             :         sal_uInt16 i;
     740           0 :         const OUString& rDel = ScGlobal::GetRscString( STR_HFCMD_DELIMITER );
     741           0 :         OUString aCommands[SC_FIELD_COUNT];
     742           0 :         for (i=0; i<SC_FIELD_COUNT; i++)
     743           0 :             aCommands[i] = rDel;
     744           0 :         aCommands[0] += ScGlobal::GetRscString(STR_HFCMD_PAGE);
     745           0 :         aCommands[1] += ScGlobal::GetRscString(STR_HFCMD_PAGES);
     746           0 :         aCommands[2] += ScGlobal::GetRscString(STR_HFCMD_DATE);
     747           0 :         aCommands[3] += ScGlobal::GetRscString(STR_HFCMD_TIME);
     748           0 :         aCommands[4] += ScGlobal::GetRscString(STR_HFCMD_FILE);
     749           0 :         aCommands[5] += ScGlobal::GetRscString(STR_HFCMD_TABLE);
     750           0 :         for (i=0; i<SC_FIELD_COUNT; i++)
     751           0 :             aCommands[i] += rDel;
     752             : 
     753           0 :         ScEditEngineDefaulter aEngine( EditEngine::CreatePool(), true );
     754           0 :         aEngine.SetText(*pLeft);
     755           0 :         if (lcl_ConvertFields(aEngine,aCommands))
     756             :         {
     757           0 :             delete pLeft;
     758           0 :             pLeft = aEngine.CreateTextObject();
     759             :         }
     760           0 :         aEngine.SetText(*pCenter);
     761           0 :         if (lcl_ConvertFields(aEngine,aCommands))
     762             :         {
     763           0 :             delete pCenter;
     764           0 :             pCenter = aEngine.CreateTextObject();
     765             :         }
     766           0 :         aEngine.SetText(*pRight);
     767           0 :         if (lcl_ConvertFields(aEngine,aCommands))
     768             :         {
     769           0 :             delete pRight;
     770           0 :             pRight = aEngine.CreateTextObject();
     771           0 :         }
     772             :     }
     773             :     else if ( nVer < 2 ) {} // nothing to do: SvxFileField is not exchanged for SvxExtFileField
     774             : 
     775           0 :     ScPageHFItem* pItem = new ScPageHFItem( Which() );
     776           0 :     pItem->SetArea( pLeft,    SC_HF_LEFTAREA   );
     777           0 :     pItem->SetArea( pCenter, SC_HF_CENTERAREA );
     778           0 :     pItem->SetArea( pRight,  SC_HF_RIGHTAREA  );
     779             : 
     780           0 :     return pItem;
     781             : }
     782             : 
     783        2448 : void ScPageHFItem::SetLeftArea( const EditTextObject& rNew )
     784             : {
     785        2448 :     delete pLeftArea;
     786        2448 :     pLeftArea = rNew.Clone();
     787        2448 : }
     788             : 
     789        2580 : void ScPageHFItem::SetCenterArea( const EditTextObject& rNew )
     790             : {
     791        2580 :     delete pCenterArea;
     792        2580 :     pCenterArea = rNew.Clone();
     793        2580 : }
     794             : 
     795        2448 : void ScPageHFItem::SetRightArea( const EditTextObject& rNew )
     796             : {
     797        2448 :     delete pRightArea;
     798        2448 :     pRightArea = rNew.Clone();
     799        2448 : }
     800             : 
     801           0 : void ScPageHFItem::SetArea( EditTextObject *pNew, int nArea )
     802             : {
     803           0 :     switch ( nArea )
     804             :     {
     805           0 :         case SC_HF_LEFTAREA:    delete pLeftArea;   pLeftArea   = pNew; break;
     806           0 :         case SC_HF_CENTERAREA:  delete pCenterArea; pCenterArea = pNew; break;
     807           0 :         case SC_HF_RIGHTAREA:   delete pRightArea;  pRightArea  = pNew; break;
     808             :         default:
     809             :             OSL_FAIL( "New Area?" );
     810             :     }
     811           0 : }
     812             : 
     813             : /**
     814             :  * ScViewObjectModeItem - Display Mode of View Objects
     815             :  */
     816        4134 : ScViewObjectModeItem::ScViewObjectModeItem( sal_uInt16 nWhichP )
     817        4134 :     : SfxEnumItem( nWhichP, VOBJ_MODE_SHOW )
     818             : {
     819        4134 : }
     820             : 
     821          30 : ScViewObjectModeItem::ScViewObjectModeItem( sal_uInt16 nWhichP, ScVObjMode eMode )
     822          30 :     : SfxEnumItem( nWhichP, sal::static_int_cast<sal_uInt16>(eMode) )
     823             : {
     824          30 : }
     825             : 
     826        7938 : ScViewObjectModeItem::~ScViewObjectModeItem()
     827             : {
     828        7938 : }
     829             : 
     830           0 : bool ScViewObjectModeItem::GetPresentation
     831             : (
     832             :     SfxItemPresentation ePres,
     833             :     SfxMapUnit          /* eCoreUnit */,
     834             :     SfxMapUnit          /* ePresUnit */,
     835             :     OUString&           rText,
     836             :     const IntlWrapper* /* pIntl */
     837             : )   const
     838             : {
     839           0 :     OUString aDel(": ");
     840           0 :     rText.clear();
     841             : 
     842           0 :     switch ( ePres )
     843             :     {
     844             :         case SFX_ITEM_PRESENTATION_COMPLETE:
     845           0 :         switch( Which() )
     846             :         {
     847             :             case SID_SCATTR_PAGE_CHARTS:
     848           0 :             rText = ScGlobal::GetRscString(STR_VOBJ_CHART) + aDel;
     849           0 :             break;
     850             : 
     851             :             case SID_SCATTR_PAGE_OBJECTS:
     852           0 :             rText = ScGlobal::GetRscString(STR_VOBJ_OBJECT) + aDel;
     853           0 :             break;
     854             : 
     855             :             case SID_SCATTR_PAGE_DRAWINGS:
     856           0 :             rText = ScGlobal::GetRscString(STR_VOBJ_DRAWINGS) + aDel;
     857           0 :             break;
     858             : 
     859             :             default:
     860           0 :             ePres = SFX_ITEM_PRESENTATION_NAMELESS; // Default setting!
     861           0 :             break;
     862             :         }
     863             :         /* !!! fall-through !!! */
     864             :         case SFX_ITEM_PRESENTATION_NAMELESS:
     865           0 :         rText += ScGlobal::GetRscString(STR_VOBJ_MODE_SHOW+GetValue());
     866           0 :         return true;
     867             :         break;
     868             : 
     869           0 :         default: break;
     870             :             // added to avoid warnings
     871             :     }
     872             : 
     873           0 :     return false;
     874             : }
     875             : 
     876           0 : sal_uInt16 ScViewObjectModeItem::GetValueCount() const
     877             : {
     878           0 :     return 2;
     879             : }
     880             : 
     881          30 : SfxPoolItem* ScViewObjectModeItem::Clone( SfxItemPool* ) const
     882             : {
     883          30 :     return new ScViewObjectModeItem( *this );
     884             : }
     885             : 
     886           0 : sal_uInt16 ScViewObjectModeItem::GetVersion( sal_uInt16 /* nFileVersion */ ) const
     887             : {
     888           0 :     return 1;
     889             : }
     890             : 
     891           0 : SfxPoolItem* ScViewObjectModeItem::Create(
     892             :                                     SvStream&   rStream,
     893             :                                     sal_uInt16      nVersion ) const
     894             : {
     895           0 :     if ( nVersion == 0 )
     896             :     {
     897             :         // Old Version with AllEnuItem -> produce with Mode "Show"
     898           0 :         return new ScViewObjectModeItem( Which() );
     899             :     }
     900             :     else
     901             :     {
     902             :         sal_uInt16 nVal;
     903           0 :         rStream.ReadUInt16( nVal );
     904             : 
     905             :         //#i80528# adapt to new range eventually
     906           0 :         if((sal_uInt16)VOBJ_MODE_HIDE < nVal) nVal = (sal_uInt16)VOBJ_MODE_SHOW;
     907             : 
     908           0 :         return new ScViewObjectModeItem( Which(), (ScVObjMode)nVal);
     909             :     }
     910             : }
     911             : 
     912             : /**
     913             :  * Double
     914             :  */
     915           0 : ScDoubleItem::ScDoubleItem( sal_uInt16 nWhichP, double nVal )
     916             :     :   SfxPoolItem ( nWhichP ),
     917           0 :         nValue  ( nVal )
     918             : {
     919           0 : }
     920             : 
     921           0 : ScDoubleItem::ScDoubleItem( const ScDoubleItem& rItem )
     922           0 :     :   SfxPoolItem ( rItem )
     923             : {
     924           0 :         nValue = rItem.nValue;
     925           0 : }
     926             : 
     927           0 : bool ScDoubleItem::operator==( const SfxPoolItem& rItem ) const
     928             : {
     929             :     assert(SfxPoolItem::operator==(rItem));
     930           0 :     const ScDoubleItem& _rItem = static_cast<const ScDoubleItem&>(rItem);
     931           0 :     return nValue == _rItem.nValue;
     932             : }
     933             : 
     934           0 : SfxPoolItem* ScDoubleItem::Clone( SfxItemPool* ) const
     935             : {
     936           0 :     return new ScDoubleItem( *this );
     937             : }
     938             : 
     939           0 : SfxPoolItem* ScDoubleItem::Create( SvStream& rStream, sal_uInt16 /* nVer */ ) const
     940             : {
     941           0 :     double nTmp=0;
     942           0 :     rStream.ReadDouble( nTmp );
     943             : 
     944           0 :     ScDoubleItem* pItem = new ScDoubleItem( Which(), nTmp );
     945             : 
     946           0 :     return pItem;
     947             : }
     948             : 
     949           0 : ScDoubleItem::~ScDoubleItem()
     950             : {
     951           0 : }
     952             : 
     953        1816 : ScPageScaleToItem::ScPageScaleToItem() :
     954             :     SfxPoolItem( ATTR_PAGE_SCALETO ),
     955             :     mnWidth( 0 ),
     956        1816 :     mnHeight( 0 )
     957             : {
     958        1816 : }
     959             : 
     960        1379 : ScPageScaleToItem::ScPageScaleToItem( sal_uInt16 nWidth, sal_uInt16 nHeight ) :
     961             :     SfxPoolItem( ATTR_PAGE_SCALETO ),
     962             :     mnWidth( nWidth ),
     963        1379 :     mnHeight( nHeight )
     964             : {
     965        1379 : }
     966             : 
     967        8093 : ScPageScaleToItem::~ScPageScaleToItem()
     968             : {
     969        8093 : }
     970             : 
     971        1827 : ScPageScaleToItem* ScPageScaleToItem::Clone( SfxItemPool* ) const
     972             : {
     973        1827 :     return new ScPageScaleToItem( *this );
     974             : }
     975             : 
     976          17 : bool ScPageScaleToItem::operator==( const SfxPoolItem& rCmp ) const
     977             : {
     978             :     assert(SfxPoolItem::operator==(rCmp));
     979          17 :     const ScPageScaleToItem& rPageCmp = static_cast< const ScPageScaleToItem& >( rCmp );
     980          17 :     return (mnWidth == rPageCmp.mnWidth) && (mnHeight == rPageCmp.mnHeight);
     981             : }
     982             : 
     983             : namespace {
     984           0 : void lclAppendScalePageCount( OUString& rText, sal_uInt16 nPages )
     985             : {
     986           0 :     rText += ": ";
     987           0 :     if( nPages )
     988             :     {
     989           0 :         OUString aPages( ScGlobal::GetRscString( STR_SCATTR_PAGE_SCALE_PAGES ) );
     990           0 :         rText += aPages.replaceFirst( "%1", OUString::number( nPages ) );
     991             :     }
     992             :     else
     993           0 :         rText += ScGlobal::GetRscString( STR_SCATTR_PAGE_SCALE_AUTO );
     994           0 : }
     995             : } // namespace
     996             : 
     997           0 : bool ScPageScaleToItem::GetPresentation(
     998             :         SfxItemPresentation ePres, SfxMapUnit, SfxMapUnit, OUString& rText, const IntlWrapper* ) const
     999             : {
    1000           0 :     rText.clear();
    1001           0 :     if( !IsValid())
    1002           0 :         return false;
    1003             : 
    1004           0 :     OUString aName( ScGlobal::GetRscString( STR_SCATTR_PAGE_SCALETO ) );
    1005           0 :     OUString aValue( ScGlobal::GetRscString( STR_SCATTR_PAGE_SCALE_WIDTH ) );
    1006           0 :     lclAppendScalePageCount( aValue, mnWidth );
    1007           0 :     aValue = aValue + ", " + ScGlobal::GetRscString( STR_SCATTR_PAGE_SCALE_HEIGHT );
    1008           0 :     lclAppendScalePageCount( aValue, mnHeight );
    1009             : 
    1010           0 :     switch( ePres )
    1011             :     {
    1012             :         case SFX_ITEM_PRESENTATION_NAMELESS:
    1013           0 :             rText = aValue;
    1014           0 :             return true;
    1015             :         break;
    1016             : 
    1017             :         case SFX_ITEM_PRESENTATION_COMPLETE:
    1018           0 :             rText = aName + " (" + aValue + ")";
    1019           0 :             return true;
    1020             :         break;
    1021             : 
    1022             :         default:
    1023             :             OSL_FAIL( "ScPageScaleToItem::GetPresentation - unknown presentation mode" );
    1024             :     }
    1025           0 :     return false;
    1026             : }
    1027             : 
    1028           0 : bool ScPageScaleToItem::QueryValue( uno::Any& rAny, sal_uInt8 nMemberId ) const
    1029             : {
    1030           0 :     bool bRet = true;
    1031           0 :     switch( nMemberId )
    1032             :     {
    1033           0 :         case SC_MID_PAGE_SCALETO_WIDTH:     rAny <<= mnWidth;   break;
    1034           0 :         case SC_MID_PAGE_SCALETO_HEIGHT:    rAny <<= mnHeight;  break;
    1035             :         default:
    1036             :             OSL_FAIL( "ScPageScaleToItem::QueryValue - unknown member ID" );
    1037           0 :             bRet = false;
    1038             :     }
    1039           0 :     return bRet;
    1040             : }
    1041             : 
    1042           0 : bool ScPageScaleToItem::PutValue( const uno::Any& rAny, sal_uInt8 nMemberId )
    1043             : {
    1044           0 :     bool bRet = false;
    1045           0 :     switch( nMemberId )
    1046             :     {
    1047           0 :         case SC_MID_PAGE_SCALETO_WIDTH:     bRet = rAny >>= mnWidth;    break;
    1048           0 :         case SC_MID_PAGE_SCALETO_HEIGHT:    bRet = rAny >>= mnHeight;   break;
    1049             :         default:
    1050             :             OSL_FAIL( "ScPageScaleToItem::PutValue - unknown member ID" );
    1051             :     }
    1052           0 :     return bRet;
    1053             : }
    1054             : 
    1055        5723 : ScCondFormatItem::ScCondFormatItem():
    1056        5723 :     SfxPoolItem( ATTR_CONDITIONAL )
    1057             : {
    1058        5723 : }
    1059             : 
    1060         150 : ScCondFormatItem::ScCondFormatItem( const std::vector<sal_uInt32>& rIndex ):
    1061             :     SfxPoolItem( ATTR_CONDITIONAL ),
    1062         150 :     maIndex( rIndex )
    1063             : {
    1064         150 : }
    1065             : 
    1066        7243 : ScCondFormatItem::~ScCondFormatItem()
    1067             : {
    1068        7243 : }
    1069             : 
    1070        8705 : bool ScCondFormatItem::operator==( const SfxPoolItem& rCmp ) const
    1071             : {
    1072        8705 :     return maIndex == static_cast<const ScCondFormatItem&>(rCmp).maIndex;
    1073             : }
    1074             : 
    1075         150 : ScCondFormatItem* ScCondFormatItem::Clone(SfxItemPool*) const
    1076             : {
    1077         150 :     return new ScCondFormatItem(maIndex);
    1078             : }
    1079             : 
    1080           0 : void ScCondFormatItem::AddCondFormatData( sal_uInt32 nIndex )
    1081             : {
    1082           0 :     maIndex.push_back(nIndex);
    1083           0 : }
    1084             : 
    1085        4345 : void ScCondFormatItem::SetCondFormatData( const std::vector<sal_uInt32>& rIndex )
    1086             : {
    1087        4345 :     maIndex = rIndex;
    1088        4501 : }
    1089             : 
    1090             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.11