LCOV - code coverage report
Current view: top level - sc/source/ui/app - uiitems.cxx (source / functions) Hit Total Coverage
Test: commit c8344322a7af75b84dd3ca8f78b05543a976dfd5 Lines: 72 215 33.5 %
Date: 2015-06-13 12:38:46 Functions: 45 120 37.5 %
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 "uiitems.hxx"
      21             : 
      22             : #include "userlist.hxx"
      23             : #include "dpsave.hxx"
      24             : #include "queryparam.hxx"
      25             : 
      26             : #include <osl/diagnose.h>
      27             : #include <editeng/editobj.hxx>
      28             : 
      29             : // STATIC DATA -----------------------------------------------------------
      30             : 
      31           0 : TYPEINIT1(ScInputStatusItem,    SfxPoolItem);
      32        1040 : TYPEINIT1(ScSortItem,           SfxPoolItem);
      33          48 : TYPEINIT1(ScQueryItem,          SfxPoolItem);
      34          48 : TYPEINIT1(ScSubTotalItem,       SfxPoolItem);
      35          48 : TYPEINIT1(ScUserListItem,       SfxPoolItem);
      36          48 : TYPEINIT1(ScConsolidateItem,    SfxPoolItem);
      37          48 : TYPEINIT1(ScPivotItem,          SfxPoolItem);
      38          48 : TYPEINIT1(ScSolveItem,          SfxPoolItem);
      39           0 : TYPEINIT1(ScTabOpItem,          SfxPoolItem);
      40             : 
      41             : 
      42             : /**
      43             :  * Status update for entry field
      44             :  */
      45           0 : ScInputStatusItem::ScInputStatusItem(
      46             :     sal_uInt16 nWhichP, const ScAddress& rCurPos, const ScAddress& rStartPos,
      47             :     const ScAddress& rEndPos, const OUString& rString, const EditTextObject* pData ) :
      48             :     SfxPoolItem ( nWhichP ),
      49             :     aCursorPos  ( rCurPos ),
      50             :     aStartPos   ( rStartPos ),
      51             :     aEndPos     ( rEndPos ),
      52             :     aString     ( rString ),
      53             :     pEditData   ( pData ? pData->Clone() : NULL ),
      54           0 :     mpMisspellRanges(NULL)
      55             : {
      56           0 : }
      57             : 
      58           0 : ScInputStatusItem::ScInputStatusItem( const ScInputStatusItem& rItem ) :
      59             :     SfxPoolItem ( rItem ),
      60             :     aCursorPos  ( rItem.aCursorPos ),
      61             :     aStartPos   ( rItem.aStartPos ),
      62             :     aEndPos     ( rItem.aEndPos ),
      63             :     aString     ( rItem.aString ),
      64           0 :     pEditData   ( rItem.pEditData ? rItem.pEditData->Clone() : NULL ),
      65           0 :     mpMisspellRanges(rItem.mpMisspellRanges)
      66             : {
      67           0 : }
      68             : 
      69           0 : ScInputStatusItem::~ScInputStatusItem()
      70             : {
      71           0 :     delete pEditData;
      72           0 : }
      73             : 
      74           0 : bool ScInputStatusItem::operator==( const SfxPoolItem& rItem ) const
      75             : {
      76             :     assert(SfxPoolItem::operator==(rItem));
      77             : 
      78           0 :     return (aStartPos  == static_cast<const ScInputStatusItem&>(rItem).aStartPos)
      79           0 :              && (aEndPos    == static_cast<const ScInputStatusItem&>(rItem).aEndPos)
      80           0 :              && (aCursorPos == static_cast<const ScInputStatusItem&>(rItem).aCursorPos)
      81           0 :              && (aString    == static_cast<const ScInputStatusItem&>(rItem).aString);
      82             :              //TODO: Compare Edit data!
      83             : }
      84             : 
      85           0 : SfxPoolItem* ScInputStatusItem::Clone( SfxItemPool * ) const
      86             : {
      87           0 :     return new ScInputStatusItem( *this );
      88             : }
      89             : 
      90           0 : void ScInputStatusItem::SetMisspellRanges( const std::vector<editeng::MisspellRanges>* pRanges )
      91             : {
      92           0 :     mpMisspellRanges = pRanges;
      93           0 : }
      94             : 
      95             : // ScPaintHint was moved to schints.cxx
      96             : 
      97             : /**
      98             :  * Adapt Views when inserting/deleting a table
      99             :  */
     100         194 : ScTablesHint::ScTablesHint(sal_uInt16 nNewId, SCTAB nTable1, SCTAB nTable2) :
     101             :     nId( nNewId ),
     102             :     nTab1( nTable1 ),
     103         194 :     nTab2( nTable2 )
     104             : {
     105         194 : }
     106             : 
     107         194 : ScTablesHint::~ScTablesHint()
     108             : {
     109         194 : }
     110             : 
     111           0 : ScIndexHint::ScIndexHint(sal_uInt16 nNewId, sal_uInt16 nIdx) :
     112             :     nId( nNewId ),
     113           0 :     nIndex( nIdx )
     114             : {
     115           0 : }
     116             : 
     117           0 : ScIndexHint::~ScIndexHint()
     118             : {
     119           0 : }
     120             : 
     121             : /**
     122             :  * Create new EditView for Cursorposition
     123             :  */
     124           0 : ScEditViewHint::ScEditViewHint( ScEditEngineDefaulter* pEngine, const ScAddress& rCurPos ) :
     125             :     pEditEngine( pEngine ),
     126           0 :     aCursorPos( rCurPos )
     127             : {
     128           0 : }
     129             : 
     130           0 : ScEditViewHint::~ScEditViewHint()
     131             : {
     132           0 : }
     133             : 
     134             : /**
     135             :  * Data for the sorting dialog
     136             :  */
     137           0 : ScSortItem::ScSortItem( sal_uInt16              nWhichP,
     138             :                         ScViewData*         ptrViewData,
     139             :                         const ScSortParam*  pSortData ) :
     140             :         SfxPoolItem ( nWhichP ),
     141           0 :         pViewData   ( ptrViewData )
     142             : {
     143           0 :     if ( pSortData ) theSortData = *pSortData;
     144           0 : }
     145             : 
     146          52 : ScSortItem::ScSortItem( sal_uInt16              nWhichP,
     147             :                         const ScSortParam*  pSortData ) :
     148             :         SfxPoolItem ( nWhichP ),
     149          52 :         pViewData   ( NULL )
     150             : {
     151          52 :     if ( pSortData ) theSortData = *pSortData;
     152          52 : }
     153             : 
     154         324 : ScSortItem::ScSortItem( const ScSortItem& rItem ) :
     155             :         SfxPoolItem ( rItem ),
     156             :         pViewData   ( rItem.pViewData ),
     157         324 :         theSortData ( rItem.theSortData )
     158             : {
     159         324 : }
     160             : 
     161         664 : ScSortItem::~ScSortItem()
     162             : {
     163         664 : }
     164             : 
     165          10 : bool ScSortItem::operator==( const SfxPoolItem& rItem ) const
     166             : {
     167             :     assert(SfxPoolItem::operator==(rItem));
     168             : 
     169          10 :     const ScSortItem& rOther = static_cast<const ScSortItem&>(rItem);
     170             : 
     171          10 :     return (   (pViewData   == rOther.pViewData)
     172          10 :             && (theSortData == rOther.theSortData) );
     173             : }
     174             : 
     175         324 : SfxPoolItem* ScSortItem::Clone( SfxItemPool * ) const
     176             : {
     177         324 :     return new ScSortItem( *this );
     178             : }
     179             : 
     180         239 : bool ScSortItem::QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 /* nMemberUd */ ) const
     181             : {
     182             :     // Return empty value as there is no useful conversion
     183         239 :     rVal = com::sun::star::uno::Any();
     184         239 :     return true;
     185             : }
     186             : 
     187             : /**
     188             :  * Data for the Filter dialog
     189             :  */
     190          52 : ScQueryItem::ScQueryItem( sal_uInt16                nWhichP,
     191             :                           ScViewData*           ptrViewData,
     192             :                           const ScQueryParam*   pQueryData ) :
     193             :         SfxPoolItem ( nWhichP ),
     194             :         mpQueryData(NULL),
     195             :         pViewData   ( ptrViewData ),
     196          52 :         bIsAdvanced ( false )
     197             : {
     198          52 :     if (pQueryData)
     199           0 :         mpQueryData.reset(new ScQueryParam(*pQueryData));
     200             :     else
     201          52 :         mpQueryData.reset(new ScQueryParam);
     202          52 : }
     203             : 
     204           0 : ScQueryItem::ScQueryItem( sal_uInt16                nWhichP,
     205             :                           const ScQueryParam*   pQueryData ) :
     206             :         SfxPoolItem ( nWhichP ),
     207             :         mpQueryData(NULL),
     208             :         pViewData   ( NULL ),
     209           0 :         bIsAdvanced ( false )
     210             : {
     211           0 :     if (pQueryData)
     212           0 :         mpQueryData.reset(new ScQueryParam(*pQueryData));
     213             :     else
     214           0 :         mpQueryData.reset(new ScQueryParam);
     215           0 : }
     216             : 
     217           0 : ScQueryItem::ScQueryItem( const ScQueryItem& rItem ) :
     218             :         SfxPoolItem ( rItem ),
     219           0 :         mpQueryData(new ScQueryParam(*rItem.mpQueryData)),
     220             :         pViewData   ( rItem.pViewData ),
     221             :         aAdvSource  ( rItem.aAdvSource ),
     222           0 :         bIsAdvanced ( rItem.bIsAdvanced )
     223             : {
     224           0 : }
     225             : 
     226          16 : ScQueryItem::~ScQueryItem()
     227             : {
     228          16 : }
     229             : 
     230           0 : void ScQueryItem::SetAdvancedQuerySource(const ScRange* pSource)
     231             : {
     232           0 :     if (pSource)
     233             :     {
     234           0 :         aAdvSource = *pSource;
     235           0 :         bIsAdvanced = true;
     236             :     }
     237             :     else
     238           0 :         bIsAdvanced = false;
     239           0 : }
     240             : 
     241           0 : const ScQueryParam& ScQueryItem::GetQueryData() const
     242             : {
     243           0 :     return *mpQueryData;
     244             : }
     245             : 
     246           0 : bool ScQueryItem::GetAdvancedQuerySource(ScRange& rSource) const
     247             : {
     248           0 :     rSource = aAdvSource;
     249           0 :     return bIsAdvanced;
     250             : }
     251             : 
     252           0 : bool ScQueryItem::operator==( const SfxPoolItem& rItem ) const
     253             : {
     254             :     assert(SfxPoolItem::operator==(rItem));
     255             : 
     256           0 :     const ScQueryItem& rQueryItem = static_cast<const ScQueryItem&>(rItem);
     257             : 
     258           0 :     return (   (pViewData    == rQueryItem.pViewData)
     259           0 :             && (bIsAdvanced  == rQueryItem.bIsAdvanced)
     260           0 :             && (aAdvSource   == rQueryItem.aAdvSource)
     261           0 :             && (*mpQueryData == *rQueryItem.mpQueryData) );
     262             : }
     263             : 
     264           0 : SfxPoolItem* ScQueryItem::Clone( SfxItemPool * ) const
     265             : {
     266           0 :     return new ScQueryItem( *this );
     267             : }
     268             : 
     269             : /**
     270             :  * Data for the SubTotal dialog
     271             :  */
     272          52 : ScSubTotalItem::ScSubTotalItem( sal_uInt16                  nWhichP,
     273             :                                 ScViewData*             ptrViewData,
     274             :                                 const ScSubTotalParam*  pSubTotalData ) :
     275             :         SfxPoolItem ( nWhichP ),
     276          52 :         pViewData   ( ptrViewData )
     277             : {
     278          52 :     if ( pSubTotalData ) theSubTotalData = *pSubTotalData;
     279          52 : }
     280             : 
     281           0 : ScSubTotalItem::ScSubTotalItem( sal_uInt16                  nWhichP,
     282             :                                 const ScSubTotalParam*  pSubTotalData ) :
     283             :         SfxPoolItem ( nWhichP ),
     284           0 :         pViewData   ( NULL )
     285             : {
     286           0 :     if ( pSubTotalData ) theSubTotalData = *pSubTotalData;
     287           0 : }
     288             : 
     289           0 : ScSubTotalItem::ScSubTotalItem( const ScSubTotalItem& rItem ) :
     290             :         SfxPoolItem     ( rItem ),
     291             :         pViewData       ( rItem.pViewData ),
     292           0 :         theSubTotalData ( rItem.theSubTotalData )
     293             : {
     294           0 : }
     295             : 
     296          16 : ScSubTotalItem::~ScSubTotalItem()
     297             : {
     298          16 : }
     299             : 
     300           0 : bool ScSubTotalItem::operator==( const SfxPoolItem& rItem ) const
     301             : {
     302             :     assert(SfxPoolItem::operator==(rItem));
     303             : 
     304           0 :     const ScSubTotalItem& rSTItem = static_cast<const ScSubTotalItem&>(rItem);
     305             : 
     306           0 :     return (   (pViewData       == rSTItem.pViewData)
     307           0 :             && (theSubTotalData == rSTItem.theSubTotalData) );
     308             : }
     309             : 
     310           0 : SfxPoolItem* ScSubTotalItem::Clone( SfxItemPool * ) const
     311             : {
     312           0 :     return new ScSubTotalItem( *this );
     313             : }
     314             : 
     315           0 : bool ScSubTotalItem::QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 /* nMemberUd */ ) const
     316             : {
     317             :     // Return empty value as there is no useful conversion
     318           0 :     rVal = com::sun::star::uno::Any();
     319           0 :     return true;
     320             : }
     321             : 
     322             : /**
     323             :  * Transporter for the UserLIst dialog
     324             :  */
     325          52 : ScUserListItem::ScUserListItem( sal_uInt16 nWhichP )
     326             :     :   SfxPoolItem ( nWhichP ),
     327          52 :         pUserList   ( NULL )
     328             : {
     329          52 : }
     330             : 
     331           0 : ScUserListItem::ScUserListItem( const ScUserListItem& rItem )
     332           0 :     :   SfxPoolItem ( rItem )
     333             : {
     334           0 :     if ( rItem.pUserList )
     335           0 :         pUserList = new ScUserList( *(rItem.pUserList) );
     336             :     else
     337           0 :         pUserList = NULL;
     338           0 : }
     339             : 
     340          32 : ScUserListItem::~ScUserListItem()
     341             : {
     342          16 :     delete pUserList;
     343          16 : }
     344             : 
     345           0 : bool ScUserListItem::operator==( const SfxPoolItem& rItem ) const
     346             : {
     347             :     assert(SfxPoolItem::operator==(rItem));
     348             : 
     349           0 :     const ScUserListItem& r = static_cast<const ScUserListItem&>(rItem);
     350           0 :     bool bEqual = false;
     351             : 
     352           0 :     if ( !pUserList || !(r.pUserList) )
     353           0 :         bEqual = ( !pUserList && !(r.pUserList) );
     354             :     else
     355           0 :         bEqual = ( *pUserList == *(r.pUserList) );
     356             : 
     357           0 :     return bEqual;
     358             : }
     359             : 
     360           0 : SfxPoolItem* ScUserListItem::Clone( SfxItemPool * ) const
     361             : {
     362           0 :     return new ScUserListItem( *this );
     363             : }
     364             : 
     365           0 : void ScUserListItem::SetUserList( const ScUserList& rUserList )
     366             : {
     367           0 :     delete pUserList;
     368           0 :     pUserList = new ScUserList( rUserList );
     369           0 : }
     370             : 
     371             : /**
     372             :  * Data for the Consolidate dialog
     373             :  */
     374          52 : ScConsolidateItem::ScConsolidateItem(
     375             :                             sal_uInt16                      nWhichP,
     376             :                             const ScConsolidateParam*   pConsolidateData ) :
     377          52 :         SfxPoolItem ( nWhichP )
     378             : {
     379          52 :     if ( pConsolidateData ) theConsData = *pConsolidateData;
     380          52 : }
     381             : 
     382           0 : ScConsolidateItem::ScConsolidateItem( const ScConsolidateItem& rItem ) :
     383             :         SfxPoolItem ( rItem ),
     384           0 :         theConsData ( rItem.theConsData )
     385             : {
     386           0 : }
     387             : 
     388          16 : ScConsolidateItem::~ScConsolidateItem()
     389             : {
     390          16 : }
     391             : 
     392           0 : bool ScConsolidateItem::operator==( const SfxPoolItem& rItem ) const
     393             : {
     394             :     assert(SfxPoolItem::operator==(rItem));
     395             : 
     396           0 :     const ScConsolidateItem& rCItem = static_cast<const ScConsolidateItem&>(rItem);
     397             : 
     398           0 :     return ( theConsData == rCItem.theConsData);
     399             : }
     400             : 
     401           0 : SfxPoolItem* ScConsolidateItem::Clone( SfxItemPool * ) const
     402             : {
     403           0 :     return new ScConsolidateItem( *this );
     404             : }
     405             : 
     406             : /**
     407             :  * Data for the Pivot dialog
     408             :  */
     409          52 : ScPivotItem::ScPivotItem( sal_uInt16 nWhichP, const ScDPSaveData* pData,
     410             :                              const ScRange* pRange, bool bNew ) :
     411          52 :         SfxPoolItem ( nWhichP )
     412             : {
     413             :     // pSaveData must always exist
     414          52 :     if ( pData )
     415           0 :         pSaveData = new ScDPSaveData(*pData);
     416             :     else
     417          52 :         pSaveData = new ScDPSaveData;
     418          52 :     if ( pRange ) aDestRange = *pRange;
     419          52 :     bNewSheet = bNew;
     420          52 : }
     421             : 
     422           0 : ScPivotItem::ScPivotItem( const ScPivotItem& rItem ) :
     423             :         SfxPoolItem ( rItem ),
     424             :         aDestRange  ( rItem.aDestRange ),
     425           0 :         bNewSheet   ( rItem.bNewSheet )
     426             : {
     427             :     assert(rItem.pSaveData && "pSaveData");
     428           0 :     pSaveData = new ScDPSaveData(*rItem.pSaveData);
     429           0 : }
     430             : 
     431          32 : ScPivotItem::~ScPivotItem()
     432             : {
     433          16 :     delete pSaveData;
     434          16 : }
     435             : 
     436           0 : bool ScPivotItem::operator==( const SfxPoolItem& rItem ) const
     437             : {
     438             :     assert(SfxPoolItem::operator==(rItem));
     439             : 
     440           0 :     const ScPivotItem& rPItem = static_cast<const ScPivotItem&>(rItem);
     441             :     OSL_ENSURE( pSaveData && rPItem.pSaveData, "pSaveData" );
     442           0 :     return ( *pSaveData == *rPItem.pSaveData &&
     443           0 :              aDestRange == rPItem.aDestRange &&
     444           0 :              bNewSheet  == rPItem.bNewSheet );
     445             : }
     446             : 
     447           0 : SfxPoolItem* ScPivotItem::Clone( SfxItemPool * ) const
     448             : {
     449           0 :     return new ScPivotItem( *this );
     450             : }
     451             : 
     452             : /**
     453             :  * Data for the Solver dialog
     454             :  */
     455          52 : ScSolveItem::ScSolveItem( sal_uInt16                nWhichP,
     456             :                           const ScSolveParam*   pSolveData )
     457          52 :     :   SfxPoolItem ( nWhichP )
     458             : {
     459          52 :     if ( pSolveData ) theSolveData = *pSolveData;
     460          52 : }
     461             : 
     462           0 : ScSolveItem::ScSolveItem( const ScSolveItem& rItem )
     463             :     :   SfxPoolItem     ( rItem ),
     464           0 :         theSolveData    ( rItem.theSolveData )
     465             : {
     466           0 : }
     467             : 
     468          16 : ScSolveItem::~ScSolveItem()
     469             : {
     470          16 : }
     471             : 
     472           0 : bool ScSolveItem::operator==( const SfxPoolItem& rItem ) const
     473             : {
     474             :     assert(SfxPoolItem::operator==(rItem));
     475             : 
     476           0 :     const ScSolveItem& rPItem = static_cast<const ScSolveItem&>(rItem);
     477             : 
     478           0 :     return ( theSolveData == rPItem.theSolveData );
     479             : }
     480             : 
     481           0 : SfxPoolItem* ScSolveItem::Clone( SfxItemPool * ) const
     482             : {
     483           0 :     return new ScSolveItem( *this );
     484             : }
     485             : 
     486             : /**
     487             :  * Data for the TabOp dialog
     488             :  */
     489           0 : ScTabOpItem::ScTabOpItem( sal_uInt16                nWhichP,
     490             :                           const ScTabOpParam*   pTabOpData )
     491           0 :     :   SfxPoolItem ( nWhichP )
     492             : {
     493           0 :     if ( pTabOpData ) theTabOpData = *pTabOpData;
     494           0 : }
     495             : 
     496           0 : ScTabOpItem::ScTabOpItem( const ScTabOpItem& rItem )
     497             :     :   SfxPoolItem     ( rItem ),
     498           0 :         theTabOpData    ( rItem.theTabOpData )
     499             : {
     500           0 : }
     501             : 
     502           0 : ScTabOpItem::~ScTabOpItem()
     503             : {
     504           0 : }
     505             : 
     506           0 : bool ScTabOpItem::operator==( const SfxPoolItem& rItem ) const
     507             : {
     508             :     assert(SfxPoolItem::operator==(rItem));
     509             : 
     510           0 :     const ScTabOpItem& rPItem = static_cast<const ScTabOpItem&>(rItem);
     511             : 
     512           0 :     return ( theTabOpData == rPItem.theTabOpData );
     513             : }
     514             : 
     515           0 : SfxPoolItem* ScTabOpItem::Clone( SfxItemPool * ) const
     516             : {
     517           0 :     return new ScTabOpItem( *this );
     518         156 : }
     519             : 
     520             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.11