LCOV - code coverage report
Current view: top level - sc/source/core/tool - defaultsoptions.cxx (source / functions) Hit Total Coverage
Test: commit c8344322a7af75b84dd3ca8f78b05543a976dfd5 Lines: 32 77 41.6 %
Date: 2015-06-13 12:38:46 Functions: 7 25 28.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             : 
      10             : #include <com/sun/star/uno/Any.hxx>
      11             : #include <com/sun/star/uno/Sequence.hxx>
      12             : #include <osl/diagnose.h>
      13             : 
      14             : #include "defaultsoptions.hxx"
      15             : #include "miscuno.hxx"
      16             : #include "global.hxx"
      17             : #include "globstr.hrc"
      18             : 
      19             : using namespace utl;
      20             : using namespace com::sun::star::uno;
      21             : 
      22           0 : TYPEINIT1(ScTpDefaultsItem, SfxPoolItem);
      23             : 
      24          49 : ScDefaultsOptions::ScDefaultsOptions()
      25             : {
      26          49 :     SetDefaults();
      27          49 : }
      28             : 
      29           0 : ScDefaultsOptions::ScDefaultsOptions( const ScDefaultsOptions& rCpy ) :
      30             :     nInitTabCount( rCpy.nInitTabCount ),
      31           0 :     aInitTabPrefix( rCpy.aInitTabPrefix )
      32             : {
      33           0 : }
      34             : 
      35          16 : ScDefaultsOptions::~ScDefaultsOptions()
      36             : {
      37          16 : }
      38             : 
      39          49 : void ScDefaultsOptions::SetDefaults()
      40             : {
      41          49 :     nInitTabCount  = 1;
      42          49 :     aInitTabPrefix = ScGlobal::GetRscString(STR_TABLE_DEF); // Default Prefix "Sheet"
      43          49 : }
      44             : 
      45           0 : ScDefaultsOptions& ScDefaultsOptions::operator=( const ScDefaultsOptions& rCpy )
      46             : {
      47           0 :     nInitTabCount  = rCpy.nInitTabCount;
      48           0 :     aInitTabPrefix = rCpy.aInitTabPrefix;
      49             : 
      50           0 :     return *this;
      51             : }
      52             : 
      53           0 : bool ScDefaultsOptions::operator==( const ScDefaultsOptions& rOpt ) const
      54             : {
      55           0 :     return rOpt.nInitTabCount  == nInitTabCount
      56           0 :         && rOpt.aInitTabPrefix == aInitTabPrefix;
      57             : }
      58             : 
      59           0 : bool ScDefaultsOptions::operator!=( const ScDefaultsOptions& rOpt ) const
      60             : {
      61           0 :     return !(operator==(rOpt));
      62             : }
      63             : 
      64           0 : ScTpDefaultsItem::ScTpDefaultsItem( sal_uInt16 nWhichP, const ScDefaultsOptions& rOpt ) :
      65             :     SfxPoolItem ( nWhichP ),
      66           0 :     theOptions  ( rOpt )
      67             : {
      68           0 : }
      69             : 
      70           0 : ScTpDefaultsItem::ScTpDefaultsItem( const ScTpDefaultsItem& rItem ) :
      71             :     SfxPoolItem ( rItem ),
      72           0 :     theOptions  ( rItem.theOptions )
      73             : {
      74           0 : }
      75             : 
      76           0 : ScTpDefaultsItem::~ScTpDefaultsItem()
      77             : {
      78           0 : }
      79             : 
      80           0 : bool ScTpDefaultsItem::operator==( const SfxPoolItem& rItem ) const
      81             : {
      82             :     assert(SfxPoolItem::operator==(rItem));
      83             : 
      84           0 :     const ScTpDefaultsItem& rPItem = static_cast<const ScTpDefaultsItem&>(rItem);
      85           0 :     return ( theOptions == rPItem.theOptions );
      86             : }
      87             : 
      88           0 : SfxPoolItem* ScTpDefaultsItem::Clone( SfxItemPool * ) const
      89             : {
      90           0 :     return new ScTpDefaultsItem( *this );
      91             : }
      92             : 
      93             : #define CFGPATH_FORMULA          "Office.Calc/Defaults"
      94             : 
      95             : #define SCDEFAULTSOPT_TAB_COUNT  0
      96             : #define SCDEFAULTSOPT_TAB_PREFIX 1
      97             : #define SCDEFAULTSOPT_COUNT      2
      98             : 
      99          49 : Sequence<OUString> ScDefaultsCfg::GetPropertyNames()
     100             : {
     101             :     static const char* aPropNames[] =
     102             :     {
     103             :         "Sheet/SheetCount", // SCDEFAULTSOPT_TAB_COUNT
     104             :         "Sheet/SheetPrefix" // SCDEFAULTSOPT_TAB_PREFIX
     105             :     };
     106          49 :     Sequence<OUString> aNames(SCDEFAULTSOPT_COUNT);
     107          49 :     OUString* pNames = aNames.getArray();
     108         147 :     for (int i = 0; i < SCDEFAULTSOPT_COUNT; ++i)
     109          98 :         pNames[i] = OUString::createFromAscii(aPropNames[i]);
     110             : 
     111          49 :     return aNames;
     112             : }
     113             : 
     114          49 : ScDefaultsCfg::ScDefaultsCfg() :
     115          49 :     ConfigItem( OUString( CFGPATH_FORMULA ) )
     116             : {
     117          49 :     OUString aPrefix;
     118             : 
     119          98 :     Sequence<OUString> aNames = GetPropertyNames();
     120          98 :     Sequence<Any> aValues = GetProperties(aNames);
     121          49 :     const Any* pValues = aValues.getConstArray();
     122             :     OSL_ENSURE(aValues.getLength() == aNames.getLength(), "GetProperties failed");
     123          49 :     if(aValues.getLength() == aNames.getLength())
     124             :     {
     125          49 :         sal_Int32 nIntVal = 0;
     126         147 :         for(int nProp = 0; nProp < aNames.getLength(); nProp++)
     127             :         {
     128          98 :             if(pValues[nProp].hasValue())
     129             :             {
     130          49 :                 switch (nProp)
     131             :                 {
     132             :                 case SCDEFAULTSOPT_TAB_COUNT:
     133          49 :                     if (pValues[nProp] >>= nIntVal)
     134          49 :                         SetInitTabCount( static_cast<SCTAB>(nIntVal) );
     135          49 :                     break;
     136             :                 case SCDEFAULTSOPT_TAB_PREFIX:
     137           0 :                     if (pValues[nProp] >>= aPrefix)
     138           0 :                         SetInitTabPrefix(aPrefix);
     139           0 :                     break;
     140             :                 }
     141             :             }
     142             :         }
     143          49 :     }
     144          49 : }
     145             : 
     146           0 : void ScDefaultsCfg::ImplCommit()
     147             : {
     148           0 :     Sequence<OUString> aNames = GetPropertyNames();
     149           0 :     Sequence<Any> aValues(aNames.getLength());
     150           0 :     Any* pValues = aValues.getArray();
     151             : 
     152           0 :     for (int nProp = 0; nProp < aNames.getLength(); ++nProp)
     153             :     {
     154           0 :         switch(nProp)
     155             :         {
     156             :         case SCDEFAULTSOPT_TAB_COUNT:
     157           0 :             pValues[nProp] <<= static_cast<sal_Int32>(GetInitTabCount());
     158           0 :         break;
     159             :         case SCDEFAULTSOPT_TAB_PREFIX:
     160           0 :             pValues[nProp] <<= GetInitTabPrefix();
     161           0 :         break;
     162             :         }
     163             :     }
     164           0 :     PutProperties(aNames, aValues);
     165           0 : }
     166             : 
     167           0 : void ScDefaultsCfg::SetOptions( const ScDefaultsOptions& rNew )
     168             : {
     169           0 :     *static_cast<ScDefaultsOptions*>(this) = rNew;
     170           0 :     SetModified();
     171           0 : }
     172             : 
     173         156 : void ScDefaultsCfg::Notify( const ::com::sun::star::uno::Sequence< OUString >& ) {}
     174             : 
     175             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.11