LCOV - code coverage report
Current view: top level - sc/source/ui/view - cellsh1.cxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 1 1293 0.1 %
Date: 2012-08-25 Functions: 2 11 18.2 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 2 2599 0.1 %

           Branch data     Line data    Source code
       1                 :            : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2                 :            : /*************************************************************************
       3                 :            :  *
       4                 :            :  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
       5                 :            :  *
       6                 :            :  * Copyright 2000, 2010 Oracle and/or its affiliates.
       7                 :            :  *
       8                 :            :  * OpenOffice.org - a multi-platform office productivity suite
       9                 :            :  *
      10                 :            :  * This file is part of OpenOffice.org.
      11                 :            :  *
      12                 :            :  * OpenOffice.org is free software: you can redistribute it and/or modify
      13                 :            :  * it under the terms of the GNU Lesser General Public License version 3
      14                 :            :  * only, as published by the Free Software Foundation.
      15                 :            :  *
      16                 :            :  * OpenOffice.org is distributed in the hope that it will be useful,
      17                 :            :  * but WITHOUT ANY WARRANTY; without even the implied warranty of
      18                 :            :  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      19                 :            :  * GNU Lesser General Public License version 3 for more details
      20                 :            :  * (a copy is included in the LICENSE file that accompanied this code).
      21                 :            :  *
      22                 :            :  * You should have received a copy of the GNU Lesser General Public License
      23                 :            :  * version 3 along with OpenOffice.org.  If not, see
      24                 :            :  * <http://www.openoffice.org/license.html>
      25                 :            :  * for a copy of the LGPLv3 License.
      26                 :            :  *
      27                 :            :  ************************************************************************/
      28                 :            : 
      29                 :            : #include <iostream>
      30                 :            : 
      31                 :            : #include <com/sun/star/i18n/TextConversionOption.hpp>
      32                 :            : #include <com/sun/star/sheet/DataPilotFieldFilter.hpp>
      33                 :            : 
      34                 :            : #include "scitems.hxx"
      35                 :            : #include <sfx2/viewfrm.hxx>
      36                 :            : 
      37                 :            : #include <svl/stritem.hxx>
      38                 :            : #include <svl/whiter.hxx>
      39                 :            : #include <svl/zforlist.hxx>
      40                 :            : #include <svl/zformat.hxx>
      41                 :            : #include <sfx2/dispatch.hxx>
      42                 :            : #include <sfx2/request.hxx>
      43                 :            : #include <vcl/msgbox.hxx>
      44                 :            : #include <svx/svxdlg.hxx>
      45                 :            : #include <sot/formats.hxx>
      46                 :            : #include <svx/postattr.hxx>
      47                 :            : #include <editeng/fontitem.hxx>
      48                 :            : #include <svx/clipfmtitem.hxx>
      49                 :            : #include <sfx2/passwd.hxx>
      50                 :            : #include <svx/hlnkitem.hxx>
      51                 :            : #include <basic/sbxcore.hxx>
      52                 :            : #include <unotools/useroptions.hxx>
      53                 :            : #include <vcl/waitobj.hxx>
      54                 :            : #include <unotools/localedatawrapper.hxx>
      55                 :            : 
      56                 :            : #include "cellsh.hxx"
      57                 :            : #include "sc.hrc"
      58                 :            : #include "document.hxx"
      59                 :            : #include "patattr.hxx"
      60                 :            : #include "scmod.hxx"
      61                 :            : #include "scresid.hxx"
      62                 :            : #include "tabvwsh.hxx"
      63                 :            : #include "impex.hxx"
      64                 :            : #include "reffind.hxx"
      65                 :            : #include "uiitems.hxx"
      66                 :            : #include "reffact.hxx"
      67                 :            : #include "inputhdl.hxx"
      68                 :            : #include "transobj.hxx"
      69                 :            : #include "drwtrans.hxx"
      70                 :            : #include "docfunc.hxx"
      71                 :            : #include "editable.hxx"
      72                 :            : #include "dpobject.hxx"
      73                 :            : #include "dpsave.hxx"
      74                 :            : #include "dpgroup.hxx"      // for ScDPNumGroupInfo
      75                 :            : #include "spellparam.hxx"
      76                 :            : #include "postit.hxx"
      77                 :            : #include "clipparam.hxx"
      78                 :            : #include "pivot.hxx"
      79                 :            : #include "dpsdbtab.hxx"     // ScImportSourceDesc
      80                 :            : #include "dpshttab.hxx"     // ScSheetSourceDesc
      81                 :            : #include "dbdata.hxx"
      82                 :            : #include "docsh.hxx"
      83                 :            : #include "cliputil.hxx"
      84                 :            : #include "markdata.hxx"
      85                 :            : #include "docpool.hxx"
      86                 :            : 
      87                 :            : #include "globstr.hrc"
      88                 :            : #include "scui_def.hxx"
      89                 :            : #include <svx/dialogs.hrc>
      90                 :            : #include "scabstdlg.hxx"
      91                 :            : 
      92                 :            : #include <com/sun/star/ui/dialogs/XExecutableDialog.hpp>
      93                 :            : #include <com/sun/star/lang/XInitialization.hpp>
      94                 :            : #include <com/sun/star/beans/PropertyValue.hpp>
      95                 :            : #include <com/sun/star/beans/XPropertySet.hpp>
      96                 :            : #include <cppuhelper/bootstrap.hxx>
      97                 :            : #include <com/sun/star/i18n/TransliterationModules.hpp>
      98                 :            : #include <com/sun/star/i18n/TransliterationModulesExtra.hpp>
      99                 :            : 
     100                 :            : #include <boost/scoped_ptr.hpp>
     101                 :            : 
     102                 :            : using namespace ::com::sun::star;
     103                 :            : using namespace ::com::sun::star::beans;
     104                 :            : using namespace ::com::sun::star::uno;
     105                 :            : using ::rtl::OUString;
     106                 :            : 
     107                 :            : //------------------------------------------------------------------
     108                 :          0 : void ScCellShell::ExecuteEdit( SfxRequest& rReq )
     109                 :            : {
     110                 :          0 :     ScModule*           pScMod      = SC_MOD();
     111                 :          0 :     ScTabViewShell* pTabViewShell   = GetViewData()->GetViewShell();
     112                 :          0 :     SfxBindings&        rBindings   = pTabViewShell->GetViewFrame()->GetBindings();
     113                 :          0 :     const SfxItemSet*   pReqArgs    = rReq.GetArgs();
     114                 :          0 :     sal_uInt16              nSlot       = rReq.GetSlot();
     115                 :            : 
     116                 :          0 :     pTabViewShell->HideListBox();                   // Autofilter-DropDown-Listbox
     117                 :            : 
     118                 :            :     // finish input
     119         [ #  # ]:          0 :     if ( GetViewData()->HasEditView( GetViewData()->GetActivePart() ) )
     120                 :            :     {
     121         [ #  # ]:          0 :         switch ( nSlot )
     122                 :            :         {
     123                 :            :             case FID_DEFINE_NAME:
     124                 :            :             case FID_ADD_NAME:
     125                 :            :             case FID_USE_NAME:
     126                 :            :             case FID_INSERT_NAME:
     127                 :            :             case SID_SPELL_DIALOG:
     128                 :            :             case SID_HANGUL_HANJA_CONVERSION:
     129                 :            : 
     130                 :          0 :             pScMod->InputEnterHandler();
     131                 :          0 :             pTabViewShell->UpdateInputHandler();
     132                 :          0 :             break;
     133                 :            : 
     134                 :            :             default:
     135                 :          0 :             break;
     136                 :            :         }
     137                 :            :     }
     138                 :            : 
     139   [ #  #  #  #  :          0 :     switch ( nSlot )
          #  #  #  #  #  
          #  #  #  #  #  
          #  #  #  #  #  
          #  #  #  #  #  
          #  #  #  #  #  
          #  #  #  #  #  
          #  #  #  #  #  
          #  #  #  #  #  
          #  #  #  #  #  
          #  #  #  #  #  
          #  #  #  #  #  
          #  #  #  #  #  
          #  #  #  #  #  
             #  #  #  # ]
     140                 :            :     {
     141                 :            :         //
     142                 :            :         //  insert / delete cells / rows / columns
     143                 :            :         //
     144                 :            : 
     145                 :            :         case FID_INS_ROW:
     146                 :          0 :             pTabViewShell->InsertCells(INS_INSROWS);
     147                 :          0 :             rReq.Done();
     148                 :          0 :             break;
     149                 :            : 
     150                 :            :         case FID_INS_COLUMN:
     151                 :          0 :             pTabViewShell->InsertCells(INS_INSCOLS);
     152                 :          0 :             rReq.Done();
     153                 :          0 :             break;
     154                 :            : 
     155                 :            :         case FID_INS_CELLSDOWN:
     156                 :          0 :             pTabViewShell->InsertCells(INS_CELLSDOWN);
     157                 :          0 :             rReq.Done();
     158                 :          0 :             break;
     159                 :            : 
     160                 :            :         case FID_INS_CELLSRIGHT:
     161                 :          0 :             pTabViewShell->InsertCells(INS_CELLSRIGHT);
     162                 :          0 :             rReq.Done();
     163                 :          0 :             break;
     164                 :            : 
     165                 :            :         case SID_DEL_ROWS:
     166                 :          0 :             pTabViewShell->DeleteCells( DEL_DELROWS );
     167                 :          0 :             rReq.Done();
     168                 :          0 :             break;
     169                 :            : 
     170                 :            :         case SID_DEL_COLS:
     171                 :          0 :             pTabViewShell->DeleteCells( DEL_DELCOLS );
     172                 :          0 :             rReq.Done();
     173                 :          0 :             break;
     174                 :            : 
     175                 :            :         case FID_INS_CELL:
     176                 :            :             {
     177                 :          0 :                 InsCellCmd eCmd=INS_NONE;
     178                 :            : 
     179         [ #  # ]:          0 :                 if ( pReqArgs )
     180                 :            :                 {
     181                 :            :                     const SfxPoolItem* pItem;
     182         [ #  # ]:          0 :                     String aFlags;
     183                 :            : 
     184 [ #  # ][ #  # ]:          0 :                     if( pReqArgs->HasItem( FID_INS_CELL, &pItem ) )
     185         [ #  # ]:          0 :                         aFlags = ((const SfxStringItem*)pItem)->GetValue();
     186         [ #  # ]:          0 :                     if( aFlags.Len() )
     187                 :            :                     {
     188   [ #  #  #  #  :          0 :                         switch( aFlags.GetChar(0) )
                      # ]
     189                 :            :                         {
     190                 :          0 :                             case 'V': eCmd = INS_CELLSDOWN ;break;
     191                 :          0 :                             case '>': eCmd = INS_CELLSRIGHT ;break;
     192                 :          0 :                             case 'R': eCmd = INS_INSROWS ;break;
     193                 :          0 :                             case 'C': eCmd = INS_INSCOLS ;break;
     194                 :            :                         }
     195         [ #  # ]:          0 :                     }
     196                 :            :                 }
     197                 :            :                 else
     198                 :            :                 {
     199         [ #  # ]:          0 :                     if ( GetViewData()->SimpleColMarked() )
     200                 :          0 :                         eCmd = INS_INSCOLS;
     201         [ #  # ]:          0 :                     else if ( GetViewData()->SimpleRowMarked() )
     202                 :          0 :                         eCmd = INS_INSROWS;
     203                 :            :                     else
     204                 :            :                     {
     205                 :          0 :                         ScDocument* pDoc = GetViewData()->GetDocument();
     206                 :          0 :                         sal_Bool bTheFlag=(pDoc->GetChangeTrack()!=NULL);
     207                 :            : 
     208                 :          0 :                         ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
     209                 :            :                         OSL_ENSURE(pFact, "ScAbstractFactory create fail!");
     210                 :            : 
     211                 :          0 :                         AbstractScInsertCellDlg* pDlg = pFact->CreateScInsertCellDlg( pTabViewShell->GetDialogParent(), RID_SCDLG_INSCELL, bTheFlag);
     212                 :            :                         OSL_ENSURE(pDlg, "Dialog create fail!");
     213         [ #  # ]:          0 :                         if (pDlg->Execute() == RET_OK)
     214                 :          0 :                             eCmd = pDlg->GetInsCellCmd();
     215         [ #  # ]:          0 :                         delete pDlg;
     216                 :            :                     }
     217                 :            :                 }
     218                 :            : 
     219         [ #  # ]:          0 :                 if (eCmd!=INS_NONE)
     220                 :            :                 {
     221                 :          0 :                     pTabViewShell->InsertCells( eCmd );
     222                 :            : 
     223         [ #  # ]:          0 :                     if( ! rReq.IsAPI() )
     224                 :            :                     {
     225         [ #  # ]:          0 :                         String aParam;
     226                 :            : 
     227   [ #  #  #  #  :          0 :                         switch( eCmd )
                      # ]
     228                 :            :                         {
     229         [ #  # ]:          0 :                             case INS_CELLSDOWN: aParam='V'; break;
     230         [ #  # ]:          0 :                             case INS_CELLSRIGHT: aParam='>'; break;
     231         [ #  # ]:          0 :                             case INS_INSROWS: aParam='R'; break;
     232         [ #  # ]:          0 :                             case INS_INSCOLS: aParam='C'; break;
     233                 :            :                             default:
     234                 :            :                             {
     235                 :            :                                 // added to avoid warnings
     236                 :            :                             }
     237                 :            :                         }
     238 [ #  # ][ #  # ]:          0 :                         rReq.AppendItem( SfxStringItem( FID_INS_CELL, aParam ) );
                 [ #  # ]
     239 [ #  # ][ #  # ]:          0 :                         rReq.Done();
     240                 :            :                     }
     241                 :            :                 }
     242                 :            :             }
     243                 :          0 :             break;
     244                 :            : 
     245                 :            :         case FID_DELETE_CELL:
     246                 :            :             {
     247                 :          0 :                 DelCellCmd eCmd = DEL_NONE;
     248                 :            : 
     249         [ #  # ]:          0 :                 if ( pReqArgs )
     250                 :            :                 {
     251                 :            :                     const SfxPoolItem* pItem;
     252         [ #  # ]:          0 :                     String aFlags;
     253                 :            : 
     254 [ #  # ][ #  # ]:          0 :                     if( pReqArgs->HasItem( FID_DELETE_CELL, &pItem ) )
     255         [ #  # ]:          0 :                         aFlags = ((const SfxStringItem*)pItem)->GetValue();
     256         [ #  # ]:          0 :                     if( aFlags.Len() )
     257                 :            :                     {
     258   [ #  #  #  #  :          0 :                         switch( aFlags.GetChar(0) )
                      # ]
     259                 :            :                         {
     260                 :          0 :                             case 'U': eCmd = DEL_CELLSUP ;break;
     261                 :          0 :                             case 'L': eCmd = DEL_CELLSLEFT ;break;
     262                 :          0 :                             case 'R': eCmd = DEL_DELROWS ;break;
     263                 :          0 :                             case 'C': eCmd = DEL_DELCOLS ;break;
     264                 :            :                         }
     265         [ #  # ]:          0 :                     }
     266                 :            :                 }
     267                 :            :                 else
     268                 :            :                 {
     269         [ #  # ]:          0 :                     if ( GetViewData()->SimpleColMarked() )
     270                 :          0 :                         eCmd = DEL_DELCOLS;
     271         [ #  # ]:          0 :                     else if ( GetViewData()->SimpleRowMarked() )
     272                 :          0 :                         eCmd = DEL_DELROWS;
     273                 :            :                     else
     274                 :            :                     {
     275                 :          0 :                         ScRange aRange;
     276         [ #  # ]:          0 :                         ScDocument* pDoc = GetViewData()->GetDocument();
     277         [ #  # ]:          0 :                         sal_Bool bTheFlag=GetViewData()->IsMultiMarked() ||
     278         [ #  # ]:          0 :                             (GetViewData()->GetSimpleArea(aRange) == SC_MARK_SIMPLE_FILTERED) ||
     279 [ #  # ][ #  # ]:          0 :                             (pDoc->GetChangeTrack() != NULL);
                 [ #  # ]
     280                 :            : 
     281         [ #  # ]:          0 :                         ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
     282                 :            :                         OSL_ENSURE(pFact, "ScAbstractFactory create fail!");
     283                 :            : 
     284 [ #  # ][ #  # ]:          0 :                         AbstractScDeleteCellDlg* pDlg = pFact->CreateScDeleteCellDlg( pTabViewShell->GetDialogParent(), RID_SCDLG_DELCELL, bTheFlag );
     285                 :            :                         OSL_ENSURE(pDlg, "Dialog create fail!");
     286                 :            : 
     287 [ #  # ][ #  # ]:          0 :                         if (pDlg->Execute() == RET_OK)
     288         [ #  # ]:          0 :                             eCmd = pDlg->GetDelCellCmd();
     289 [ #  # ][ #  # ]:          0 :                         delete pDlg;
     290                 :            :                     }
     291                 :            :                 }
     292                 :            : 
     293         [ #  # ]:          0 :                 if (eCmd != DEL_NONE )
     294                 :            :                 {
     295                 :          0 :                     pTabViewShell->DeleteCells( eCmd );
     296                 :            : 
     297         [ #  # ]:          0 :                     if( ! rReq.IsAPI() )
     298                 :            :                     {
     299         [ #  # ]:          0 :                         String aParam;
     300                 :            : 
     301   [ #  #  #  #  :          0 :                         switch( eCmd )
                      # ]
     302                 :            :                         {
     303         [ #  # ]:          0 :                             case DEL_CELLSUP: aParam='U'; break;
     304         [ #  # ]:          0 :                             case DEL_CELLSLEFT: aParam='L'; break;
     305         [ #  # ]:          0 :                             case DEL_DELROWS: aParam='R'; break;
     306         [ #  # ]:          0 :                             case DEL_DELCOLS: aParam='C'; break;
     307                 :            :                             default:
     308                 :            :                             {
     309                 :            :                                 // added to avoid warnings
     310                 :            :                             }
     311                 :            :                         }
     312 [ #  # ][ #  # ]:          0 :                         rReq.AppendItem( SfxStringItem( FID_DELETE_CELL, aParam ) );
                 [ #  # ]
     313 [ #  # ][ #  # ]:          0 :                         rReq.Done();
     314                 :            :                     }
     315                 :            :                 }
     316                 :            :             }
     317                 :          0 :             break;
     318                 :            : 
     319                 :            :         //
     320                 :            :         //  delete contents from cells
     321                 :            :         //
     322                 :            : 
     323                 :            :         case SID_DELETE_CONTENTS:
     324                 :          0 :             pTabViewShell->DeleteContents( IDF_CONTENTS );
     325                 :          0 :             rReq.Done();
     326                 :          0 :             break;
     327                 :            : 
     328                 :            :         case SID_DELETE:
     329                 :            :             {
     330                 :          0 :                 sal_uInt16  nFlags = IDF_NONE;
     331                 :            : 
     332 [ #  # ][ #  # ]:          0 :                 if ( pReqArgs!=NULL && pTabViewShell->SelectionEditable() )
                 [ #  # ]
     333                 :            :                 {
     334                 :            :                     const   SfxPoolItem* pItem;
     335         [ #  # ]:          0 :                     String  aFlags = rtl::OUString('A');
     336                 :            : 
     337 [ #  # ][ #  # ]:          0 :                     if( pReqArgs->HasItem( SID_DELETE, &pItem ) )
     338         [ #  # ]:          0 :                         aFlags = ((const SfxStringItem*)pItem)->GetValue();
     339                 :            : 
     340         [ #  # ]:          0 :                     aFlags.ToUpperAscii();
     341                 :          0 :                     sal_Bool    bCont = sal_True;
     342                 :            : 
     343 [ #  # ][ #  # ]:          0 :                     for( xub_StrLen i=0 ; bCont && i<aFlags.Len() ; i++ )
                 [ #  # ]
     344                 :            :                     {
     345   [ #  #  #  #  :          0 :                         switch( aFlags.GetChar(i) )
             #  #  #  #  
                      # ]
     346                 :            :                         {
     347                 :            :                             case 'A': // all
     348                 :          0 :                             nFlags |= IDF_ALL;
     349                 :          0 :                             bCont = false; // don't continue!
     350                 :          0 :                             break;
     351                 :          0 :                             case 'S': nFlags |= IDF_STRING; break;
     352                 :          0 :                             case 'V': nFlags |= IDF_VALUE; break;
     353                 :          0 :                             case 'D': nFlags |= IDF_DATETIME; break;
     354                 :          0 :                             case 'F': nFlags |= IDF_FORMULA; break;
     355                 :          0 :                             case 'N': nFlags |= IDF_NOTE; break;
     356                 :          0 :                             case 'T': nFlags |= IDF_ATTRIB; break;
     357                 :          0 :                             case 'O': nFlags |= IDF_OBJECTS; break;
     358                 :            :                         }
     359         [ #  # ]:          0 :                     }
     360                 :            :                 }
     361                 :            :                 else
     362                 :            :                 {
     363 [ #  # ][ #  # ]:          0 :                     ScEditableTester aTester( pTabViewShell );
     364         [ #  # ]:          0 :                     if (aTester.IsEditable())
     365                 :            :                     {
     366         [ #  # ]:          0 :                         ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
     367                 :            :                         OSL_ENSURE(pFact, "ScAbstractFactory create fail!");
     368                 :            : 
     369 [ #  # ][ #  # ]:          0 :                         AbstractScDeleteContentsDlg* pDlg = pFact->CreateScDeleteContentsDlg( pTabViewShell->GetDialogParent(), RID_SCDLG_DELCONT );
     370                 :            :                         OSL_ENSURE(pDlg, "Dialog create fail!");
     371         [ #  # ]:          0 :                         ScDocument* pDoc = GetViewData()->GetDocument();
     372                 :          0 :                         SCTAB nTab = GetViewData()->GetTabNo();
     373 [ #  # ][ #  # ]:          0 :                         if ( pDoc->IsTabProtected(nTab) )
     374         [ #  # ]:          0 :                             pDlg->DisableObjects();
     375 [ #  # ][ #  # ]:          0 :                         if (pDlg->Execute() == RET_OK)
     376                 :            :                         {
     377         [ #  # ]:          0 :                             nFlags = pDlg->GetDelContentsCmdBits();
     378                 :            :                         }
     379 [ #  # ][ #  # ]:          0 :                         delete pDlg;
     380                 :            :                     }
     381                 :            :                     else
     382 [ #  # ][ #  # ]:          0 :                         pTabViewShell->ErrorMessage(aTester.GetMessageId());
     383                 :            :                 }
     384                 :            : 
     385         [ #  # ]:          0 :                 if( nFlags != IDF_NONE )
     386                 :            :                 {
     387                 :          0 :                     pTabViewShell->DeleteContents( nFlags );
     388                 :            : 
     389         [ #  # ]:          0 :                     if( ! rReq.IsAPI() )
     390                 :            :                     {
     391         [ #  # ]:          0 :                         String  aFlags;
     392                 :            : 
     393         [ #  # ]:          0 :                         if( nFlags == IDF_ALL )
     394                 :            :                         {
     395         [ #  # ]:          0 :                             aFlags += 'A';
     396                 :            :                         }
     397                 :            :                         else
     398                 :            :                         {
     399 [ #  # ][ #  # ]:          0 :                             if( nFlags & IDF_STRING ) aFlags += 'S';
     400 [ #  # ][ #  # ]:          0 :                             if( nFlags & IDF_VALUE ) aFlags += 'V';
     401 [ #  # ][ #  # ]:          0 :                             if( nFlags & IDF_DATETIME ) aFlags += 'D';
     402 [ #  # ][ #  # ]:          0 :                             if( nFlags & IDF_FORMULA ) aFlags += 'F';
     403 [ #  # ][ #  # ]:          0 :                             if( nFlags & IDF_NOTE ) aFlags += 'N';
     404 [ #  # ][ #  # ]:          0 :                             if( nFlags & IDF_ATTRIB ) aFlags += 'T';
     405 [ #  # ][ #  # ]:          0 :                             if( nFlags & IDF_OBJECTS ) aFlags += 'O';
     406                 :            :                         }
     407                 :            : 
     408 [ #  # ][ #  # ]:          0 :                         rReq.AppendItem( SfxStringItem( SID_DELETE, aFlags ) );
                 [ #  # ]
     409 [ #  # ][ #  # ]:          0 :                         rReq.Done();
     410                 :            :                     }
     411                 :            :                 }
     412                 :            :             }
     413                 :          0 :             break;
     414                 :            : 
     415                 :            :         //
     416                 :            :         //  fill...
     417                 :            :         //
     418                 :            : 
     419                 :            :         case FID_FILL_TO_BOTTOM:
     420                 :          0 :             pTabViewShell->FillSimple( FILL_TO_BOTTOM );
     421                 :          0 :             rReq.Done();
     422                 :          0 :             break;
     423                 :            : 
     424                 :            :         case FID_FILL_TO_RIGHT:
     425                 :          0 :             pTabViewShell->FillSimple( FILL_TO_RIGHT );
     426                 :          0 :             rReq.Done();
     427                 :          0 :             break;
     428                 :            : 
     429                 :            :         case FID_FILL_TO_TOP:
     430                 :          0 :             pTabViewShell->FillSimple( FILL_TO_TOP );
     431                 :          0 :             rReq.Done();
     432                 :          0 :             break;
     433                 :            : 
     434                 :            :         case FID_FILL_TO_LEFT:
     435                 :          0 :             pTabViewShell->FillSimple( FILL_TO_LEFT );
     436                 :          0 :             rReq.Done();
     437                 :          0 :             break;
     438                 :            : 
     439                 :            :         case FID_FILL_TAB:
     440                 :            :             {
     441                 :          0 :                 sal_uInt16 nFlags = IDF_NONE;
     442                 :          0 :                 sal_uInt16 nFunction = PASTE_NOFUNC;
     443                 :          0 :                 sal_Bool bSkipEmpty = false;
     444                 :          0 :                 sal_Bool bAsLink    = false;
     445                 :            : 
     446 [ #  # ][ #  # ]:          0 :                 if ( pReqArgs!=NULL && pTabViewShell->SelectionEditable() )
                 [ #  # ]
     447                 :            :                 {
     448                 :            :                     const   SfxPoolItem* pItem;
     449         [ #  # ]:          0 :                     String  aFlags = rtl::OUString('A');
     450                 :            : 
     451 [ #  # ][ #  # ]:          0 :                     if( pReqArgs->HasItem( FID_FILL_TAB, &pItem ) )
     452         [ #  # ]:          0 :                         aFlags = ((const SfxStringItem*)pItem)->GetValue();
     453                 :            : 
     454         [ #  # ]:          0 :                     aFlags.ToUpperAscii();
     455                 :          0 :                     sal_Bool    bCont = sal_True;
     456                 :            : 
     457 [ #  # ][ #  # ]:          0 :                     for( xub_StrLen i=0 ; bCont && i<aFlags.Len() ; i++ )
                 [ #  # ]
     458                 :            :                     {
     459   [ #  #  #  #  :          0 :                         switch( aFlags.GetChar(i) )
             #  #  #  # ]
     460                 :            :                         {
     461                 :            :                             case 'A': // all
     462                 :          0 :                             nFlags |= IDF_ALL;
     463                 :          0 :                             bCont = false; // don't continue!
     464                 :          0 :                             break;
     465                 :          0 :                             case 'S': nFlags |= IDF_STRING; break;
     466                 :          0 :                             case 'V': nFlags |= IDF_VALUE; break;
     467                 :          0 :                             case 'D': nFlags |= IDF_DATETIME; break;
     468                 :          0 :                             case 'F': nFlags |= IDF_FORMULA; break;
     469                 :          0 :                             case 'N': nFlags |= IDF_NOTE; break;
     470                 :          0 :                             case 'T': nFlags |= IDF_ATTRIB; break;
     471                 :            :                         }
     472         [ #  # ]:          0 :                     }
     473                 :            :                 }
     474                 :            :                 else
     475                 :            :                 {
     476                 :          0 :                     ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
     477                 :            :                     OSL_ENSURE(pFact, "ScAbstractFactory create fail!");
     478                 :            : 
     479                 :            :                     AbstractScInsertContentsDlg* pDlg = pFact->CreateScInsertContentsDlg( pTabViewShell->GetDialogParent(),
     480                 :            :                                                                                             RID_SCDLG_INSCONT, 0, /* nCheckDefaults */
     481                 :          0 :                                                                                             &ScGlobal::GetRscString(STR_FILL_TAB));
     482                 :            :                     OSL_ENSURE(pDlg, "Dialog create fail!");
     483                 :          0 :                     pDlg->SetFillMode(true);
     484                 :            : 
     485         [ #  # ]:          0 :                     if (pDlg->Execute() == RET_OK)
     486                 :            :                     {
     487                 :          0 :                         nFlags     = pDlg->GetInsContentsCmdBits();
     488                 :          0 :                         nFunction  = pDlg->GetFormulaCmdBits();
     489                 :          0 :                         bSkipEmpty = pDlg->IsSkipEmptyCells();
     490                 :          0 :                         bAsLink    = pDlg->IsLink();
     491                 :            :                         //  there is no MoveMode with fill tabs
     492                 :            :                     }
     493         [ #  # ]:          0 :                     delete pDlg;
     494                 :            :                 }
     495                 :            : 
     496         [ #  # ]:          0 :                 if( nFlags != IDF_NONE )
     497                 :            :                 {
     498                 :          0 :                     pTabViewShell->FillTab( nFlags, nFunction, bSkipEmpty, bAsLink );
     499                 :            : 
     500         [ #  # ]:          0 :                     if( ! rReq.IsAPI() )
     501                 :            :                     {
     502         [ #  # ]:          0 :                         String  aFlags;
     503                 :            : 
     504         [ #  # ]:          0 :                         if( nFlags == IDF_ALL )
     505                 :            :                         {
     506         [ #  # ]:          0 :                             aFlags += 'A';
     507                 :            :                         }
     508                 :            :                         else
     509                 :            :                         {
     510 [ #  # ][ #  # ]:          0 :                             if( nFlags & IDF_STRING ) aFlags += 'S';
     511 [ #  # ][ #  # ]:          0 :                             if( nFlags & IDF_VALUE ) aFlags += 'V';
     512 [ #  # ][ #  # ]:          0 :                             if( nFlags & IDF_DATETIME ) aFlags += 'D';
     513 [ #  # ][ #  # ]:          0 :                             if( nFlags & IDF_FORMULA ) aFlags += 'F';
     514 [ #  # ][ #  # ]:          0 :                             if( nFlags & IDF_NOTE ) aFlags += 'N';
     515 [ #  # ][ #  # ]:          0 :                             if( nFlags & IDF_ATTRIB ) aFlags += 'T';
     516                 :            :                         }
     517                 :            : 
     518 [ #  # ][ #  # ]:          0 :                         rReq.AppendItem( SfxStringItem( FID_FILL_TAB, aFlags ) );
                 [ #  # ]
     519 [ #  # ][ #  # ]:          0 :                         rReq.Done();
     520                 :            :                     }
     521                 :            :                 }
     522                 :            :             }
     523                 :          0 :             break;
     524                 :            : 
     525                 :            :         case FID_FILL_SERIES:
     526                 :            :             {
     527                 :            :                 SCCOL nStartCol;
     528                 :            :                 SCROW nStartRow;
     529                 :            :                 SCTAB nStartTab;
     530                 :            :                 SCCOL nEndCol;
     531                 :            :                 SCROW nEndRow;
     532                 :            :                 SCTAB nEndTab;
     533                 :          0 :                 sal_uInt16 nPossDir = FDS_OPT_NONE;
     534                 :          0 :                 FillDir     eFillDir     = FILL_TO_BOTTOM;
     535                 :          0 :                 FillCmd     eFillCmd     = FILL_LINEAR;
     536                 :          0 :                 FillDateCmd eFillDateCmd = FILL_DAY;
     537                 :          0 :                 double fStartVal = MAXDOUBLE;
     538                 :          0 :                 double fIncVal   = 1;
     539                 :          0 :                 double fMaxVal   = MAXDOUBLE;
     540                 :          0 :                 sal_Bool   bDoIt     = false;
     541                 :            : 
     542                 :            :                 GetViewData()->GetSimpleArea( nStartCol, nStartRow, nStartTab,
     543         [ #  # ]:          0 :                                               nEndCol, nEndRow, nEndTab );
     544                 :            : 
     545         [ #  # ]:          0 :                 if( nStartCol!=nEndCol )
     546                 :            :                 {
     547                 :          0 :                     nPossDir |= FDS_OPT_HORZ;
     548                 :          0 :                     eFillDir=FILL_TO_RIGHT;
     549                 :            :                 }
     550                 :            : 
     551         [ #  # ]:          0 :                 if( nStartRow!=nEndRow )
     552                 :            :                 {
     553                 :          0 :                     nPossDir |= FDS_OPT_VERT;
     554                 :          0 :                     eFillDir=FILL_TO_BOTTOM;
     555                 :            :                 }
     556                 :            : 
     557         [ #  # ]:          0 :                 ScDocument*      pDoc = GetViewData()->GetDocument();
     558         [ #  # ]:          0 :                 SvNumberFormatter* pFormatter = pDoc->GetFormatTable();
     559                 :            : 
     560         [ #  # ]:          0 :                 if( pReqArgs )
     561                 :            :                 {
     562                 :            :                     const SfxPoolItem* pItem;
     563 [ #  # ][ #  # ]:          0 :                     String  aFillDir, aFillCmd, aFillDateCmd;
                 [ #  # ]
     564 [ #  # ][ #  # ]:          0 :                     String  aFillStep, aFillStart, aFillMax;
                 [ #  # ]
     565                 :            :                     sal_uInt32 nKey;
     566                 :            :                     double  fTmpVal;
     567                 :            : 
     568                 :          0 :                     bDoIt=false;
     569                 :            : 
     570 [ #  # ][ #  # ]:          0 :                     if( pReqArgs->HasItem( FID_FILL_SERIES, &pItem ) )
     571         [ #  # ]:          0 :                         aFillDir = ((const SfxStringItem*)pItem)->GetValue();
     572 [ #  # ][ #  # ]:          0 :                     if( pReqArgs->HasItem( FN_PARAM_1, &pItem ) )
     573         [ #  # ]:          0 :                         aFillCmd = ((const SfxStringItem*)pItem)->GetValue();
     574 [ #  # ][ #  # ]:          0 :                     if( pReqArgs->HasItem( FN_PARAM_2, &pItem ) )
     575         [ #  # ]:          0 :                         aFillDateCmd = ((const SfxStringItem*)pItem)->GetValue();
     576 [ #  # ][ #  # ]:          0 :                     if( pReqArgs->HasItem( FN_PARAM_3, &pItem ) )
     577         [ #  # ]:          0 :                         aFillStep = ((const SfxStringItem*)pItem)->GetValue();
     578 [ #  # ][ #  # ]:          0 :                     if( pReqArgs->HasItem( FN_PARAM_4, &pItem ) )
     579         [ #  # ]:          0 :                         aFillStart = ((const SfxStringItem*)pItem)->GetValue();
     580 [ #  # ][ #  # ]:          0 :                     if( pReqArgs->HasItem( FN_PARAM_5, &pItem ) )
     581         [ #  # ]:          0 :                         aFillMax = ((const SfxStringItem*)pItem)->GetValue();
     582                 :            : 
     583         [ #  # ]:          0 :                     if( aFillDir.Len() )
     584   [ #  #  #  #  :          0 :                         switch( aFillDir.GetChar(0) )
                      # ]
     585                 :            :                         {
     586                 :          0 :                             case 'B': case 'b': eFillDir=FILL_TO_BOTTOM; break;
     587                 :          0 :                             case 'R': case 'r': eFillDir=FILL_TO_RIGHT; break;
     588                 :          0 :                             case 'T': case 't': eFillDir=FILL_TO_TOP; break;
     589                 :          0 :                             case 'L': case 'l': eFillDir=FILL_TO_LEFT; break;
     590                 :            :                         }
     591                 :            : 
     592         [ #  # ]:          0 :                     if( aFillCmd.Len() )
     593   [ #  #  #  #  :          0 :                         switch( aFillCmd.GetChar(0) )
                   #  # ]
     594                 :            :                         {
     595                 :          0 :                             case 'S': case 's': eFillCmd=FILL_SIMPLE; break;
     596                 :          0 :                             case 'L': case 'l': eFillCmd=FILL_LINEAR; break;
     597                 :          0 :                             case 'G': case 'g': eFillCmd=FILL_GROWTH; break;
     598                 :          0 :                             case 'D': case 'd': eFillCmd=FILL_DATE; break;
     599                 :          0 :                             case 'A': case 'a': eFillCmd=FILL_AUTO; break;
     600                 :            :                         }
     601                 :            : 
     602         [ #  # ]:          0 :                     if( aFillDateCmd.Len() )
     603   [ #  #  #  #  :          0 :                         switch( aFillDateCmd.GetChar(0) )
                      # ]
     604                 :            :                         {
     605                 :          0 :                             case 'D': case 'd': eFillDateCmd=FILL_DAY; break;
     606                 :          0 :                             case 'W': case 'w': eFillDateCmd=FILL_WEEKDAY; break;
     607                 :          0 :                             case 'M': case 'm': eFillDateCmd=FILL_MONTH; break;
     608                 :          0 :                             case 'Y': case 'y': eFillDateCmd=FILL_YEAR; break;
     609                 :            :                         }
     610                 :            : 
     611                 :          0 :                     nKey = 0;
     612 [ #  # ][ #  # ]:          0 :                     if( pFormatter->IsNumberFormat( aFillStart, nKey, fTmpVal ))
     613                 :          0 :                         fStartVal = fTmpVal;
     614                 :            : 
     615                 :          0 :                     nKey = 0;
     616 [ #  # ][ #  # ]:          0 :                     if( pFormatter->IsNumberFormat( aFillStep, nKey, fTmpVal ))
     617                 :          0 :                         fIncVal = fTmpVal;
     618                 :            : 
     619                 :          0 :                     nKey = 0;
     620 [ #  # ][ #  # ]:          0 :                     if( pFormatter->IsNumberFormat( aFillMax, nKey, fTmpVal ))
     621                 :          0 :                         fMaxVal = fTmpVal;
     622                 :            : 
     623 [ #  # ][ #  # ]:          0 :                     bDoIt   = sal_True;
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
     624                 :            : 
     625                 :            :                 }
     626                 :            :                 else // (pReqArgs == NULL) => raise Dialog
     627                 :            :                 {
     628                 :            :                     sal_uInt32 nPrivFormat;
     629                 :            :                     CellType eCellType;
     630         [ #  # ]:          0 :                     pDoc->GetNumberFormat( nStartCol, nStartRow, nStartTab, nPrivFormat );
     631         [ #  # ]:          0 :                     pDoc->GetCellType( nStartCol, nStartRow, nStartTab,eCellType );
     632         [ #  # ]:          0 :                     const SvNumberformat* pPrivEntry = pFormatter->GetEntry( nPrivFormat );
     633         [ #  # ]:          0 :                     if (!pPrivEntry)
     634                 :            :                     {
     635                 :            :                         OSL_FAIL("Numberformat not found !!!");
     636                 :            :                     }
     637                 :            :                     else
     638                 :            :                     {
     639                 :          0 :                         short nPrivType = pPrivEntry->GetType();
     640         [ #  # ]:          0 :                         if ( ( nPrivType & NUMBERFORMAT_DATE)>0)
     641                 :            :                         {
     642                 :          0 :                            eFillCmd=FILL_DATE;
     643                 :            :                         }
     644         [ #  # ]:          0 :                         else if(eCellType==CELLTYPE_STRING)
     645                 :            :                         {
     646                 :          0 :                            eFillCmd=FILL_AUTO;
     647                 :            :                         }
     648                 :            :                     }
     649                 :            : 
     650                 :            :                     //
     651         [ #  # ]:          0 :                     String aStartStr;
     652                 :            : 
     653                 :            :                     //  suggest default Startvalue only, when just 1 row or column
     654 [ #  # ][ #  # ]:          0 :                     if ( nStartCol == nEndCol || nStartRow == nEndRow )
     655                 :            :                     {
     656                 :          0 :                         double fInputEndVal = 0.0;
     657         [ #  # ]:          0 :                         String aEndStr;
     658                 :            : 
     659         [ #  # ]:          0 :                         pDoc->GetInputString( nStartCol, nStartRow, nStartTab, aStartStr);
     660         [ #  # ]:          0 :                         pDoc->GetValue( nStartCol, nStartRow, nStartTab, fStartVal );
     661                 :            : 
     662                 :            : 
     663 [ #  # ][ #  # ]:          0 :                         if(eFillDir==FILL_TO_BOTTOM && nStartRow < nEndRow )
     664                 :            :                         {
     665         [ #  # ]:          0 :                             pDoc->GetInputString( nStartCol, nStartRow+1, nStartTab, aEndStr);
     666         [ #  # ]:          0 :                             if(aEndStr.Len()>0)
     667                 :            :                             {
     668         [ #  # ]:          0 :                                 pDoc->GetValue( nStartCol, nStartRow+1, nStartTab, fInputEndVal);
     669                 :          0 :                                 fIncVal=fInputEndVal-fStartVal;
     670                 :            :                             }
     671                 :            :                         }
     672                 :            :                         else
     673                 :            :                         {
     674         [ #  # ]:          0 :                             if(nStartCol < nEndCol)
     675                 :            :                             {
     676         [ #  # ]:          0 :                                 pDoc->GetInputString( nStartCol+1, nStartRow, nStartTab, aEndStr);
     677         [ #  # ]:          0 :                                 if(aEndStr.Len()>0)
     678                 :            :                                 {
     679         [ #  # ]:          0 :                                     pDoc->GetValue( nStartCol+1, nStartRow, nStartTab, fInputEndVal);
     680                 :          0 :                                     fIncVal=fInputEndVal-fStartVal;
     681                 :            :                                 }
     682                 :            :                             }
     683                 :            :                         }
     684         [ #  # ]:          0 :                         if(eFillCmd==FILL_DATE)
     685                 :            :                         {
     686 [ #  # ][ #  # ]:          0 :                             Date aNullDate = *pDoc->GetFormatTable()->GetNullDate();
     687                 :          0 :                             Date aStartDate = aNullDate;
     688         [ #  # ]:          0 :                             aStartDate+= (long)fStartVal;
     689                 :          0 :                             Date aEndDate = aNullDate;
     690         [ #  # ]:          0 :                             aEndDate+= (long)fInputEndVal;
     691                 :          0 :                             double fTempDate=0;
     692                 :            : 
     693         [ #  # ]:          0 :                             if(aStartDate.GetYear()!=aEndDate.GetYear())
     694                 :            :                             {
     695                 :          0 :                                 eFillDateCmd = FILL_YEAR;
     696                 :          0 :                                 fTempDate=aEndDate.GetYear()-aStartDate.GetYear();
     697                 :            :                             }
     698         [ #  # ]:          0 :                             if(aStartDate.GetMonth()!=aEndDate.GetMonth())
     699                 :            :                             {
     700                 :          0 :                                 eFillDateCmd = FILL_MONTH;
     701                 :          0 :                                 fTempDate=fTempDate*12+aEndDate.GetMonth()-aStartDate.GetMonth();
     702                 :            :                             }
     703         [ #  # ]:          0 :                             if(aStartDate.GetDay()==aEndDate.GetDay())
     704                 :            :                             {
     705                 :          0 :                                 fIncVal=fTempDate;
     706                 :            :                             }
     707         [ #  # ]:          0 :                         }
     708                 :            :                     }
     709         [ #  # ]:          0 :                     ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
     710                 :            :                     OSL_ENSURE(pFact, "ScAbstractFactory create fail!");
     711                 :            : 
     712                 :            :                     AbstractScFillSeriesDlg* pDlg = pFact->CreateScFillSeriesDlg( pTabViewShell->GetDialogParent(),
     713                 :            :                                                             *pDoc,
     714                 :            :                                                             eFillDir, eFillCmd, eFillDateCmd,
     715                 :            :                                                             aStartStr, fIncVal, fMaxVal,
     716                 :            :                                                             nPossDir,
     717 [ #  # ][ #  # ]:          0 :                                                             RID_SCDLG_FILLSERIES);
         [ #  # ][ #  # ]
     718                 :            :                     OSL_ENSURE(pDlg, "Dialog create fail!");
     719                 :            : 
     720 [ #  # ][ #  # ]:          0 :                     if ( nStartCol != nEndCol && nStartRow != nEndRow )
     721                 :            :                     {
     722         [ #  # ]:          0 :                         pDlg->SetEdStartValEnabled(false);
     723                 :            :                     }
     724                 :            : 
     725 [ #  # ][ #  # ]:          0 :                     if ( pDlg->Execute() == RET_OK )
     726                 :            :                     {
     727         [ #  # ]:          0 :                         eFillDir        = pDlg->GetFillDir();
     728         [ #  # ]:          0 :                         eFillCmd        = pDlg->GetFillCmd();
     729         [ #  # ]:          0 :                         eFillDateCmd    = pDlg->GetFillDateCmd();
     730                 :            : 
     731         [ #  # ]:          0 :                         if(eFillCmd==FILL_AUTO)
     732                 :            :                         {
     733         [ #  # ]:          0 :                             String aStr=pDlg->GetStartStr();
     734         [ #  # ]:          0 :                             if(aStr.Len()>0)
     735 [ #  # ][ #  # ]:          0 :                                 pTabViewShell->EnterData( nStartCol, nStartRow, nStartTab, aStr );
     736                 :            :                         }
     737         [ #  # ]:          0 :                         fStartVal       = pDlg->GetStart();
     738         [ #  # ]:          0 :                         fIncVal         = pDlg->GetStep();
     739         [ #  # ]:          0 :                         fMaxVal         = pDlg->GetMax();
     740                 :          0 :                         bDoIt           = sal_True;
     741                 :            :                     }
     742 [ #  # ][ #  # ]:          0 :                     delete pDlg;
                 [ #  # ]
     743                 :            :                 }
     744                 :            : 
     745         [ #  # ]:          0 :                 if( bDoIt )
     746                 :            :                 {
     747                 :            :                     //nScFillModeMouseModifier = 0; // no Ctrl/Copy
     748         [ #  # ]:          0 :                     pTabViewShell->FillSeries( eFillDir, eFillCmd, eFillDateCmd, fStartVal, fIncVal, fMaxVal );
     749                 :            : 
     750 [ #  # ][ #  # ]:          0 :                     if( ! rReq.IsAPI() )
     751                 :            :                     {
     752         [ #  # ]:          0 :                         String  aPara;
     753                 :          0 :                         Color*  pColor=0;
     754                 :            : 
     755   [ #  #  #  #  :          0 :                         switch( eFillDir )
                      # ]
     756                 :            :                         {
     757         [ #  # ]:          0 :                             case FILL_TO_BOTTOM:    aPara = 'B'; break;
     758         [ #  # ]:          0 :                             case FILL_TO_RIGHT:     aPara = 'R'; break;
     759         [ #  # ]:          0 :                             case FILL_TO_TOP:       aPara = 'T'; break;
     760         [ #  # ]:          0 :                             case FILL_TO_LEFT:      aPara = 'L'; break;
     761         [ #  # ]:          0 :                             default: aPara.Erase(); break;
     762                 :            :                         }
     763 [ #  # ][ #  # ]:          0 :                         rReq.AppendItem( SfxStringItem( FID_FILL_SERIES, aPara ) );
                 [ #  # ]
     764                 :            : 
     765   [ #  #  #  #  :          0 :                         switch( eFillCmd )
                   #  # ]
     766                 :            :                         {
     767         [ #  # ]:          0 :                             case FILL_SIMPLE:       aPara = 'S'; break;
     768         [ #  # ]:          0 :                             case FILL_LINEAR:       aPara = 'L'; break;
     769         [ #  # ]:          0 :                             case FILL_GROWTH:       aPara = 'G'; break;
     770         [ #  # ]:          0 :                             case FILL_DATE:         aPara = 'D'; break;
     771         [ #  # ]:          0 :                             case FILL_AUTO:         aPara = 'A'; break;
     772         [ #  # ]:          0 :                             default: aPara.Erase(); break;
     773                 :            :                         }
     774 [ #  # ][ #  # ]:          0 :                         rReq.AppendItem( SfxStringItem( FN_PARAM_1, aPara ) );
                 [ #  # ]
     775                 :            : 
     776   [ #  #  #  #  :          0 :                         switch( eFillDateCmd )
                      # ]
     777                 :            :                         {
     778         [ #  # ]:          0 :                             case FILL_DAY:          aPara = 'D'; break;
     779         [ #  # ]:          0 :                             case FILL_WEEKDAY:      aPara = 'W'; break;
     780         [ #  # ]:          0 :                             case FILL_MONTH:        aPara = 'M'; break;
     781         [ #  # ]:          0 :                             case FILL_YEAR:         aPara = 'Y'; break;
     782         [ #  # ]:          0 :                             default: aPara.Erase(); break;
     783                 :            :                         }
     784 [ #  # ][ #  # ]:          0 :                         rReq.AppendItem( SfxStringItem( FN_PARAM_2, aPara ) );
                 [ #  # ]
     785                 :            : 
     786                 :            :                         sal_uLong nFormatKey = pFormatter->GetStandardFormat(NUMBERFORMAT_NUMBER,
     787         [ #  # ]:          0 :                                     ScGlobal::eLnge );
     788                 :            : 
     789         [ #  # ]:          0 :                         pFormatter->GetOutputString( fIncVal, nFormatKey, aPara, &pColor );
     790 [ #  # ][ #  # ]:          0 :                         rReq.AppendItem( SfxStringItem( FN_PARAM_3, aPara ) );
                 [ #  # ]
     791                 :            : 
     792         [ #  # ]:          0 :                         pFormatter->GetOutputString( fStartVal, nFormatKey, aPara, &pColor );
     793 [ #  # ][ #  # ]:          0 :                         rReq.AppendItem( SfxStringItem( FN_PARAM_4, aPara ) );
                 [ #  # ]
     794                 :            : 
     795         [ #  # ]:          0 :                         pFormatter->GetOutputString( fMaxVal, nFormatKey, aPara, &pColor );
     796 [ #  # ][ #  # ]:          0 :                         rReq.AppendItem( SfxStringItem( FN_PARAM_5, aPara ) );
                 [ #  # ]
     797                 :            : 
     798 [ #  # ][ #  # ]:          0 :                         rReq.Done();
     799                 :            :                     }
     800                 :            :                 }
     801                 :            :             }
     802                 :          0 :             break;
     803                 :            : 
     804                 :            :         case FID_FILL_AUTO:
     805                 :            :             {
     806                 :            :                 SCCOL nStartCol;
     807                 :            :                 SCROW nStartRow;
     808                 :            :                 SCCOL nEndCol;
     809                 :            :                 SCROW nEndRow;
     810                 :            :                 SCTAB nStartTab, nEndTab;
     811                 :            : 
     812         [ #  # ]:          0 :                 GetViewData()->GetFillData( nStartCol, nStartRow, nEndCol, nEndRow );
     813                 :          0 :                 SCCOL nFillCol = GetViewData()->GetRefEndX();
     814                 :          0 :                 SCROW nFillRow = GetViewData()->GetRefEndY();
     815         [ #  # ]:          0 :                 ScDocument* pDoc = GetViewData()->GetDocument();
     816                 :            : 
     817         [ #  # ]:          0 :                 if( pReqArgs != NULL )
     818                 :            :                 {
     819                 :            :                     const SfxPoolItem* pItem;
     820                 :            : 
     821 [ #  # ][ #  # ]:          0 :                     if( pReqArgs->HasItem( FID_FILL_AUTO, &pItem ) )
     822                 :            :                     {
     823                 :          0 :                         ScAddress aScAddress;
     824         [ #  # ]:          0 :                         String aArg = ((const SfxStringItem*)pItem)->GetValue();
     825                 :            : 
     826 [ #  # ][ #  # ]:          0 :                         if( aScAddress.Parse( aArg, pDoc, pDoc->GetAddressConvention() ) & SCA_VALID )
                 [ #  # ]
     827                 :            :                         {
     828                 :          0 :                             nFillRow = aScAddress.Row();
     829                 :          0 :                             nFillCol = aScAddress.Col();
     830         [ #  # ]:          0 :                         }
     831                 :            :                     }
     832                 :            : 
     833                 :            :                     GetViewData()->GetSimpleArea( nStartCol,nStartRow,nStartTab,
     834         [ #  # ]:          0 :                                               nEndCol,nEndRow,nEndTab );
     835                 :            :                 }
     836                 :            :                 else    // call via mouse
     837                 :            :                 {
     838                 :            :                     //  not in a merged cell
     839                 :            : 
     840 [ #  # ][ #  # ]:          0 :                     if ( nStartCol == nEndCol && nStartRow == nEndRow )
     841                 :            :                     {
     842                 :          0 :                         SCCOL nMergeCol = nStartCol;
     843                 :          0 :                         SCROW nMergeRow = nStartRow;
     844 [ #  # ][ #  # ]:          0 :                         if ( GetViewData()->GetDocument()->ExtendMerge(
     845                 :            :                                 nStartCol, nStartRow, nMergeCol, nMergeRow,
     846         [ #  # ]:          0 :                                 GetViewData()->GetTabNo() ) )
     847                 :            :                         {
     848 [ #  # ][ #  # ]:          0 :                             if ( nFillCol >= nStartCol && nFillCol <= nMergeCol && nFillRow == nStartRow )
                 [ #  # ]
     849                 :          0 :                                 nFillCol = nStartCol;
     850 [ #  # ][ #  # ]:          0 :                             if ( nFillRow >= nStartRow && nFillRow <= nMergeRow && nFillCol == nStartCol )
                 [ #  # ]
     851                 :          0 :                                 nFillRow = nStartRow;
     852                 :            :                         }
     853                 :            :                     }
     854                 :            :                 }
     855                 :            : 
     856 [ #  # ][ #  # ]:          0 :                 if ( nFillCol != nEndCol || nFillRow != nEndRow )
     857                 :            :                 {
     858 [ #  # ][ #  # ]:          0 :                     if ( nFillCol==nEndCol || nFillRow==nEndRow )
     859                 :            :                     {
     860                 :          0 :                         FillDir eDir = FILL_TO_BOTTOM;
     861                 :          0 :                         SCCOLROW nCount = 0;
     862                 :            : 
     863         [ #  # ]:          0 :                         if ( nFillCol==nEndCol )
     864                 :            :                         {
     865         [ #  # ]:          0 :                             if ( nFillRow > nEndRow )
     866                 :            :                             {
     867                 :          0 :                                 eDir = FILL_TO_BOTTOM;
     868                 :          0 :                                 nCount = nFillRow - nEndRow;
     869                 :            :                             }
     870         [ #  # ]:          0 :                             else if ( nFillRow < nStartRow )
     871                 :            :                             {
     872                 :          0 :                                 eDir = FILL_TO_TOP;
     873                 :          0 :                                 nCount = nStartRow - nFillRow;
     874                 :            :                             }
     875                 :            :                         }
     876                 :            :                         else
     877                 :            :                         {
     878         [ #  # ]:          0 :                             if ( nFillCol > nEndCol )
     879                 :            :                             {
     880                 :          0 :                                 eDir = FILL_TO_RIGHT;
     881                 :          0 :                                 nCount = nFillCol - nEndCol;
     882                 :            :                             }
     883         [ #  # ]:          0 :                             else if ( nFillCol < nStartCol )
     884                 :            :                             {
     885                 :          0 :                                 eDir = FILL_TO_LEFT;
     886                 :          0 :                                 nCount = nStartCol - nFillCol;
     887                 :            :                             }
     888                 :            :                         }
     889                 :            : 
     890         [ #  # ]:          0 :                         if ( nCount != 0)
     891                 :            :                         {
     892         [ #  # ]:          0 :                             pTabViewShell->FillAuto( eDir, nStartCol, nStartRow, nEndCol, nEndRow, nCount );
     893                 :            : 
     894 [ #  # ][ #  # ]:          0 :                             if( ! rReq.IsAPI() )
     895                 :            :                             {
     896         [ #  # ]:          0 :                                 String  aAdrStr;
     897                 :          0 :                                 ScAddress aAdr( nFillCol, nFillRow, 0 );
     898 [ #  # ][ #  # ]:          0 :                                 aAdr.Format( aAdrStr, SCR_ABS, pDoc, pDoc->GetAddressConvention() );
     899                 :            : 
     900 [ #  # ][ #  # ]:          0 :                                 rReq.AppendItem( SfxStringItem( FID_FILL_AUTO, aAdrStr ) );
                 [ #  # ]
     901 [ #  # ][ #  # ]:          0 :                                 rReq.Done();
     902                 :            :                             }
     903                 :            :                         }
     904                 :            : 
     905                 :            :                     }
     906                 :            :                     else
     907                 :            :                     {
     908                 :            :                         OSL_FAIL( "Direction not unique for autofill" );
     909                 :            :                     }
     910                 :            :                 }
     911                 :            :             }
     912                 :          0 :             break;
     913                 :            : 
     914                 :            :         //
     915                 :            :         //  disposal (Outlines)
     916                 :            :         //  SID_AUTO_OUTLINE, SID_OUTLINE_DELETEALL in Execute (in docsh.idl)
     917                 :            :         //
     918                 :            : 
     919                 :            :         case SID_OUTLINE_HIDE:
     920         [ #  # ]:          0 :             if ( GetViewData()->GetDocument()->GetDPAtCursor( GetViewData()->GetCurX(),
     921                 :          0 :                                     GetViewData()->GetCurY(), GetViewData()->GetTabNo() ) )
     922                 :          0 :                 pTabViewShell->SetDataPilotDetails( false );
     923                 :            :             else
     924                 :          0 :                 pTabViewShell->HideMarkedOutlines();
     925                 :          0 :             rReq.Done();
     926                 :          0 :             break;
     927                 :            : 
     928                 :            :         case SID_OUTLINE_SHOW:
     929                 :            :             {
     930                 :          0 :                 ScDPObject* pDPObj = GetViewData()->GetDocument()->GetDPAtCursor( GetViewData()->GetCurX(),
     931                 :          0 :                                     GetViewData()->GetCurY(), GetViewData()->GetTabNo() );
     932         [ #  # ]:          0 :                 if ( pDPObj )
     933                 :            :                 {
     934         [ #  # ]:          0 :                     Sequence<sheet::DataPilotFieldFilter> aFilters;
     935                 :            :                     sal_uInt16 nOrientation;
     936 [ #  # ][ #  # ]:          0 :                     if ( pTabViewShell->HasSelectionForDrillDown( nOrientation ) )
     937                 :            :                     {
     938         [ #  # ]:          0 :                         ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
     939                 :            :                         OSL_ENSURE(pFact, "ScAbstractFactory create fail!");
     940                 :            : 
     941                 :            :                         AbstractScDPShowDetailDlg* pDlg = pFact->CreateScDPShowDetailDlg(
     942 [ #  # ][ #  # ]:          0 :                             pTabViewShell->GetDialogParent(), RID_SCDLG_DPSHOWDETAIL, *pDPObj, nOrientation );
     943                 :            :                         OSL_ENSURE(pDlg, "Dialog create fail!");
     944 [ #  # ][ #  # ]:          0 :                         if ( pDlg->Execute() == RET_OK )
     945                 :            :                         {
     946 [ #  # ][ #  # ]:          0 :                             rtl::OUString aNewDimName( pDlg->GetDimensionName() );
                 [ #  # ]
     947         [ #  # ]:          0 :                             pTabViewShell->SetDataPilotDetails( true, &aNewDimName );
     948                 :            :                         }
     949                 :            :                     }
     950 [ #  # ][ #  # ]:          0 :                     else if ( !pDPObj->IsServiceData() &&
                 [ #  # ]
     951                 :            :                                pDPObj->GetDataFieldPositionData(
     952                 :          0 :                                    ScAddress( GetViewData()->GetCurX(), GetViewData()->GetCurY(), GetViewData()->GetTabNo() ),
     953 [ #  # ][ #  # ]:          0 :                                    aFilters ) )
                 [ #  # ]
     954         [ #  # ]:          0 :                         pTabViewShell->ShowDataPilotSourceData( *pDPObj, aFilters );
     955                 :            :                     else
     956 [ #  # ][ #  # ]:          0 :                         pTabViewShell->SetDataPilotDetails(true);
     957                 :            :                 }
     958                 :            :                 else
     959                 :          0 :                     pTabViewShell->ShowMarkedOutlines();
     960                 :          0 :                 rReq.Done();
     961                 :            :             }
     962                 :          0 :             break;
     963                 :            : 
     964                 :            :         case SID_OUTLINE_MAKE:
     965                 :            :             {
     966                 :          0 :                 sal_Bool bColumns = false;
     967                 :          0 :                 sal_Bool bOk = sal_True;
     968                 :            : 
     969         [ #  # ]:          0 :                 if ( GetViewData()->GetDocument()->GetDPAtCursor( GetViewData()->GetCurX(),
     970                 :          0 :                                         GetViewData()->GetCurY(), GetViewData()->GetTabNo() ) )
     971                 :            :                 {
     972         [ #  # ]:          0 :                     ScDPNumGroupInfo aNumInfo;
     973                 :          0 :                     aNumInfo.mbEnable    = true;
     974                 :          0 :                     aNumInfo.mbAutoStart = true;
     975                 :          0 :                     aNumInfo.mbAutoEnd   = true;
     976                 :          0 :                     sal_Int32 nParts = 0;
     977 [ #  # ][ #  # ]:          0 :                     if ( pTabViewShell->HasSelectionForDateGroup( aNumInfo, nParts ) )
     978                 :            :                     {
     979         [ #  # ]:          0 :                         ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
     980                 :            :                         OSL_ENSURE( pFact, "ScAbstractFactory create fail!" );
     981 [ #  # ][ #  # ]:          0 :                         Date aNullDate( *GetViewData()->GetDocument()->GetFormatTable()->GetNullDate() );
                 [ #  # ]
     982                 :            :                         AbstractScDPDateGroupDlg* pDlg = pFact->CreateScDPDateGroupDlg(
     983                 :            :                             pTabViewShell->GetDialogParent(), RID_SCDLG_DPDATEGROUP,
     984 [ #  # ][ #  # ]:          0 :                             aNumInfo, nParts, aNullDate );
     985                 :            :                         OSL_ENSURE( pDlg, "Dialog create fail!" );
     986 [ #  # ][ #  # ]:          0 :                         if( pDlg->Execute() == RET_OK )
     987                 :            :                         {
     988         [ #  # ]:          0 :                             aNumInfo = pDlg->GetGroupInfo();
     989 [ #  # ][ #  # ]:          0 :                             pTabViewShell->DateGroupDataPilot( aNumInfo, pDlg->GetDatePart() );
     990                 :            :                         }
     991                 :            :                     }
     992 [ #  # ][ #  # ]:          0 :                     else if ( pTabViewShell->HasSelectionForNumGroup( aNumInfo ) )
     993                 :            :                     {
     994         [ #  # ]:          0 :                         ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
     995                 :            :                         OSL_ENSURE( pFact, "ScAbstractFactory create fail!" );
     996                 :            :                         AbstractScDPNumGroupDlg* pDlg = pFact->CreateScDPNumGroupDlg(
     997 [ #  # ][ #  # ]:          0 :                             pTabViewShell->GetDialogParent(), RID_SCDLG_DPNUMGROUP, aNumInfo );
     998                 :            :                         OSL_ENSURE( pDlg, "Dialog create fail!" );
     999 [ #  # ][ #  # ]:          0 :                         if( pDlg->Execute() == RET_OK )
    1000 [ #  # ][ #  # ]:          0 :                             pTabViewShell->NumGroupDataPilot( pDlg->GetGroupInfo() );
    1001                 :            :                     }
    1002                 :            :                     else
    1003         [ #  # ]:          0 :                         pTabViewShell->GroupDataPilot();
    1004                 :            : 
    1005                 :          0 :                     bOk = false;
    1006                 :            :                 }
    1007         [ #  # ]:          0 :                 else if( pReqArgs != NULL )
    1008                 :            :                 {
    1009                 :            :                     const SfxPoolItem* pItem;
    1010                 :          0 :                     bOk = false;
    1011                 :            : 
    1012 [ #  # ][ #  # ]:          0 :                     if( pReqArgs->HasItem( SID_OUTLINE_MAKE, &pItem ) )
    1013                 :            :                     {
    1014         [ #  # ]:          0 :                         String aCol = ((const SfxStringItem*)pItem)->GetValue();
    1015         [ #  # ]:          0 :                         aCol.ToUpperAscii();
    1016                 :            : 
    1017      [ #  #  # ]:          0 :                         switch( aCol.GetChar(0) )
    1018                 :            :                         {
    1019                 :          0 :                             case 'R': bColumns=false; bOk = sal_True;break;
    1020                 :          0 :                             case 'C': bColumns=sal_True; bOk = sal_True;break;
    1021         [ #  # ]:          0 :                         }
    1022                 :            :                     }
    1023                 :            :                 }
    1024                 :            :                 else            // Dialog, when not whole rows/columns are marked
    1025                 :            :                 {
    1026 [ #  # ][ #  # ]:          0 :                     if ( GetViewData()->SimpleColMarked() && !GetViewData()->SimpleRowMarked() )
                 [ #  # ]
    1027                 :          0 :                         bColumns = sal_True;
    1028 [ #  # ][ #  # ]:          0 :                     else if ( !GetViewData()->SimpleColMarked() && GetViewData()->SimpleRowMarked() )
                 [ #  # ]
    1029                 :          0 :                         bColumns = false;
    1030                 :            :                     else
    1031                 :            :                     {
    1032                 :          0 :                         ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
    1033                 :            :                         OSL_ENSURE(pFact, "ScAbstractFactory create fail!");
    1034                 :            : 
    1035                 :          0 :                         AbstractScGroupDlg* pDlg = pFact->CreateAbstractScGroupDlg( pTabViewShell->GetDialogParent(), RID_SCDLG_GRP_MAKE, RID_SCDLG_GRP_MAKE,false);
    1036                 :            :                         OSL_ENSURE(pDlg, "Dialog create fail!");
    1037         [ #  # ]:          0 :                         if ( pDlg->Execute() == RET_OK )
    1038                 :          0 :                             bColumns = pDlg->GetColsChecked();
    1039                 :            :                         else
    1040                 :          0 :                             bOk = false;
    1041         [ #  # ]:          0 :                         delete pDlg;
    1042                 :            :                     }
    1043                 :            :                 }
    1044         [ #  # ]:          0 :                 if (bOk)
    1045                 :            :                 {
    1046                 :          0 :                     pTabViewShell->MakeOutline( bColumns );
    1047                 :            : 
    1048         [ #  # ]:          0 :                     if( ! rReq.IsAPI() )
    1049                 :            :                     {
    1050         [ #  # ]:          0 :                         rtl::OUString aCol = bColumns ? rtl::OUString('C') : rtl::OUString('R');
    1051 [ #  # ][ #  # ]:          0 :                         rReq.AppendItem( SfxStringItem( SID_OUTLINE_MAKE, aCol ) );
         [ #  # ][ #  # ]
                 [ #  # ]
    1052         [ #  # ]:          0 :                         rReq.Done();
    1053                 :            :                     }
    1054                 :            :                 }
    1055                 :            :             }
    1056                 :          0 :             break;
    1057                 :            : 
    1058                 :            :         case SID_OUTLINE_REMOVE:
    1059                 :            :             {
    1060                 :          0 :                 sal_Bool bColumns = false;
    1061                 :          0 :                 sal_Bool bOk = sal_True;
    1062                 :            : 
    1063         [ #  # ]:          0 :                 if ( GetViewData()->GetDocument()->GetDPAtCursor( GetViewData()->GetCurX(),
    1064                 :          0 :                                         GetViewData()->GetCurY(), GetViewData()->GetTabNo() ) )
    1065                 :            :                 {
    1066                 :          0 :                     pTabViewShell->UngroupDataPilot();
    1067                 :          0 :                     bOk = false;
    1068                 :            :                 }
    1069         [ #  # ]:          0 :                 else if( pReqArgs != NULL )
    1070                 :            :                 {
    1071                 :            :                     const SfxPoolItem* pItem;
    1072                 :          0 :                     bOk = false;
    1073                 :            : 
    1074 [ #  # ][ #  # ]:          0 :                     if( pReqArgs->HasItem( SID_OUTLINE_REMOVE, &pItem ) )
    1075                 :            :                     {
    1076         [ #  # ]:          0 :                         String aCol = ((const SfxStringItem*)pItem)->GetValue();
    1077         [ #  # ]:          0 :                         aCol.ToUpperAscii();
    1078                 :            : 
    1079      [ #  #  # ]:          0 :                         switch( aCol.GetChar(0) )
    1080                 :            :                         {
    1081                 :          0 :                             case 'R': bColumns=false; bOk = sal_True;break;
    1082                 :          0 :                             case 'C': bColumns=sal_True; bOk = sal_True;break;
    1083         [ #  # ]:          0 :                         }
    1084                 :            :                     }
    1085                 :            :                 }
    1086                 :            :                 else            // Dialog only when removal for rows and columns is possible
    1087                 :            :                 {
    1088                 :            :                     sal_Bool bColPoss, bRowPoss;
    1089         [ #  # ]:          0 :                     pTabViewShell->TestRemoveOutline( bColPoss, bRowPoss );
    1090 [ #  # ][ #  # ]:          0 :                     if ( bColPoss && bRowPoss )
    1091                 :            :                     {
    1092         [ #  # ]:          0 :                         ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
    1093                 :            :                         OSL_ENSURE(pFact, "ScAbstractFactory create fail!");
    1094                 :            : 
    1095 [ #  # ][ #  # ]:          0 :                         AbstractScGroupDlg* pDlg = pFact->CreateAbstractScGroupDlg( pTabViewShell->GetDialogParent(), RID_SCDLG_GRP_KILL, RID_SCDLG_GRP_KILL,true);
    1096                 :            :                         OSL_ENSURE(pDlg, "Dialog create fail!");
    1097 [ #  # ][ #  # ]:          0 :                         if ( pDlg->Execute() == RET_OK )
    1098         [ #  # ]:          0 :                             bColumns = pDlg->GetColsChecked();
    1099                 :            :                         else
    1100                 :          0 :                             bOk = false;
    1101 [ #  # ][ #  # ]:          0 :                         delete pDlg;
    1102                 :            :                     }
    1103         [ #  # ]:          0 :                     else if ( bColPoss )
    1104                 :          0 :                         bColumns = sal_True;
    1105         [ #  # ]:          0 :                     else if ( bRowPoss )
    1106                 :          0 :                         bColumns = false;
    1107                 :            :                     else
    1108                 :          0 :                         bOk = false;
    1109                 :            :                 }
    1110         [ #  # ]:          0 :                 if (bOk)
    1111                 :            :                 {
    1112                 :          0 :                     pTabViewShell->RemoveOutline( bColumns );
    1113                 :            : 
    1114         [ #  # ]:          0 :                     if( ! rReq.IsAPI() )
    1115                 :            :                     {
    1116         [ #  # ]:          0 :                         rtl::OUString aCol = bColumns ? rtl::OUString('C') : rtl::OUString('R');
    1117 [ #  # ][ #  # ]:          0 :                         rReq.AppendItem( SfxStringItem( SID_OUTLINE_REMOVE, aCol ) );
         [ #  # ][ #  # ]
                 [ #  # ]
    1118         [ #  # ]:          0 :                         rReq.Done();
    1119                 :            :                     }
    1120                 :            :                 }
    1121                 :            :             }
    1122                 :          0 :             break;
    1123                 :            : 
    1124                 :            :         //
    1125                 :            :         //  Clipboard
    1126                 :            :         //
    1127                 :            : 
    1128                 :            : 
    1129                 :            :         case SID_COPY:              // for graphs in DrawShell
    1130                 :            :             {
    1131 [ #  # ][ #  # ]:          0 :                 WaitObject aWait( GetViewData()->GetDialogParent() );
    1132         [ #  # ]:          0 :                 pTabViewShell->CopyToClip( NULL, false, false, true );
    1133         [ #  # ]:          0 :                 rReq.Done();
    1134                 :          0 :                 GetViewData()->SetPasteMode( (ScPasteFlags) (SC_PASTE_MODE | SC_PASTE_BORDER) );
    1135         [ #  # ]:          0 :                 pTabViewShell->ShowCursor();
    1136 [ #  # ][ #  # ]:          0 :                 pTabViewShell->UpdateCopySourceOverlay();
    1137                 :            :             }
    1138                 :          0 :             break;
    1139                 :            : 
    1140                 :            :         case SID_CUT:               // for graphs in DrawShell
    1141                 :            :             {
    1142 [ #  # ][ #  # ]:          0 :                 WaitObject aWait( GetViewData()->GetDialogParent() );
    1143         [ #  # ]:          0 :                 pTabViewShell->CutToClip( NULL, true );
    1144         [ #  # ]:          0 :                 rReq.Done();
    1145                 :          0 :                 GetViewData()->SetPasteMode( (ScPasteFlags)(SC_PASTE_MODE | SC_PASTE_BORDER));
    1146         [ #  # ]:          0 :                 pTabViewShell->ShowCursor();
    1147 [ #  # ][ #  # ]:          0 :                 pTabViewShell->UpdateCopySourceOverlay();
    1148                 :            :             }
    1149                 :          0 :             break;
    1150                 :            : 
    1151                 :            :         case SID_PASTE:
    1152                 :            :             {
    1153                 :          0 :                 ScClipUtil::PasteFromClipboard ( GetViewData(), pTabViewShell, true );
    1154                 :          0 :                 rReq.Done();
    1155                 :            :             }
    1156                 :          0 :             break;
    1157                 :            : 
    1158                 :            :         case SID_CLIPBOARD_FORMAT_ITEMS:
    1159                 :            :             {
    1160 [ #  # ][ #  # ]:          0 :                 WaitObject aWait( GetViewData()->GetDialogParent() );
    1161                 :            : 
    1162                 :          0 :                 sal_uLong nFormat = 0;
    1163                 :            :                 const SfxPoolItem* pItem;
    1164 [ #  # ][ #  # ]:          0 :                 if ( pReqArgs &&
         [ #  # ][ #  # ]
    1165         [ #  # ]:          0 :                      pReqArgs->GetItemState(nSlot, sal_True, &pItem) == SFX_ITEM_SET &&
    1166 [ #  # ][ #  # ]:          0 :                      pItem->ISA(SfxUInt32Item) )
    1167                 :            :                 {
    1168                 :          0 :                     nFormat = ((const SfxUInt32Item*)pItem)->GetValue();
    1169                 :            :                 }
    1170                 :            : 
    1171         [ #  # ]:          0 :                 if ( nFormat )
    1172                 :            :                 {
    1173         [ #  # ]:          0 :                     Window* pWin = GetViewData()->GetActiveWin();
    1174         [ #  # ]:          0 :                     sal_Bool bCells = ( ScTransferObj::GetOwnClipboard( pWin ) != NULL );
    1175         [ #  # ]:          0 :                     sal_Bool bDraw = ( ScDrawTransferObj::GetOwnClipboard( pWin ) != NULL );
    1176                 :          0 :                     sal_Bool bOle = ( nFormat == SOT_FORMATSTR_ID_EMBED_SOURCE );
    1177                 :            : 
    1178 [ #  # ][ #  # ]:          0 :                     if ( bCells && bOle )
    1179         [ #  # ]:          0 :                         pTabViewShell->PasteFromSystem();
    1180 [ #  # ][ #  # ]:          0 :                     else if ( bDraw && bOle )
    1181         [ #  # ]:          0 :                         pTabViewShell->PasteDraw();
    1182                 :            :                     else
    1183         [ #  # ]:          0 :                         pTabViewShell->PasteFromSystem(nFormat);
    1184                 :            :                 }
    1185                 :            :                 //?else
    1186                 :            :                 //? pTabViewShell->PasteFromSystem();
    1187                 :            : 
    1188 [ #  # ][ #  # ]:          0 :                 rReq.Done();
    1189                 :            :             }
    1190                 :          0 :             pTabViewShell->CellContentChanged();
    1191                 :          0 :             break;
    1192                 :            : 
    1193                 :            :         case FID_INS_CELL_CONTENTS:
    1194                 :            :             {
    1195                 :          0 :                 sal_uInt16 nFlags = IDF_NONE;
    1196                 :          0 :                 sal_uInt16 nFunction = PASTE_NOFUNC;
    1197                 :          0 :                 sal_Bool bSkipEmpty = false;
    1198                 :          0 :                 sal_Bool bTranspose = false;
    1199                 :          0 :                 sal_Bool bAsLink    = false;
    1200                 :          0 :                 InsCellCmd eMoveMode = INS_NONE;
    1201                 :            : 
    1202                 :          0 :                 Window* pWin = GetViewData()->GetActiveWin();
    1203                 :          0 :                 ScDocument* pDoc = GetViewData()->GetDocument();
    1204                 :          0 :                 sal_Bool bOtherDoc = !pDoc->IsClipboardSource();
    1205                 :          0 :                 ScTransferObj* pOwnClip = ScTransferObj::GetOwnClipboard( pWin );
    1206         [ #  # ]:          0 :                 if ( pOwnClip )
    1207                 :            :                 {
    1208                 :            :                     // keep a reference in case the clipboard is changed during dialog or PasteFromClip
    1209 [ #  # ][ #  # ]:          0 :                     uno::Reference<datatransfer::XTransferable> aOwnClipRef( pOwnClip );
    1210 [ #  # ][ #  # ]:          0 :                     if ( pReqArgs!=NULL && pTabViewShell->SelectionEditable() )
         [ #  # ][ #  # ]
    1211                 :            :                     {
    1212                 :            :                         const   SfxPoolItem* pItem;
    1213         [ #  # ]:          0 :                         String  aFlags = rtl::OUString('A');
    1214                 :            : 
    1215 [ #  # ][ #  # ]:          0 :                         if( pReqArgs->HasItem( FID_INS_CELL_CONTENTS, &pItem ) )
    1216         [ #  # ]:          0 :                             aFlags = ((const SfxStringItem*)pItem)->GetValue();
    1217                 :            : 
    1218         [ #  # ]:          0 :                         aFlags.ToUpperAscii();
    1219                 :          0 :                         sal_Bool    bCont = sal_True;
    1220                 :            : 
    1221 [ #  # ][ #  # ]:          0 :                         for( xub_StrLen i=0 ; bCont && i<aFlags.Len() ; i++ )
                 [ #  # ]
    1222                 :            :                         {
    1223   [ #  #  #  #  :          0 :                             switch( aFlags.GetChar(i) )
             #  #  #  # ]
    1224                 :            :                             {
    1225                 :            :                                 case 'A': // all
    1226                 :          0 :                                 nFlags |= IDF_ALL;
    1227                 :          0 :                                 bCont = false; // don't continue!
    1228                 :          0 :                                 break;
    1229                 :          0 :                                 case 'S': nFlags |= IDF_STRING; break;
    1230                 :          0 :                                 case 'V': nFlags |= IDF_VALUE; break;
    1231                 :          0 :                                 case 'D': nFlags |= IDF_DATETIME; break;
    1232                 :          0 :                                 case 'F': nFlags |= IDF_FORMULA; break;
    1233                 :          0 :                                 case 'N': nFlags |= IDF_NOTE; break;
    1234                 :          0 :                                 case 'T': nFlags |= IDF_ATTRIB; break;
    1235                 :            :                             }
    1236                 :            :                         }
    1237                 :            : 
    1238 [ #  # ][ #  # ]:          0 :                         SFX_REQUEST_ARG( rReq, pFuncItem, SfxUInt16Item, FN_PARAM_1, false );
    1239 [ #  # ][ #  # ]:          0 :                         SFX_REQUEST_ARG( rReq, pSkipItem, SfxBoolItem, FN_PARAM_2, false );
    1240 [ #  # ][ #  # ]:          0 :                         SFX_REQUEST_ARG( rReq, pTransposeItem, SfxBoolItem, FN_PARAM_3, false );
    1241 [ #  # ][ #  # ]:          0 :                         SFX_REQUEST_ARG( rReq, pLinkItem, SfxBoolItem, FN_PARAM_4, false );
    1242 [ #  # ][ #  # ]:          0 :                         SFX_REQUEST_ARG( rReq, pMoveItem, SfxInt16Item, FN_PARAM_5, false );
    1243         [ #  # ]:          0 :                         if ( pFuncItem )
    1244                 :          0 :                             nFunction = pFuncItem->GetValue();
    1245         [ #  # ]:          0 :                         if ( pSkipItem )
    1246                 :          0 :                             bSkipEmpty = pSkipItem->GetValue();
    1247         [ #  # ]:          0 :                         if ( pTransposeItem )
    1248                 :          0 :                             bTranspose = pTransposeItem->GetValue();
    1249         [ #  # ]:          0 :                         if ( pLinkItem )
    1250                 :          0 :                             bAsLink = pLinkItem->GetValue();
    1251         [ #  # ]:          0 :                         if ( pMoveItem )
    1252         [ #  # ]:          0 :                             eMoveMode = (InsCellCmd) pMoveItem->GetValue();
    1253                 :            :                     }
    1254                 :            :                     else
    1255                 :            :                     {
    1256 [ #  # ][ #  # ]:          0 :                         ScEditableTester aTester( pTabViewShell );
    1257         [ #  # ]:          0 :                         if (aTester.IsEditable())
    1258                 :            :                         {
    1259         [ #  # ]:          0 :                             ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
    1260                 :            :                             OSL_ENSURE(pFact, "ScAbstractFactory create fail!");
    1261                 :            : 
    1262                 :            :                             AbstractScInsertContentsDlg* pDlg = pFact->CreateScInsertContentsDlg( pTabViewShell->GetDialogParent(),
    1263 [ #  # ][ #  # ]:          0 :                                                                                                     RID_SCDLG_INSCONT);
    1264                 :            :                             OSL_ENSURE(pDlg, "Dialog create fail!");
    1265         [ #  # ]:          0 :                             pDlg->SetOtherDoc( bOtherDoc );
    1266                 :            :                             // if ChangeTrack MoveMode disable
    1267         [ #  # ]:          0 :                             pDlg->SetChangeTrack( pDoc->GetChangeTrack() != NULL );
    1268                 :            :                             // cut/move references may disable shift
    1269                 :            :                             // directions if source and destination ranges intersect
    1270         [ #  # ]:          0 :                             if ( !bOtherDoc )
    1271                 :            :                             {
    1272 [ #  # ][ #  # ]:          0 :                                 if ( pOwnClip && pOwnClip->GetDocument()->IsCutMode() )
         [ #  # ][ #  # ]
    1273                 :            :                                 {
    1274                 :          0 :                                     ScViewData* pData = GetViewData();
    1275 [ #  # ][ #  # ]:          0 :                                     if ( pData->GetMarkData().GetTableSelect(
                 [ #  # ]
    1276                 :          0 :                                             pData->GetTabNo() ) )
    1277                 :            :                                     {
    1278                 :          0 :                                         SCCOL nPosX = pData->GetCurX();
    1279                 :          0 :                                         SCROW nPosY = pData->GetCurY();
    1280                 :            :                                         SCCOL nClipStartX, nClipSizeX;
    1281                 :            :                                         SCROW  nClipStartY, nClipSizeY;
    1282         [ #  # ]:          0 :                                         pOwnClip->GetDocument()->GetClipStart( nClipStartX, nClipStartY );
    1283                 :            :                                         // for CutMode, filtered rows can always be included
    1284         [ #  # ]:          0 :                                         pOwnClip->GetDocument()->GetClipArea( nClipSizeX, nClipSizeY, sal_True );
    1285                 :          0 :                                         int nDisableShift = 0;
    1286 [ #  # ][ #  # ]:          0 :                                         if ( nClipStartX <= nPosX + nClipSizeX &&
    1287                 :            :                                                 nPosX <= nClipStartX + nClipSizeX )
    1288                 :          0 :                                             nDisableShift |= SC_CELL_SHIFT_DISABLE_DOWN;
    1289 [ #  # ][ #  # ]:          0 :                                         if ( nClipStartY <= nPosY + nClipSizeY &&
    1290                 :            :                                                 nPosY <= nClipStartY + nClipSizeY )
    1291                 :          0 :                                             nDisableShift |= SC_CELL_SHIFT_DISABLE_RIGHT;
    1292         [ #  # ]:          0 :                                         if ( nDisableShift )
    1293         [ #  # ]:          0 :                                             pDlg->SetCellShiftDisabled( nDisableShift );
    1294                 :            :                                     }
    1295                 :            :                                 }
    1296                 :            :                             }
    1297 [ #  # ][ #  # ]:          0 :                             if (pDlg->Execute() == RET_OK)
    1298                 :            :                             {
    1299         [ #  # ]:          0 :                                 nFlags     = pDlg->GetInsContentsCmdBits();
    1300         [ #  # ]:          0 :                                 nFunction  = pDlg->GetFormulaCmdBits();
    1301         [ #  # ]:          0 :                                 bSkipEmpty = pDlg->IsSkipEmptyCells();
    1302         [ #  # ]:          0 :                                 bTranspose = pDlg->IsTranspose();
    1303         [ #  # ]:          0 :                                 bAsLink    = pDlg->IsLink();
    1304         [ #  # ]:          0 :                                 eMoveMode  = pDlg->GetMoveMode();
    1305                 :            :                             }
    1306 [ #  # ][ #  # ]:          0 :                             delete pDlg;
    1307                 :            :                         }
    1308                 :            :                         else
    1309 [ #  # ][ #  # ]:          0 :                             pTabViewShell->ErrorMessage(aTester.GetMessageId());
    1310                 :            :                     }
    1311                 :            : 
    1312         [ #  # ]:          0 :                     if( nFlags != IDF_NONE )
    1313                 :            :                     {
    1314                 :            :                         {
    1315 [ #  # ][ #  # ]:          0 :                             WaitObject aWait( GetViewData()->GetDialogParent() );
    1316 [ #  # ][ #  # ]:          0 :                             if ( bAsLink && bOtherDoc )
    1317         [ #  # ]:          0 :                                 pTabViewShell->PasteFromSystem(SOT_FORMATSTR_ID_LINK);  // DDE insert
    1318                 :            :                             else
    1319                 :            :                             {
    1320                 :            :                                 pTabViewShell->PasteFromClip( nFlags, pOwnClip->GetDocument(),
    1321                 :            :                                     nFunction, bSkipEmpty, bTranspose, bAsLink,
    1322         [ #  # ]:          0 :                                     eMoveMode, IDF_NONE, sal_True );    // allow warning dialog
    1323         [ #  # ]:          0 :                             }
    1324                 :            :                         }
    1325                 :            : 
    1326         [ #  # ]:          0 :                         if( !pReqArgs )
    1327                 :            :                         {
    1328         [ #  # ]:          0 :                             String  aFlags;
    1329                 :            : 
    1330         [ #  # ]:          0 :                             if( nFlags == IDF_ALL )
    1331                 :            :                             {
    1332         [ #  # ]:          0 :                                 aFlags += 'A';
    1333                 :            :                             }
    1334                 :            :                             else
    1335                 :            :                             {
    1336 [ #  # ][ #  # ]:          0 :                                 if( nFlags & IDF_STRING ) aFlags += 'S';
    1337 [ #  # ][ #  # ]:          0 :                                 if( nFlags & IDF_VALUE ) aFlags += 'V';
    1338 [ #  # ][ #  # ]:          0 :                                 if( nFlags & IDF_DATETIME ) aFlags += 'D';
    1339 [ #  # ][ #  # ]:          0 :                                 if( nFlags & IDF_FORMULA ) aFlags += 'F';
    1340 [ #  # ][ #  # ]:          0 :                                 if( nFlags & IDF_NOTE ) aFlags += 'N';
    1341 [ #  # ][ #  # ]:          0 :                                 if( nFlags & IDF_ATTRIB ) aFlags += 'T';
    1342                 :            :                             }
    1343                 :            : 
    1344 [ #  # ][ #  # ]:          0 :                             rReq.AppendItem( SfxStringItem( FID_INS_CELL_CONTENTS, aFlags ) );
                 [ #  # ]
    1345 [ #  # ][ #  # ]:          0 :                             rReq.AppendItem( SfxBoolItem( FN_PARAM_2, bSkipEmpty ) );
                 [ #  # ]
    1346 [ #  # ][ #  # ]:          0 :                             rReq.AppendItem( SfxBoolItem( FN_PARAM_3, bTranspose ) );
                 [ #  # ]
    1347 [ #  # ][ #  # ]:          0 :                             rReq.AppendItem( SfxBoolItem( FN_PARAM_4, bAsLink ) );
                 [ #  # ]
    1348 [ #  # ][ #  # ]:          0 :                             rReq.AppendItem( SfxUInt16Item( FN_PARAM_1, nFunction ) );
                 [ #  # ]
    1349 [ #  # ][ #  # ]:          0 :                             rReq.AppendItem( SfxInt16Item( FN_PARAM_5, (sal_Int16) eMoveMode ) );
                 [ #  # ]
    1350 [ #  # ][ #  # ]:          0 :                             rReq.Done();
    1351                 :            :                         }
    1352                 :          0 :                     }
    1353                 :            :                 }
    1354                 :            :             }
    1355                 :          0 :             pTabViewShell->CellContentChanged();        // => PasteFromXXX ???
    1356                 :          0 :             break;
    1357                 :            :         case SID_PASTE_ONLY_VALUE:
    1358                 :            :         case SID_PASTE_ONLY_TEXT:
    1359                 :            :         case SID_PASTE_ONLY_FORMULA:
    1360                 :            :         {
    1361                 :          0 :             Window* pWin = GetViewData()->GetActiveWin();
    1362         [ #  # ]:          0 :             if ( ScTransferObj::GetOwnClipboard( pWin ) )  // own cell data
    1363                 :            :             {
    1364                 :          0 :                 rReq.SetSlot( FID_INS_CELL_CONTENTS );
    1365                 :          0 :                 rtl::OUString aFlags;
    1366         [ #  # ]:          0 :                 if ( nSlot == SID_PASTE_ONLY_VALUE )
    1367                 :          0 :                     aFlags = "V";
    1368         [ #  # ]:          0 :                 else if ( nSlot == SID_PASTE_ONLY_TEXT )
    1369                 :          0 :                     aFlags = "S";
    1370                 :            :                 else
    1371                 :          0 :                     aFlags = "F";
    1372 [ #  # ][ #  # ]:          0 :                 rReq.AppendItem( SfxStringItem( FID_INS_CELL_CONTENTS, aFlags ) );
         [ #  # ][ #  # ]
                 [ #  # ]
    1373 [ #  # ][ #  # ]:          0 :                 ExecuteSlot( rReq, GetInterface() );
    1374 [ #  # ][ #  # ]:          0 :                 rReq.SetReturnValue(SfxInt16Item(nSlot, 1));    // 1 = success
                 [ #  # ]
    1375         [ #  # ]:          0 :                 pTabViewShell->CellContentChanged();
    1376                 :            :             }
    1377                 :            :             else
    1378         [ #  # ]:          0 :                 rReq.SetReturnValue(SfxInt16Item(nSlot, 0));        // 0 = fail
    1379                 :          0 :             break;
    1380                 :            :         }
    1381                 :            :         case SID_PASTE_SPECIAL:
    1382                 :            :             // differentiate between own cell data and draw objects/external data
    1383                 :            :             // this makes FID_INS_CELL_CONTENTS superfluous
    1384                 :            :             {
    1385         [ #  # ]:          0 :                 Window* pWin = GetViewData()->GetActiveWin();
    1386                 :            : 
    1387                 :            :                 //  Clipboard-ID given as parameter? Basic "PasteSpecial(Format)"
    1388                 :          0 :                 const SfxPoolItem* pItem=NULL;
    1389 [ #  # ][ #  # ]:          0 :                 if ( pReqArgs &&
         [ #  # ][ #  # ]
    1390         [ #  # ]:          0 :                      pReqArgs->GetItemState(nSlot, sal_True, &pItem) == SFX_ITEM_SET &&
    1391 [ #  # ][ #  # ]:          0 :                      pItem->ISA(SfxUInt32Item) )
    1392                 :            :                 {
    1393                 :          0 :                     sal_uLong nFormat = ((const SfxUInt32Item*)pItem)->GetValue();
    1394                 :          0 :                     sal_Bool bRet=sal_True;
    1395                 :            :                     {
    1396 [ #  # ][ #  # ]:          0 :                         WaitObject aWait( GetViewData()->GetDialogParent() );
    1397         [ #  # ]:          0 :                         sal_Bool bDraw = ( ScDrawTransferObj::GetOwnClipboard( pWin ) != NULL );
    1398 [ #  # ][ #  # ]:          0 :                         if ( bDraw && nFormat == SOT_FORMATSTR_ID_EMBED_SOURCE )
    1399         [ #  # ]:          0 :                             pTabViewShell->PasteDraw();
    1400                 :            :                         else
    1401 [ #  # ][ #  # ]:          0 :                             bRet = pTabViewShell->PasteFromSystem(nFormat, sal_True);       // TRUE: no error messages
    1402                 :            :                     }
    1403                 :            : 
    1404         [ #  # ]:          0 :                     if ( bRet )
    1405                 :            :                     {
    1406 [ #  # ][ #  # ]:          0 :                         rReq.SetReturnValue(SfxInt16Item(nSlot, bRet)); // 1 = success, 0 = fail
                 [ #  # ]
    1407         [ #  # ]:          0 :                         rReq.Done();
    1408                 :            :                     }
    1409                 :            :                     else
    1410                 :            :                         // if format is not available -> fallback to request without parameters
    1411                 :          0 :                         pItem = NULL;
    1412                 :            :                 }
    1413                 :            : 
    1414         [ #  # ]:          0 :                 if ( !pItem )
    1415                 :            :                 {
    1416 [ #  # ][ #  # ]:          0 :                     if ( ScTransferObj::GetOwnClipboard( pWin ) )  // own cell data
    1417                 :            :                     {
    1418                 :          0 :                         rReq.SetSlot( FID_INS_CELL_CONTENTS );
    1419 [ #  # ][ #  # ]:          0 :                         ExecuteSlot( rReq, GetInterface() );
    1420 [ #  # ][ #  # ]:          0 :                         rReq.SetReturnValue(SfxInt16Item(nSlot, 1));    // 1 = success
                 [ #  # ]
    1421                 :            :                     }
    1422                 :            :                     else                                    // draw objects or external data
    1423                 :            :                     {
    1424         [ #  # ]:          0 :                         sal_Bool bDraw = ( ScDrawTransferObj::GetOwnClipboard( pWin ) != NULL );
    1425                 :            : 
    1426         [ #  # ]:          0 :                         SvxClipboardFmtItem aFormats( SID_CLIPBOARD_FORMAT_ITEMS );
    1427         [ #  # ]:          0 :                         GetPossibleClipboardFormats( aFormats );
    1428                 :            : 
    1429         [ #  # ]:          0 :                         sal_uInt16 nFormatCount = aFormats.Count();
    1430         [ #  # ]:          0 :                         if ( nFormatCount )
    1431                 :            :                         {
    1432         [ #  # ]:          0 :                             SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
    1433 [ #  # ][ #  # ]:          0 :                             SfxAbstractPasteDialog* pDlg = pFact->CreatePasteDialog( pTabViewShell->GetDialogParent() );
    1434         [ #  # ]:          0 :                             if ( pDlg )
    1435                 :            :                             {
    1436         [ #  # ]:          0 :                             for (sal_uInt16 i=0; i<nFormatCount; i++)
    1437                 :            :                             {
    1438         [ #  # ]:          0 :                                 sal_uLong nFormatId = aFormats.GetClipbrdFormatId( i );
    1439 [ #  # ][ #  # ]:          0 :                                 String aName = aFormats.GetClipbrdFormatName( i );
    1440                 :            :                                 // special case for paste dialog: '*' is replaced by object type
    1441         [ #  # ]:          0 :                                 if ( nFormatId == SOT_FORMATSTR_ID_EMBED_SOURCE )
    1442         [ #  # ]:          0 :                                     aName.Assign((sal_Unicode)'*');
    1443         [ #  # ]:          0 :                                 pDlg->Insert( nFormatId, aName );
    1444         [ #  # ]:          0 :                             }
    1445                 :            : 
    1446                 :            :                             TransferableDataHelper aDataHelper(
    1447         [ #  # ]:          0 :                                 TransferableDataHelper::CreateFromSystemClipboard( pWin ) );
    1448 [ #  # ][ #  # ]:          0 :                             sal_uLong nFormat = pDlg->GetFormat( aDataHelper.GetTransferable() );
                 [ #  # ]
    1449         [ #  # ]:          0 :                             if (nFormat > 0)
    1450                 :            :                             {
    1451                 :            :                                 {
    1452 [ #  # ][ #  # ]:          0 :                                     WaitObject aWait( GetViewData()->GetDialogParent() );
    1453 [ #  # ][ #  # ]:          0 :                                     if ( bDraw && nFormat == SOT_FORMATSTR_ID_EMBED_SOURCE )
    1454         [ #  # ]:          0 :                                         pTabViewShell->PasteDraw();
    1455                 :            :                                     else
    1456 [ #  # ][ #  # ]:          0 :                                         pTabViewShell->PasteFromSystem(nFormat);
    1457                 :            :                                 }
    1458 [ #  # ][ #  # ]:          0 :                                 rReq.SetReturnValue(SfxInt16Item(nSlot, 1));    // 1 = success
                 [ #  # ]
    1459 [ #  # ][ #  # ]:          0 :                                 rReq.AppendItem( SfxUInt32Item( nSlot, nFormat ) );
                 [ #  # ]
    1460         [ #  # ]:          0 :                                 rReq.Done();
    1461                 :            :                             }
    1462                 :            :                             else
    1463                 :            :                             {
    1464 [ #  # ][ #  # ]:          0 :                                 rReq.SetReturnValue(SfxInt16Item(nSlot, 0));    // 0 = fail
                 [ #  # ]
    1465         [ #  # ]:          0 :                                 rReq.Ignore();
    1466                 :            :                             }
    1467                 :            : 
    1468 [ #  # ][ #  # ]:          0 :                             delete pDlg;
                 [ #  # ]
    1469                 :            :                             }
    1470                 :            :                         }
    1471                 :            :                         else
    1472 [ #  # ][ #  # ]:          0 :                             rReq.SetReturnValue(SfxInt16Item(nSlot, 0));        // 0 = fail
         [ #  # ][ #  # ]
    1473                 :            :                     }
    1474                 :            :                 }
    1475                 :            :             }
    1476                 :          0 :             pTabViewShell->CellContentChanged();        // => PasteFromSystem() ???
    1477                 :          0 :             break;
    1478                 :            : 
    1479                 :            :         //
    1480                 :            :         //  other
    1481                 :            :         //
    1482                 :            : 
    1483                 :            :         case FID_INS_ROWBRK:
    1484                 :          0 :             pTabViewShell->InsertPageBreak( false );
    1485                 :          0 :             rReq.Done();
    1486                 :          0 :             break;
    1487                 :            : 
    1488                 :            :         case FID_INS_COLBRK:
    1489                 :          0 :             pTabViewShell->InsertPageBreak( sal_True );
    1490                 :          0 :             rReq.Done();
    1491                 :          0 :             break;
    1492                 :            : 
    1493                 :            :         case FID_DEL_ROWBRK:
    1494                 :          0 :             pTabViewShell->DeletePageBreak( false );
    1495                 :          0 :             rReq.Done();
    1496                 :          0 :             break;
    1497                 :            : 
    1498                 :            :         case FID_DEL_COLBRK:
    1499                 :          0 :             pTabViewShell->DeletePageBreak( sal_True );
    1500                 :          0 :             rReq.Done();
    1501                 :          0 :             break;
    1502                 :            : 
    1503                 :            :         case SID_DETECTIVE_ADD_PRED:
    1504                 :          0 :             pTabViewShell->DetectiveAddPred();
    1505                 :          0 :             rReq.Done();
    1506                 :          0 :             break;
    1507                 :            : 
    1508                 :            :         case SID_DETECTIVE_DEL_PRED:
    1509                 :          0 :             pTabViewShell->DetectiveDelPred();
    1510                 :          0 :             rReq.Done();
    1511                 :          0 :             break;
    1512                 :            : 
    1513                 :            :         case SID_DETECTIVE_ADD_SUCC:
    1514                 :          0 :             pTabViewShell->DetectiveAddSucc();
    1515                 :          0 :             rReq.Done();
    1516                 :          0 :             break;
    1517                 :            : 
    1518                 :            :         case SID_DETECTIVE_DEL_SUCC:
    1519                 :          0 :             pTabViewShell->DetectiveDelSucc();
    1520                 :          0 :             rReq.Done();
    1521                 :          0 :             break;
    1522                 :            : 
    1523                 :            :         case SID_DETECTIVE_ADD_ERR:
    1524                 :          0 :             pTabViewShell->DetectiveAddError();
    1525                 :          0 :             rReq.Done();
    1526                 :          0 :             break;
    1527                 :            : 
    1528                 :            :         case SID_DETECTIVE_INVALID:
    1529                 :          0 :             pTabViewShell->DetectiveMarkInvalid();
    1530                 :          0 :             rReq.Done();
    1531                 :          0 :             break;
    1532                 :            : 
    1533                 :            :         case SID_DETECTIVE_REFRESH:
    1534                 :          0 :             pTabViewShell->DetectiveRefresh();
    1535                 :          0 :             rReq.Done();
    1536                 :          0 :             break;
    1537                 :            : 
    1538                 :            :         case SID_DETECTIVE_MARK_PRED:
    1539                 :          0 :             pTabViewShell->DetectiveMarkPred();
    1540                 :          0 :             break;
    1541                 :            :         case SID_DETECTIVE_MARK_SUCC:
    1542                 :          0 :             pTabViewShell->DetectiveMarkSucc();
    1543                 :          0 :             break;
    1544                 :            :         case SID_INSERT_CURRENT_DATE:
    1545                 :            :             pTabViewShell->InsertCurrentTime(
    1546         [ #  # ]:          0 :                 NUMBERFORMAT_DATE, ScGlobal::GetRscString(STR_UNDO_INSERT_CURRENT_DATE));
    1547                 :          0 :             break;
    1548                 :            :         case SID_INSERT_CURRENT_TIME:
    1549                 :            :             pTabViewShell->InsertCurrentTime(
    1550         [ #  # ]:          0 :                 NUMBERFORMAT_TIME, ScGlobal::GetRscString(STR_UNDO_INSERT_CURRENT_TIME));
    1551                 :          0 :             break;
    1552                 :            : 
    1553                 :            :         case SID_SPELL_DIALOG:
    1554                 :            :             {
    1555                 :          0 :                 SfxViewFrame* pViewFrame = pTabViewShell->GetViewFrame();
    1556         [ #  # ]:          0 :                 if( rReq.GetArgs() )
    1557                 :            :                     pViewFrame->SetChildWindow( SID_SPELL_DIALOG,
    1558                 :          0 :                         static_cast< const SfxBoolItem& >( rReq.GetArgs()->
    1559                 :          0 :                             Get( SID_SPELL_DIALOG ) ).GetValue() );
    1560                 :            :                 else
    1561                 :          0 :                     pViewFrame->ToggleChildWindow( SID_SPELL_DIALOG );
    1562                 :            : 
    1563                 :          0 :                 pViewFrame->GetBindings().Invalidate( SID_SPELL_DIALOG );
    1564                 :          0 :                 rReq.Ignore();
    1565                 :            :             }
    1566                 :          0 :             break;
    1567                 :            : 
    1568                 :            :         case SID_HANGUL_HANJA_CONVERSION:
    1569                 :          0 :             pTabViewShell->DoHangulHanjaConversion();
    1570                 :          0 :             break;
    1571                 :            : 
    1572                 :            :         case SID_CHINESE_CONVERSION:
    1573                 :            :             {
    1574                 :            :                 //open ChineseTranslationDialog
    1575                 :            :                 Reference< XComponentContext > xContext(
    1576         [ #  # ]:          0 :                     ::cppu::defaultBootstrap_InitialComponentContext() ); //@todo get context from calc if that has one
    1577         [ #  # ]:          0 :                 if(xContext.is())
    1578                 :            :                 {
    1579 [ #  # ][ #  # ]:          0 :                     Reference< lang::XMultiComponentFactory > xMCF( xContext->getServiceManager() );
    1580         [ #  # ]:          0 :                     if(xMCF.is())
    1581                 :            :                     {
    1582                 :            :                         Reference< ui::dialogs::XExecutableDialog > xDialog(
    1583         [ #  # ]:          0 :                                 xMCF->createInstanceWithContext(
    1584                 :            :                                     rtl::OUString("com.sun.star.linguistic2.ChineseTranslationDialog")
    1585 [ #  # ][ #  # ]:          0 :                                     , xContext), UNO_QUERY);
    1586         [ #  # ]:          0 :                         Reference< lang::XInitialization > xInit( xDialog, UNO_QUERY );
    1587         [ #  # ]:          0 :                         if( xInit.is() )
    1588                 :            :                         {
    1589                 :            :                             //  initialize dialog
    1590         [ #  # ]:          0 :                             Reference< awt::XWindow > xDialogParentWindow(0);
    1591         [ #  # ]:          0 :                             Sequence<Any> aSeq(1);
    1592         [ #  # ]:          0 :                             Any* pArray = aSeq.getArray();
    1593                 :          0 :                             PropertyValue aParam;
    1594                 :          0 :                             aParam.Name = rtl::OUString("ParentWindow");
    1595 [ #  # ][ #  # ]:          0 :                             aParam.Value <<= makeAny(xDialogParentWindow);
    1596 [ #  # ][ #  # ]:          0 :                             pArray[0] <<= makeAny(aParam);
    1597 [ #  # ][ #  # ]:          0 :                             xInit->initialize( aSeq );
    1598                 :            : 
    1599                 :            :                             //execute dialog
    1600 [ #  # ][ #  # ]:          0 :                             sal_Int16 nDialogRet = xDialog->execute();
    1601         [ #  # ]:          0 :                             if( RET_OK == nDialogRet )
    1602                 :            :                             {
    1603                 :            :                                 //get some parameters from the dialog
    1604                 :          0 :                                 sal_Bool bToSimplified = sal_True;
    1605                 :          0 :                                 sal_Bool bUseVariants = sal_True;
    1606                 :          0 :                                 sal_Bool bCommonTerms = sal_True;
    1607         [ #  # ]:          0 :                                 Reference< beans::XPropertySet >  xProp( xDialog, UNO_QUERY );
    1608         [ #  # ]:          0 :                                 if( xProp.is() )
    1609                 :            :                                 {
    1610                 :            :                                     try
    1611                 :            :                                     {
    1612 [ #  # ][ #  # ]:          0 :                                         xProp->getPropertyValue( rtl::OUString("IsDirectionToSimplified") ) >>= bToSimplified;
    1613 [ #  # ][ #  # ]:          0 :                                         xProp->getPropertyValue( rtl::OUString("IsUseCharacterVariants") ) >>= bUseVariants;
    1614 [ #  # ][ #  # ]:          0 :                                         xProp->getPropertyValue( rtl::OUString("IsTranslateCommonTerms") ) >>= bCommonTerms;
                 [ #  # ]
    1615                 :            :                                     }
    1616         [ #  # ]:          0 :                                     catch( Exception& )
    1617                 :            :                                     {
    1618                 :            :                                     }
    1619                 :            :                                 }
    1620                 :            : 
    1621                 :            :                                 //execute translation
    1622         [ #  # ]:          0 :                                 LanguageType eSourceLang = bToSimplified ? LANGUAGE_CHINESE_TRADITIONAL : LANGUAGE_CHINESE_SIMPLIFIED;
    1623         [ #  # ]:          0 :                                 LanguageType eTargetLang = bToSimplified ? LANGUAGE_CHINESE_SIMPLIFIED : LANGUAGE_CHINESE_TRADITIONAL;
    1624         [ #  # ]:          0 :                                 sal_Int32 nOptions = bUseVariants ? i18n::TextConversionOption::USE_CHARACTER_VARIANTS : 0;
    1625         [ #  # ]:          0 :                                 if( !bCommonTerms )
    1626                 :          0 :                                     nOptions |= i18n::TextConversionOption::CHARACTER_BY_CHARACTER;
    1627                 :            : 
    1628         [ #  # ]:          0 :                                 Font aTargetFont = GetViewData()->GetActiveWin()->GetDefaultFont(
    1629                 :            :                                                     DEFAULTFONT_CJK_SPREADSHEET,
    1630 [ #  # ][ #  # ]:          0 :                                                     eTargetLang, DEFAULTFONT_FLAGS_ONLYONE );
                 [ #  # ]
    1631                 :            :                                 ScConversionParam aConvParam( SC_CONVERSION_CHINESE_TRANSL,
    1632         [ #  # ]:          0 :                                     eSourceLang, eTargetLang, aTargetFont, nOptions, false );
    1633 [ #  # ][ #  # ]:          0 :                                 pTabViewShell->DoSheetConversion( aConvParam );
                 [ #  # ]
    1634         [ #  # ]:          0 :                             }
    1635                 :            :                         }
    1636         [ #  # ]:          0 :                         Reference< lang::XComponent > xComponent( xDialog, UNO_QUERY );
    1637         [ #  # ]:          0 :                         if( xComponent.is() )
    1638 [ #  # ][ #  # ]:          0 :                             xComponent->dispose();
    1639                 :          0 :                     }
    1640                 :          0 :                 }
    1641                 :            :             }
    1642                 :          0 :             break;
    1643                 :            : 
    1644                 :            :         case SID_THESAURUS:
    1645                 :          0 :             pTabViewShell->DoThesaurus();
    1646                 :          0 :             break;
    1647                 :            : 
    1648                 :            :         case SID_TOGGLE_REL:
    1649                 :          0 :             pTabViewShell->DoRefConversion();
    1650                 :          0 :             break;
    1651                 :            : 
    1652                 :            :         case SID_DEC_INDENT:
    1653                 :          0 :             pTabViewShell->ChangeIndent( false );
    1654                 :          0 :             break;
    1655                 :            :         case SID_INC_INDENT:
    1656                 :          0 :             pTabViewShell->ChangeIndent( sal_True );
    1657                 :          0 :             break;
    1658                 :            : 
    1659                 :            :         case FID_USE_NAME:
    1660                 :            :             {
    1661                 :          0 :                 sal_uInt16 nFlags = pTabViewShell->GetCreateNameFlags();
    1662                 :            : 
    1663                 :          0 :                 ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
    1664                 :            :                 OSL_ENSURE(pFact, "ScAbstractFactory create fail!");
    1665                 :            : 
    1666                 :          0 :                 AbstractScNameCreateDlg* pDlg = pFact->CreateScNameCreateDlg(pTabViewShell->GetDialogParent(), nFlags, RID_SCDLG_NAMES_CREATE );
    1667                 :            :                 OSL_ENSURE(pDlg, "Dialog create fail!");
    1668                 :            : 
    1669         [ #  # ]:          0 :                 if( pDlg->Execute() )
    1670                 :            :                 {
    1671                 :          0 :                     nFlags = pDlg->GetFlags();
    1672                 :          0 :                     pTabViewShell->CreateNames(nFlags);
    1673                 :          0 :                     rReq.Done();
    1674                 :            :                 }
    1675         [ #  # ]:          0 :                 delete pDlg;
    1676                 :            :             }
    1677                 :          0 :             break;
    1678                 :            : 
    1679                 :            :         case SID_CONSOLIDATE:
    1680                 :            :             {
    1681                 :            :                 const SfxPoolItem* pItem;
    1682 [ #  # ][ #  # ]:          0 :                 if ( pReqArgs && SFX_ITEM_SET ==
                 [ #  # ]
    1683         [ #  # ]:          0 :                         pReqArgs->GetItemState( SCITEM_CONSOLIDATEDATA, sal_True, &pItem ) )
    1684                 :            :                 {
    1685                 :            :                     const ScConsolidateParam& rParam =
    1686                 :          0 :                             ((const ScConsolidateItem*)pItem)->GetData();
    1687                 :            : 
    1688         [ #  # ]:          0 :                     pTabViewShell->Consolidate( rParam );
    1689 [ #  # ][ #  # ]:          0 :                     GetViewData()->GetDocument()->SetConsolidateDlgData( &rParam );
    1690                 :            : 
    1691         [ #  # ]:          0 :                     rReq.Done();
    1692                 :            :                 }
    1693                 :            : #ifndef DISABLE_SCRIPTING
    1694 [ #  # ][ #  # ]:          0 :                 else if (rReq.IsAPI())
    1695         [ #  # ]:          0 :                     SbxBase::SetError(SbxERR_BAD_PARAMETER);
    1696                 :            : #endif
    1697                 :            :             }
    1698                 :          0 :             break;
    1699                 :            : 
    1700                 :            :         case SID_INS_FUNCTION:
    1701                 :            :             {
    1702                 :          0 :                 const SfxBoolItem* pOkItem = (const SfxBoolItem*)&pReqArgs->Get( SID_DLG_RETOK );
    1703                 :            : 
    1704         [ #  # ]:          0 :                 if ( pOkItem->GetValue() )      // OK
    1705                 :            :                 {
    1706         [ #  # ]:          0 :                     String               aFormula;
    1707         [ #  # ]:          0 :                     const SfxStringItem* pSItem      = (const SfxStringItem*)&pReqArgs->Get( SCITEM_STRING );
    1708         [ #  # ]:          0 :                     const SfxBoolItem*   pMatrixItem = (const SfxBoolItem*)  &pReqArgs->Get( SID_DLG_MATRIX );
    1709                 :            : 
    1710         [ #  # ]:          0 :                     aFormula += pSItem->GetValue();
    1711 [ #  # ][ #  # ]:          0 :                     pScMod->ActivateInputWindow( &aFormula, pMatrixItem->GetValue() );
    1712                 :            :                 }
    1713                 :            :                 else                            // CANCEL
    1714                 :            :                 {
    1715                 :          0 :                     pScMod->ActivateInputWindow( NULL );
    1716                 :            :                 }
    1717                 :          0 :                 rReq.Ignore();      // only SID_ENTER_STRING is recorded
    1718                 :            :             }
    1719                 :          0 :             break;
    1720                 :            : 
    1721                 :            :         case FID_DEFINE_NAME:
    1722         [ #  # ]:          0 :             if ( pReqArgs )
    1723                 :            :             {
    1724                 :            :                 const SfxPoolItem* pItem;
    1725 [ #  # ][ #  # ]:          0 :                 String  aName, aSymbol, aAttrib;
                 [ #  # ]
    1726                 :            : 
    1727 [ #  # ][ #  # ]:          0 :                 if( pReqArgs->HasItem( FID_DEFINE_NAME, &pItem ) )
    1728         [ #  # ]:          0 :                     aName = ((const SfxStringItem*)pItem)->GetValue();
    1729                 :            : 
    1730 [ #  # ][ #  # ]:          0 :                 if( pReqArgs->HasItem( FN_PARAM_1, &pItem ) )
    1731         [ #  # ]:          0 :                     aSymbol = ((const SfxStringItem*)pItem)->GetValue();
    1732                 :            : 
    1733 [ #  # ][ #  # ]:          0 :                 if( pReqArgs->HasItem( FN_PARAM_2, &pItem ) )
    1734         [ #  # ]:          0 :                     aAttrib = ((const SfxStringItem*)pItem)->GetValue();
    1735                 :            : 
    1736 [ #  # ][ #  # ]:          0 :                 if ( aName.Len() && aSymbol.Len() )
                 [ #  # ]
    1737                 :            :                 {
    1738 [ #  # ][ #  # ]:          0 :                     if (pTabViewShell->InsertName( aName, aSymbol, aAttrib ))
    1739         [ #  # ]:          0 :                         rReq.Done();
    1740                 :            : #ifndef DISABLE_SCRIPTING
    1741                 :            :                     else
    1742         [ #  # ]:          0 :                         SbxBase::SetError( SbxERR_BAD_PARAMETER );  // Basic-error
    1743                 :            : #endif
    1744 [ #  # ][ #  # ]:          0 :                 }
                 [ #  # ]
    1745                 :            :             }
    1746                 :            :             else
    1747                 :            :             {
    1748                 :          0 :                 sal_uInt16          nId  = ScNameDlgWrapper::GetChildWindowId();
    1749                 :          0 :                 SfxViewFrame* pViewFrm = pTabViewShell->GetViewFrame();
    1750                 :          0 :                 SfxChildWindow* pWnd = pViewFrm->GetChildWindow( nId );
    1751                 :            : 
    1752                 :          0 :                 pScMod->SetRefDialog( nId, pWnd ? false : sal_True );
    1753                 :            :             }
    1754                 :          0 :             break;
    1755                 :            :         case FID_ADD_NAME:
    1756                 :            :             {
    1757                 :          0 :                 sal_uInt16          nId  = ScNameDefDlgWrapper::GetChildWindowId();
    1758                 :          0 :                 SfxViewFrame* pViewFrm = pTabViewShell->GetViewFrame();
    1759                 :          0 :                 SfxChildWindow* pWnd = pViewFrm->GetChildWindow( nId );
    1760                 :            : 
    1761                 :          0 :                 pScMod->SetRefDialog( nId, pWnd ? false : sal_True );
    1762                 :            :             }
    1763                 :          0 :             break;
    1764                 :            : 
    1765                 :            :         case SID_DEFINE_COLROWNAMERANGES:
    1766                 :            :             {
    1767                 :            : 
    1768                 :          0 :                 sal_uInt16          nId  = ScColRowNameRangesDlgWrapper::GetChildWindowId();
    1769                 :          0 :                 SfxViewFrame* pViewFrm = pTabViewShell->GetViewFrame();
    1770                 :          0 :                 SfxChildWindow* pWnd = pViewFrm->GetChildWindow( nId );
    1771                 :            : 
    1772                 :          0 :                 pScMod->SetRefDialog( nId, pWnd ? false : sal_True );
    1773                 :            : 
    1774                 :            :             }
    1775                 :          0 :             break;
    1776                 :            : 
    1777                 :            :         case SID_UPDATECHART:
    1778                 :            :             {
    1779                 :          0 :                 sal_Bool bAll = false;
    1780                 :            : 
    1781         [ #  # ]:          0 :                 if( pReqArgs )
    1782                 :            :                 {
    1783                 :            :                     const SfxPoolItem* pItem;
    1784                 :            : 
    1785 [ #  # ][ #  # ]:          0 :                     if( pReqArgs->HasItem( SID_UPDATECHART, &pItem ) )
    1786                 :          0 :                         bAll = ((const SfxBoolItem*)pItem)->GetValue();
    1787                 :            :                 }
    1788                 :            : 
    1789                 :          0 :                 pTabViewShell->UpdateCharts( bAll );
    1790                 :            : 
    1791         [ #  # ]:          0 :                 if( ! rReq.IsAPI() )
    1792                 :            :                 {
    1793         [ #  # ]:          0 :                     rReq.AppendItem( SfxBoolItem( SID_UPDATECHART, bAll ) );
    1794                 :          0 :                     rReq.Done();
    1795                 :            :                 }
    1796                 :            :             }
    1797                 :          0 :             break;
    1798                 :            : 
    1799                 :            : 
    1800                 :            :         case SID_TABOP:
    1801         [ #  # ]:          0 :             if (pReqArgs)
    1802                 :            :             {
    1803                 :            :                 const ScTabOpItem& rItem =
    1804                 :            :                         (const ScTabOpItem&)
    1805                 :          0 :                             pReqArgs->Get( SID_TABOP );
    1806                 :            : 
    1807                 :          0 :                 pTabViewShell->TabOp( rItem.GetData() );
    1808                 :            : 
    1809                 :          0 :                 rReq.Done( *pReqArgs );
    1810                 :            :             }
    1811                 :          0 :             break;
    1812                 :            : 
    1813                 :            :         case SID_SOLVE:
    1814         [ #  # ]:          0 :             if (pReqArgs)
    1815                 :            :             {
    1816                 :            :                 const ScSolveItem& rItem =
    1817                 :            :                         (const ScSolveItem&)
    1818                 :          0 :                             pReqArgs->Get( SCITEM_SOLVEDATA );
    1819                 :            : 
    1820                 :          0 :                 pTabViewShell->Solve( rItem.GetData() );
    1821                 :            : 
    1822                 :          0 :                 rReq.Done( *pReqArgs );
    1823                 :            :             }
    1824                 :          0 :             break;
    1825                 :            : 
    1826                 :            :         case FID_INSERT_NAME:
    1827                 :            :             {
    1828                 :          0 :                 ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
    1829                 :            :                 OSL_ENSURE(pFact, "ScAbstractFactory create fail!");
    1830                 :            : 
    1831                 :          0 :                 AbstractScNamePasteDlg* pDlg = pFact->CreateScNamePasteDlg( pTabViewShell->GetDialogParent(), GetViewData()->GetDocShell(), RID_SCDLG_NAMES_PASTE );
    1832                 :            :                 OSL_ENSURE(pDlg, "Dialog create fail!");
    1833      [ #  #  # ]:          0 :                 switch( pDlg->Execute() )
    1834                 :            :                 {
    1835                 :            :                     case BTN_PASTE_LIST:
    1836                 :          0 :                         pTabViewShell->InsertNameList();
    1837                 :          0 :                         break;
    1838                 :            :                     case BTN_PASTE_NAME:
    1839                 :            :                         {
    1840                 :          0 :                             ScInputHandler* pHdl = pScMod->GetInputHdl( pTabViewShell );
    1841         [ #  # ]:          0 :                             if (pHdl)
    1842                 :            :                             {
    1843                 :            :                                 //  "=" in KeyEvent, switches to input-mode
    1844 [ #  # ][ #  # ]:          0 :                                 pScMod->InputKeyEvent( KeyEvent('=',KeyCode()) );
    1845                 :            : 
    1846         [ #  # ]:          0 :                                 std::vector<rtl::OUString> aNames = pDlg->GetSelectedNames();
    1847         [ #  # ]:          0 :                                 if (!aNames.empty())
    1848                 :            :                                 {
    1849                 :          0 :                                     rtl::OUStringBuffer aBuffer;
    1850 [ #  # ][ #  # ]:          0 :                                     for (std::vector<rtl::OUString>::const_iterator itr = aNames.begin();
                 [ #  # ]
    1851                 :          0 :                                             itr != aNames.end(); ++itr)
    1852                 :            :                                     {
    1853 [ #  # ][ #  # ]:          0 :                                         aBuffer.append(*itr).append(' ');
    1854                 :            :                                     }
    1855 [ #  # ][ #  # ]:          0 :                                     pHdl->InsertFunction( aBuffer.makeStringAndClear(), false );       // without "()"
         [ #  # ][ #  # ]
    1856                 :          0 :                                 }
    1857                 :            :                             }
    1858                 :            :                         }
    1859                 :          0 :                         break;
    1860                 :            :                 }
    1861         [ #  # ]:          0 :                 delete pDlg;
    1862                 :            :             }
    1863                 :          0 :             break;
    1864                 :            : 
    1865                 :            :         case SID_RANGE_NOTETEXT:
    1866         [ #  # ]:          0 :             if (pReqArgs)
    1867                 :            :             {
    1868         [ #  # ]:          0 :                 const SfxStringItem& rTextItem = (const SfxStringItem&)pReqArgs->Get( SID_RANGE_NOTETEXT );
    1869                 :            : 
    1870                 :            :                 //  always cursor position
    1871                 :          0 :                 ScAddress aPos( GetViewData()->GetCurX(), GetViewData()->GetCurY(), GetViewData()->GetTabNo() );
    1872         [ #  # ]:          0 :                 pTabViewShell->SetNoteText( aPos, rTextItem.GetValue() );
    1873         [ #  # ]:          0 :                 rReq.Done();
    1874                 :            :             }
    1875                 :          0 :             break;
    1876                 :            : 
    1877                 :            :         case SID_INSERT_POSTIT:
    1878         [ #  # ]:          0 :             if ( pReqArgs )
    1879                 :            :             {
    1880         [ #  # ]:          0 :                 const SvxPostItAuthorItem&  rAuthorItem = (const SvxPostItAuthorItem&)pReqArgs->Get( SID_ATTR_POSTIT_AUTHOR );
    1881         [ #  # ]:          0 :                 const SvxPostItDateItem&    rDateItem   = (const SvxPostItDateItem&)  pReqArgs->Get( SID_ATTR_POSTIT_DATE );
    1882         [ #  # ]:          0 :                 const SvxPostItTextItem&    rTextItem   = (const SvxPostItTextItem&)  pReqArgs->Get( SID_ATTR_POSTIT_TEXT );
    1883                 :            : 
    1884                 :          0 :                 ScAddress aPos( GetViewData()->GetCurX(), GetViewData()->GetCurY(), GetViewData()->GetTabNo() );
    1885         [ #  # ]:          0 :                 pTabViewShell->ReplaceNote( aPos, rTextItem.GetValue(), &rAuthorItem.GetValue(), &rDateItem.GetValue() );
    1886         [ #  # ]:          0 :                 rReq.Done();
    1887                 :            :             }
    1888                 :            :             else
    1889                 :            :             {
    1890                 :          0 :                 pTabViewShell->EditNote();                  // note object to edit
    1891                 :            :             }
    1892                 :          0 :             break;
    1893                 :            : 
    1894                 :            :         case FID_NOTE_VISIBLE:
    1895                 :            :             {
    1896         [ #  # ]:          0 :                 ScDocument* pDoc = GetViewData()->GetDocument();
    1897                 :          0 :                 ScAddress aPos( GetViewData()->GetCurX(), GetViewData()->GetCurY(), GetViewData()->GetTabNo() );
    1898 [ #  # ][ #  # ]:          0 :                 if( ScPostIt* pNote = pDoc->GetNotes( aPos.Tab() )->findByAddress(aPos) )
                 [ #  # ]
    1899                 :            :                 {
    1900                 :            :                     bool bShow;
    1901                 :            :                     const SfxPoolItem* pItem;
    1902 [ #  # ][ #  # ]:          0 :                     if ( pReqArgs && (pReqArgs->GetItemState( FID_NOTE_VISIBLE, sal_True, &pItem ) == SFX_ITEM_SET) )
         [ #  # ][ #  # ]
    1903                 :          0 :                         bShow = ((const SfxBoolItem*) pItem)->GetValue();
    1904                 :            :                     else
    1905                 :          0 :                         bShow = !pNote->IsCaptionShown();
    1906                 :            : 
    1907         [ #  # ]:          0 :                     pTabViewShell->ShowNote( bShow );
    1908                 :            : 
    1909         [ #  # ]:          0 :                     if (!pReqArgs)
    1910 [ #  # ][ #  # ]:          0 :                         rReq.AppendItem( SfxBoolItem( FID_NOTE_VISIBLE, bShow ) );
                 [ #  # ]
    1911                 :            : 
    1912         [ #  # ]:          0 :                     rReq.Done();
    1913         [ #  # ]:          0 :                     rBindings.Invalidate( FID_NOTE_VISIBLE );
    1914                 :            :                 }
    1915                 :            :                 else
    1916         [ #  # ]:          0 :                     rReq.Ignore();
    1917                 :            :             }
    1918                 :          0 :             break;
    1919                 :            : 
    1920                 :            :         case SID_DELETE_NOTE:
    1921                 :          0 :             pTabViewShell->DeleteContents( IDF_NOTE );      // delete all notes in selection
    1922                 :          0 :             rReq.Done();
    1923                 :          0 :             break;
    1924                 :            : 
    1925                 :            :         case SID_CHARMAP:
    1926         [ #  # ]:          0 :             if( pReqArgs != NULL )
    1927                 :            :             {
    1928 [ #  # ][ #  # ]:          0 :                 String aChars, aFontName;
    1929                 :          0 :                 const SfxItemSet *pArgs = rReq.GetArgs();
    1930                 :          0 :                 const SfxPoolItem* pItem = 0;
    1931         [ #  # ]:          0 :                 if ( pArgs )
    1932 [ #  # ][ #  # ]:          0 :                     pArgs->GetItemState(GetPool().GetWhich(SID_CHARMAP), false, &pItem);
    1933         [ #  # ]:          0 :                 if ( pItem )
    1934                 :            :                 {
    1935 [ #  # ][ #  # ]:          0 :                     const SfxStringItem* pStringItem = PTR_CAST( SfxStringItem, pItem );
         [ #  # ][ #  # ]
    1936         [ #  # ]:          0 :                     if ( pStringItem )
    1937         [ #  # ]:          0 :                         aChars = pStringItem->GetValue();
    1938                 :          0 :                     const SfxPoolItem* pFtItem = NULL;
    1939 [ #  # ][ #  # ]:          0 :                     pArgs->GetItemState( GetPool().GetWhich(SID_ATTR_SPECIALCHAR), false, &pFtItem);
    1940 [ #  # ][ #  # ]:          0 :                     const SfxStringItem* pFontItem = PTR_CAST( SfxStringItem, pFtItem );
         [ #  # ][ #  # ]
    1941         [ #  # ]:          0 :                     if ( pFontItem )
    1942         [ #  # ]:          0 :                         aFontName = pFontItem->GetValue();
    1943                 :            :                 }
    1944                 :            : 
    1945         [ #  # ]:          0 :                 if ( aChars.Len() )
    1946                 :            :                 {
    1947         [ #  # ]:          0 :                     Font aFont;
    1948                 :            :                     pTabViewShell->GetSelectionPattern()->GetFont( aFont, SC_AUTOCOL_BLACK, NULL, NULL, NULL,
    1949 [ #  # ][ #  # ]:          0 :                                                                 pTabViewShell->GetSelectionScriptType() );
                 [ #  # ]
    1950         [ #  # ]:          0 :                     if ( aFontName.Len() )
    1951 [ #  # ][ #  # ]:          0 :                         aFont = Font( aFontName, Size(1,1) );
                 [ #  # ]
    1952         [ #  # ]:          0 :                     pTabViewShell->InsertSpecialChar( aChars, aFont );
    1953 [ #  # ][ #  # ]:          0 :                     if( ! rReq.IsAPI() )
    1954 [ #  # ][ #  # ]:          0 :                         rReq.Done();
    1955 [ #  # ][ #  # ]:          0 :                 }
    1956                 :            :             }
    1957                 :            :             else
    1958                 :            :             {
    1959         [ #  # ]:          0 :                 SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
    1960                 :            : 
    1961                 :            :                 // font color doesn't matter here
    1962         [ #  # ]:          0 :                 Font             aCurFont;
    1963                 :            :                 pTabViewShell->GetSelectionPattern()->GetFont( aCurFont, SC_AUTOCOL_BLACK, NULL, NULL, NULL,
    1964 [ #  # ][ #  # ]:          0 :                                                                 pTabViewShell->GetSelectionScriptType() );
                 [ #  # ]
    1965                 :            : 
    1966         [ #  # ]:          0 :                 SfxAllItemSet aSet( GetPool() );
    1967 [ #  # ][ #  # ]:          0 :                 aSet.Put( SfxBoolItem( FN_PARAM_1, false ) );
                 [ #  # ]
    1968 [ #  # ][ #  # ]:          0 :                 aSet.Put( SvxFontItem( aCurFont.GetFamily(), aCurFont.GetName(), aCurFont.GetStyleName(), aCurFont.GetPitch(), aCurFont.GetCharSet(), GetPool().GetWhich(SID_ATTR_CHAR_FONT) ) );
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
                 [ #  # ]
    1969                 :            : 
    1970                 :            :                 SfxAbstractDialog* pDlg = pFact->CreateSfxDialog( pTabViewShell->GetDialogParent(), aSet,
    1971 [ #  # ][ #  # ]:          0 :                     pTabViewShell->GetViewFrame()->GetFrame().GetFrameInterface(), RID_SVXDLG_CHARMAP );
         [ #  # ][ #  # ]
    1972                 :            : 
    1973 [ #  # ][ #  # ]:          0 :                 if ( pDlg->Execute() == RET_OK )
    1974                 :            :                 {
    1975 [ #  # ][ #  # ]:          0 :                     SFX_ITEMSET_ARG( pDlg->GetOutputItemSet(), pItem, SfxStringItem, SID_CHARMAP, false );
                 [ #  # ]
    1976 [ #  # ][ #  # ]:          0 :                     SFX_ITEMSET_ARG( pDlg->GetOutputItemSet(), pFontItem, SvxFontItem, SID_ATTR_CHAR_FONT, false );
                 [ #  # ]
    1977                 :            : 
    1978 [ #  # ][ #  # ]:          0 :                     if ( pItem && pFontItem )
    1979                 :            :                     {
    1980         [ #  # ]:          0 :                         Font aNewFont( pFontItem->GetFamilyName(), pFontItem->GetStyleName(), Size(1,1) );
    1981         [ #  # ]:          0 :                         aNewFont.SetCharSet( pFontItem->GetCharSet() );
    1982         [ #  # ]:          0 :                         aNewFont.SetPitch( pFontItem->GetPitch() );
    1983         [ #  # ]:          0 :                         pTabViewShell->InsertSpecialChar( pItem->GetValue(), aNewFont );
    1984         [ #  # ]:          0 :                         rReq.AppendItem( *pFontItem );
    1985         [ #  # ]:          0 :                         rReq.AppendItem( *pItem );
    1986 [ #  # ][ #  # ]:          0 :                         rReq.Done();
    1987                 :            :                     }
    1988                 :            :                 }
    1989 [ #  # ][ #  # ]:          0 :                 delete pDlg;
         [ #  # ][ #  # ]
    1990                 :            :             }
    1991                 :          0 :             break;
    1992                 :            : 
    1993                 :            :         case SID_SELECT_SCENARIO:
    1994                 :            :             {
    1995                 :            :                 // Testing
    1996                 :            : 
    1997         [ #  # ]:          0 :                 if ( pReqArgs )
    1998                 :            :                 {
    1999                 :            :                     const SfxStringItem* pItem =
    2000                 :          0 :                         (const SfxStringItem*)&pReqArgs->Get( SID_SELECT_SCENARIO );
    2001                 :            : 
    2002         [ #  # ]:          0 :                     if( pItem )
    2003                 :            :                     {
    2004                 :          0 :                         pTabViewShell->UseScenario( pItem->GetValue() );
    2005                 :            :                         //! why should the return value be valid?!?!
    2006         [ #  # ]:          0 :                         rReq.SetReturnValue( SfxStringItem( SID_SELECT_SCENARIO, pItem->GetValue() ) );
    2007                 :          0 :                         rReq.Done();
    2008                 :            :                     }
    2009                 :            :                     else
    2010                 :            :                     {
    2011                 :            :                         OSL_FAIL("NULL");
    2012                 :            :                     }
    2013                 :            :                 }
    2014                 :            :             }
    2015                 :          0 :             break;
    2016                 :            : 
    2017                 :            :         case SID_HYPERLINK_SETLINK:
    2018         [ #  # ]:          0 :             if( pReqArgs )
    2019                 :            :             {
    2020                 :            :                 const SfxPoolItem* pItem;
    2021 [ #  # ][ #  # ]:          0 :                 if( pReqArgs->HasItem( SID_HYPERLINK_SETLINK, &pItem ) )
    2022                 :            :                 {
    2023                 :          0 :                     const SvxHyperlinkItem* pHyper = (const SvxHyperlinkItem*) pItem;
    2024                 :          0 :                     const String& rName   = pHyper->GetName();
    2025                 :          0 :                     const String& rURL    = pHyper->GetURL();
    2026                 :          0 :                     const String& rTarget = pHyper->GetTargetFrame();
    2027                 :          0 :                     sal_uInt16 nType = (sal_uInt16) pHyper->GetInsertMode();
    2028                 :            : 
    2029         [ #  # ]:          0 :                     pTabViewShell->InsertURL( rName, rURL, rTarget, nType );
    2030         [ #  # ]:          0 :                     rReq.Done();
    2031                 :            :                 }
    2032                 :            :                 else
    2033         [ #  # ]:          0 :                     rReq.Ignore();
    2034                 :            :             }
    2035                 :          0 :             break;
    2036                 :            : 
    2037                 :            :         case SID_OPENDLG_CONDFRMT:
    2038                 :            :             {
    2039         [ #  # ]:          0 :                 ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
    2040                 :            :                 OSL_ENSURE(pFact, "ScAbstractFactory create fail!");
    2041                 :            : 
    2042         [ #  # ]:          0 :                 ScRangeList aRangeList;
    2043                 :          0 :                 ScViewData* pData = GetViewData();
    2044 [ #  # ][ #  # ]:          0 :                 pData->GetMarkData().FillRangeListWithMarks(&aRangeList, false);
    2045         [ #  # ]:          0 :                 ScDocument* pDoc = pData->GetDocument();
    2046                 :            : 
    2047                 :          0 :                 ScAddress aPos(pData->GetCurX(), pData->GetCurY(), pData->GetTabNo());
    2048 [ #  # ][ #  # ]:          0 :                 if(aRangeList.empty())
    2049                 :            :                 {
    2050         [ #  # ]:          0 :                     ScRange* pRange = new ScRange(aPos);
    2051         [ #  # ]:          0 :                     aRangeList.push_back(pRange);
    2052                 :            :                 }
    2053                 :            : 
    2054                 :          0 :                 AbstractScCondFormatDlg* pDlg = NULL;
    2055         [ #  # ]:          0 :                 const ScConditionalFormat* pCondFormat = pDoc->GetCondFormat(aPos.Col(), aPos.Row(), aPos.Tab());
    2056         [ #  # ]:          0 :                 if(pCondFormat)
    2057                 :            :                 {
    2058 [ #  # ][ #  # ]:          0 :                     pDlg = pFact->CreateScCondFormatDlg( pTabViewShell->GetDialogParent(), pDoc, pCondFormat, pCondFormat->GetRange(), aPos, RID_SCDLG_CONDFORMAT );
    2059                 :            :                 }
    2060                 :            :                 else
    2061                 :            :                 {
    2062 [ #  # ][ #  # ]:          0 :                     pDlg = pFact->CreateScCondFormatDlg( pTabViewShell->GetDialogParent(), pDoc, NULL, aRangeList, aPos, RID_SCDLG_CONDFORMAT );
    2063                 :            :                 }
    2064                 :            : 
    2065 [ #  # ][ #  # ]:          0 :                 if(pDlg->Execute() == RET_OK)
    2066                 :            :                 {
    2067         [ #  # ]:          0 :                     ScConditionalFormat* pFormat = pDlg->GetConditionalFormat();
    2068                 :          0 :                     sal_uLong nOldIndex = 0;
    2069         [ #  # ]:          0 :                     if(pCondFormat)
    2070                 :          0 :                         nOldIndex = pCondFormat->GetKey();
    2071         [ #  # ]:          0 :                     pData->GetDocShell()->GetDocFunc().ReplaceConditionalFormat( nOldIndex, pFormat, pData->GetTabNo(), pFormat->GetRange() );
    2072                 :            :                 }
    2073 [ #  # ][ #  # ]:          0 :                 delete pDlg;
                 [ #  # ]
    2074                 :            :             }
    2075                 :          0 :             break;
    2076                 :            : 
    2077                 :            :         case SID_OPENDLG_CONDFRMT_MANAGER:
    2078                 :            :             {
    2079         [ #  # ]:          0 :                 ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
    2080                 :            :                 OSL_ENSURE(pFact, "ScAbstractFactory create fail!");
    2081                 :            : 
    2082         [ #  # ]:          0 :                 ScRangeList aRangeList;
    2083                 :          0 :                 ScViewData* pData = GetViewData();
    2084 [ #  # ][ #  # ]:          0 :                 pData->GetMarkData().FillRangeListWithMarks(&aRangeList, false);
    2085         [ #  # ]:          0 :                 ScDocument* pDoc = pData->GetDocument();
    2086                 :            : 
    2087                 :          0 :                 ScAddress aPos(pData->GetCurX(), pData->GetCurY(), pData->GetTabNo());
    2088 [ #  # ][ #  # ]:          0 :                 if(aRangeList.empty())
    2089                 :            :                 {
    2090         [ #  # ]:          0 :                     ScRange* pRange = new ScRange(aPos);
    2091         [ #  # ]:          0 :                     aRangeList.push_back(pRange);
    2092                 :            :                 }
    2093                 :            : 
    2094         [ #  # ]:          0 :                 ScConditionalFormatList* pList = pDoc->GetCondFormList( aPos.Tab() );
    2095 [ #  # ][ #  # ]:          0 :                 AbstractScCondFormatManagerDlg* pDlg = pFact->CreateScCondFormatMgrDlg( pTabViewShell->GetDialogParent(), pDoc, pList, aRangeList, aPos, RID_SCDLG_COND_FORMAT_MANAGER);
    2096 [ #  # ][ #  # ]:          0 :                 if(pDlg->Execute() == RET_OK)
    2097                 :            :                 {
    2098 [ #  # ][ #  # ]:          0 :                     pDoc->SetCondFormList(pDlg->GetConditionalFormatList(), aPos.Tab());
    2099                 :            :                 }
    2100 [ #  # ][ #  # ]:          0 :                 delete pDlg;
                 [ #  # ]
    2101                 :            :             }
    2102                 :          0 :             break;
    2103                 :            : 
    2104                 :            :         case SID_COLORSCALE:
    2105                 :            :             {
    2106                 :          0 :                 ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
    2107                 :            :                 OSL_ENSURE(pFact, "ScAbstractFactory create fail!");
    2108                 :            : 
    2109                 :          0 :                 ScDocument* pDoc = GetViewData()->GetDocument();
    2110                 :          0 :                 AbstractScDataBarSettingsDlg* pDlg = pFact->CreateScDataBarSetttingsDlg( pTabViewShell->GetDialogParent(), pDoc, RID_SCDLG_DATABAR );
    2111                 :            :                 OSL_ENSURE(pDlg, "Dialog create fail!");
    2112                 :          0 :                 pDlg->Execute();
    2113         [ #  # ]:          0 :                 delete pDlg;
    2114                 :            :             }
    2115                 :          0 :             break;
    2116                 :            : 
    2117                 :            :         case SID_DATABAR:
    2118                 :            :             {
    2119                 :          0 :                 ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
    2120                 :            :                 OSL_ENSURE(pFact, "ScAbstractFactory create fail!");
    2121                 :            : 
    2122                 :          0 :                 ScDocument* pDoc = GetViewData()->GetDocument();
    2123                 :          0 :                 AbstractScDataBarSettingsDlg* pDlg = pFact->CreateScDataBarSetttingsDlg( pTabViewShell->GetDialogParent(), pDoc, RID_SCDLG_DATABAR );
    2124                 :            :                 OSL_ENSURE(pDlg, "Dialog create fail!");
    2125                 :          0 :                 if(pDlg->Execute() == RET_OK)
    2126                 :            :                 {
    2127                 :            :                     //add here code that handles the data bar inserting
    2128                 :            :                 }
    2129         [ #  # ]:          0 :                 delete pDlg;
    2130                 :            :             }
    2131                 :          0 :             break;
    2132                 :            : 
    2133                 :            :         case SID_EXTERNAL_SOURCE:
    2134                 :            :             {
    2135         [ #  # ]:          0 :                 String aFile;
    2136         [ #  # ]:          0 :                 String aFilter;
    2137         [ #  # ]:          0 :                 String aOptions;
    2138         [ #  # ]:          0 :                 String aSource;
    2139                 :          0 :                 sal_uLong nRefresh=0;
    2140                 :            : 
    2141 [ #  # ][ #  # ]:          0 :                 SFX_REQUEST_ARG( rReq, pFile, SfxStringItem, SID_FILE_NAME, false );
    2142 [ #  # ][ #  # ]:          0 :                 SFX_REQUEST_ARG( rReq, pSource, SfxStringItem, FN_PARAM_1, false );
    2143 [ #  # ][ #  # ]:          0 :                 if ( pFile && pSource )
    2144                 :            :                 {
    2145         [ #  # ]:          0 :                     aFile = pFile->GetValue();
    2146         [ #  # ]:          0 :                     aSource = pSource->GetValue();
    2147 [ #  # ][ #  # ]:          0 :                     SFX_REQUEST_ARG( rReq, pFilter, SfxStringItem, SID_FILTER_NAME, false );
    2148         [ #  # ]:          0 :                     if ( pFilter )
    2149         [ #  # ]:          0 :                         aFilter = pFilter->GetValue();
    2150 [ #  # ][ #  # ]:          0 :                     SFX_REQUEST_ARG( rReq, pOptions, SfxStringItem, SID_FILE_FILTEROPTIONS, false );
    2151         [ #  # ]:          0 :                     if ( pOptions )
    2152         [ #  # ]:          0 :                         aOptions = pOptions->GetValue();
    2153 [ #  # ][ #  # ]:          0 :                     SFX_REQUEST_ARG( rReq, pRefresh, SfxUInt32Item, FN_PARAM_2, false );
    2154         [ #  # ]:          0 :                     if ( pRefresh )
    2155                 :          0 :                         nRefresh = pRefresh->GetValue();
    2156                 :            :                 }
    2157                 :            :                 else
    2158                 :            :                 {
    2159         [ #  # ]:          0 :                     ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
    2160                 :            :                     OSL_ENSURE(pFact, "ScAbstractFactory create fail!");
    2161                 :            : 
    2162 [ #  # ][ #  # ]:          0 :                     delete pImpl->m_pLinkedDlg;
    2163                 :            :                     pImpl->m_pLinkedDlg =
    2164                 :            :                         pFact->CreateScLinkedAreaDlg( pTabViewShell->GetDialogParent(),
    2165 [ #  # ][ #  # ]:          0 :                                                       RID_SCDLG_LINKAREA);
    2166                 :            :                     OSL_ENSURE(pImpl->m_pLinkedDlg, "Dialog create fail!");
    2167 [ #  # ][ #  # ]:          0 :                     delete pImpl->m_pRequest;
    2168 [ #  # ][ #  # ]:          0 :                     pImpl->m_pRequest = new SfxRequest( rReq );
    2169 [ #  # ][ #  # ]:          0 :                     pImpl->m_pLinkedDlg->StartExecuteModal( LINK( this, ScCellShell, DialogClosed ) );
    2170                 :          0 :                     return;
    2171                 :            :                 }
    2172                 :            : 
    2173 [ #  # ][ #  # ]:          0 :                 ExecuteExternalSource( aFile, aFilter, aOptions, aSource, nRefresh, rReq );
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
                 [ #  # ]
    2174                 :            :             }
    2175                 :          0 :             break;
    2176                 :            : 
    2177                 :            :         //
    2178                 :            :         //
    2179                 :            :         //
    2180                 :            : 
    2181                 :            :         default:
    2182                 :            :             OSL_FAIL("incorrect slot in ExecuteEdit");
    2183                 :          0 :             break;
    2184                 :            :     }
    2185                 :            : }
    2186                 :            : 
    2187                 :          0 : void ScCellShell::ExecuteTrans( SfxRequest& rReq )
    2188                 :            : {
    2189                 :          0 :     sal_Int32 nType = ScViewUtil::GetTransliterationType( rReq.GetSlot() );
    2190         [ #  # ]:          0 :     if ( nType )
    2191                 :            :     {
    2192                 :          0 :         GetViewData()->GetView()->TransliterateText( nType );
    2193                 :          0 :         rReq.Done();
    2194                 :            :     }
    2195                 :          0 : }
    2196                 :            : 
    2197                 :          0 : void ScCellShell::ExecuteRotateTrans( SfxRequest& rReq )
    2198                 :            : {
    2199         [ #  # ]:          0 :     if( rReq.GetSlot() == SID_TRANSLITERATE_ROTATE_CASE )
    2200                 :          0 :         GetViewData()->GetView()->TransliterateText( m_aRotateCase.getNextMode() );
    2201                 :          0 : }
    2202                 :            : 
    2203                 :          0 : void ScCellShell::ExecuteExternalSource(
    2204                 :            :     const String& _rFile, const String& _rFilter, const String& _rOptions,
    2205                 :            :     const String& _rSource, sal_uLong _nRefresh, SfxRequest& _rRequest )
    2206                 :            : {
    2207 [ #  # ][ #  # ]:          0 :     if ( _rFile.Len() && _rSource.Len() )         // filter may be empty
                 [ #  # ]
    2208                 :            :     {
    2209                 :          0 :         ScRange aLinkRange;
    2210                 :          0 :         sal_Bool bMove = false;
    2211                 :            : 
    2212                 :          0 :         ScViewData* pData = GetViewData();
    2213         [ #  # ]:          0 :         ScMarkData& rMark = pData->GetMarkData();
    2214         [ #  # ]:          0 :         rMark.MarkToSimple();
    2215         [ #  # ]:          0 :         if ( rMark.IsMarked() )
    2216                 :            :         {
    2217         [ #  # ]:          0 :             rMark.GetMarkArea( aLinkRange );
    2218                 :          0 :             bMove = sal_True;                       // insert/delete cells to fit range
    2219                 :            :         }
    2220                 :            :         else
    2221                 :          0 :             aLinkRange = ScRange( pData->GetCurX(), pData->GetCurY(), pData->GetTabNo() );
    2222                 :            : 
    2223         [ #  # ]:          0 :         pData->GetDocFunc().InsertAreaLink( _rFile, _rFilter, _rOptions, _rSource,
    2224         [ #  # ]:          0 :                                             aLinkRange, _nRefresh, bMove, false );
    2225         [ #  # ]:          0 :         _rRequest.Done();
    2226                 :            :     }
    2227                 :            :     else
    2228                 :          0 :         _rRequest.Ignore();
    2229                 :          0 : }
    2230                 :            : 
    2231                 :            : namespace {
    2232                 :            : 
    2233                 :          0 : bool isDPSourceValid(const ScDPObject& rDPObj)
    2234                 :            : {
    2235         [ #  # ]:          0 :     if (rDPObj.IsImportData())
    2236                 :            :     {
    2237                 :            :         // If the data type is database, check if the database is still valid.
    2238                 :          0 :         const ScImportSourceDesc* pDesc = rDPObj.GetImportSourceDesc();
    2239         [ #  # ]:          0 :         if (!pDesc)
    2240                 :          0 :             return false;
    2241                 :            : 
    2242                 :          0 :         const ScDPSaveData* pSaveData = rDPObj.GetSaveData();
    2243                 :          0 :         const ScDPDimensionSaveData* pDimData = NULL;
    2244         [ #  # ]:          0 :         if (pSaveData)
    2245                 :          0 :             pDimData = pSaveData->GetExistingDimensionData();
    2246                 :            : 
    2247                 :          0 :         const ScDPCache* pCache = pDesc->CreateCache(pDimData);
    2248         [ #  # ]:          0 :         if (!pCache)
    2249                 :            :             // cashe creation failed, probably due to invalid connection.
    2250                 :          0 :             return false;
    2251                 :            :     }
    2252                 :          0 :     return true;
    2253                 :            : }
    2254                 :            : 
    2255                 :            : }
    2256                 :            : 
    2257                 :          0 : void ScCellShell::ExecuteDataPilotDialog()
    2258                 :            : {
    2259         [ #  # ]:          0 :     ScModule* pScMod = SC_MOD();
    2260                 :          0 :     ScTabViewShell* pTabViewShell   = GetViewData()->GetViewShell();
    2261                 :          0 :     ScViewData* pData = GetViewData();
    2262         [ #  # ]:          0 :     ScDocument* pDoc = pData->GetDocument();
    2263                 :            : 
    2264                 :          0 :     ::boost::scoped_ptr<ScDPObject> pNewDPObject(NULL);
    2265                 :            : 
    2266                 :            :     // ScPivot is no longer used...
    2267                 :            :     ScDPObject* pDPObj = pDoc->GetDPAtCursor(
    2268                 :          0 :                                 pData->GetCurX(), pData->GetCurY(),
    2269         [ #  # ]:          0 :                                 pData->GetTabNo() );
    2270         [ #  # ]:          0 :     if ( pDPObj )   // on an existing table?
    2271                 :            :     {
    2272 [ #  # ][ #  # ]:          0 :         if (isDPSourceValid(*pDPObj))
    2273 [ #  # ][ #  # ]:          0 :             pNewDPObject.reset(new ScDPObject(*pDPObj));
                 [ #  # ]
    2274                 :            :     }
    2275                 :            :     else            // create new table
    2276                 :            :     {
    2277                 :          0 :         sal_uLong nSrcErrorId = 0;
    2278                 :            : 
    2279                 :            :         //  select database range or data
    2280         [ #  # ]:          0 :         pTabViewShell->GetDBData( true, SC_DB_OLD );
    2281         [ #  # ]:          0 :         ScMarkData& rMark = GetViewData()->GetMarkData();
    2282 [ #  # ][ #  # ]:          0 :         if ( !rMark.IsMarked() && !rMark.IsMultiMarked() )
                 [ #  # ]
    2283         [ #  # ]:          0 :             pTabViewShell->MarkDataArea( false );
    2284                 :            : 
    2285                 :            :         //  output to cursor position for non-sheet data
    2286                 :          0 :         ScAddress aDestPos( pData->GetCurX(), pData->GetCurY(),
    2287                 :          0 :                                 pData->GetTabNo() );
    2288                 :            : 
    2289                 :            :         //  first select type of source data
    2290                 :            : 
    2291         [ #  # ]:          0 :         bool bEnableExt = ScDPObject::HasRegisteredSources();
    2292                 :            : 
    2293         [ #  # ]:          0 :         ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
    2294                 :            :         OSL_ENSURE(pFact, "ScAbstractFactory create fail!");
    2295                 :            : 
    2296                 :            :         ::boost::scoped_ptr<AbstractScDataPilotSourceTypeDlg> pTypeDlg(
    2297                 :            :             pFact->CreateScDataPilotSourceTypeDlg(
    2298 [ #  # ][ #  # ]:          0 :                 pTabViewShell->GetDialogParent(), bEnableExt, RID_SCDLG_DAPITYPE));
    2299                 :            : 
    2300                 :            :         // Populate named ranges (if any).
    2301         [ #  # ]:          0 :         ScRangeName* pRangeName = pDoc->GetRangeName();
    2302         [ #  # ]:          0 :         if (pRangeName)
    2303                 :            :         {
    2304 [ #  # ][ #  # ]:          0 :             ScRangeName::const_iterator itr = pRangeName->begin(), itrEnd = pRangeName->end();
         [ #  # ][ #  # ]
    2305 [ #  # ][ #  # ]:          0 :             for (; itr != itrEnd; ++itr)
                 [ #  # ]
    2306 [ #  # ][ #  # ]:          0 :                 pTypeDlg->AppendNamedRange(itr->second->GetName());
    2307                 :            :         }
    2308                 :            : 
    2309                 :            :         OSL_ENSURE(pTypeDlg, "Dialog create fail!");
    2310 [ #  # ][ #  # ]:          0 :         if ( pTypeDlg->Execute() == RET_OK )
    2311                 :            :         {
    2312 [ #  # ][ #  # ]:          0 :             if ( pTypeDlg->IsExternal() )
    2313                 :            :             {
    2314         [ #  # ]:          0 :                 uno::Sequence<rtl::OUString> aSources = ScDPObject::GetRegisteredSources();
    2315                 :            :                 ::boost::scoped_ptr<AbstractScDataPilotServiceDlg> pServDlg(
    2316                 :            :                     pFact->CreateScDataPilotServiceDlg(
    2317 [ #  # ][ #  # ]:          0 :                         pTabViewShell->GetDialogParent(), aSources, RID_SCDLG_DAPISERVICE));
    2318                 :            : 
    2319                 :            :                 OSL_ENSURE(pServDlg, "Dialog create fail!");
    2320 [ #  # ][ #  # ]:          0 :                 if ( pServDlg->Execute() == RET_OK )
    2321                 :            :                 {
    2322                 :            :                     ScDPServiceDesc aServDesc(
    2323                 :          0 :                             pServDlg->GetServiceName(),
    2324                 :          0 :                             pServDlg->GetParSource(),
    2325                 :          0 :                             pServDlg->GetParName(),
    2326                 :          0 :                             pServDlg->GetParUser(),
    2327         [ #  # ]:          0 :                             pServDlg->GetParPass() );
           [ #  #  #  # ]
           [ #  #  #  # ]
           [ #  #  #  # ]
           [ #  #  #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
                 [ #  # ]
    2328 [ #  # ][ #  # ]:          0 :                     pNewDPObject.reset(new ScDPObject(pDoc));
                 [ #  # ]
    2329         [ #  # ]:          0 :                     pNewDPObject->SetServiceData( aServDesc );
    2330 [ #  # ][ #  # ]:          0 :                 }
    2331                 :            :             }
    2332 [ #  # ][ #  # ]:          0 :             else if ( pTypeDlg->IsDatabase() )
    2333                 :            :             {
    2334                 :            :                 OSL_ENSURE(pFact, "ScAbstractFactory create fail!");
    2335                 :            : 
    2336                 :            :                 ::boost::scoped_ptr<AbstractScDataPilotDatabaseDlg> pDataDlg(
    2337                 :            :                     pFact->CreateScDataPilotDatabaseDlg(
    2338 [ #  # ][ #  # ]:          0 :                         pTabViewShell->GetDialogParent(), RID_SCDLG_DAPIDATA));
    2339                 :            : 
    2340                 :            :                 OSL_ENSURE(pDataDlg, "Dialog create fail!");
    2341 [ #  # ][ #  # ]:          0 :                 if ( pDataDlg->Execute() == RET_OK )
    2342                 :            :                 {
    2343                 :          0 :                     ScImportSourceDesc aImpDesc(pDoc);
    2344         [ #  # ]:          0 :                     pDataDlg->GetValues( aImpDesc );
    2345 [ #  # ][ #  # ]:          0 :                     pNewDPObject.reset(new ScDPObject(pDoc));
                 [ #  # ]
    2346         [ #  # ]:          0 :                     pNewDPObject->SetImportDesc( aImpDesc );
    2347         [ #  # ]:          0 :                 }
    2348                 :            :             }
    2349 [ #  # ][ #  # ]:          0 :             else if (pTypeDlg->IsNamedRange())
    2350                 :            :             {
    2351         [ #  # ]:          0 :                 OUString aName = pTypeDlg->GetSelectedNamedRange();
    2352         [ #  # ]:          0 :                 ScSheetSourceDesc aShtDesc(pDoc);
    2353         [ #  # ]:          0 :                 aShtDesc.SetRangeName(aName);
    2354         [ #  # ]:          0 :                 nSrcErrorId = aShtDesc.CheckSourceRange();
    2355         [ #  # ]:          0 :                 if (!nSrcErrorId)
    2356                 :            :                 {
    2357 [ #  # ][ #  # ]:          0 :                     pNewDPObject.reset(new ScDPObject(pDoc));
                 [ #  # ]
    2358         [ #  # ]:          0 :                     pNewDPObject->SetSheetDesc(aShtDesc);
    2359         [ #  # ]:          0 :                 }
    2360                 :            :             }
    2361                 :            :             else        // selection
    2362                 :            :             {
    2363                 :            :                 //! use database ranges (select before type dialog?)
    2364                 :          0 :                 ScRange aRange;
    2365         [ #  # ]:          0 :                 ScMarkType eType = GetViewData()->GetSimpleArea(aRange);
    2366         [ #  # ]:          0 :                 if ( (eType & SC_MARK_SIMPLE) == SC_MARK_SIMPLE )
    2367                 :            :                 {
    2368                 :            :                     // Shrink the range to the data area.
    2369                 :          0 :                     SCCOL nStartCol = aRange.aStart.Col(), nEndCol = aRange.aEnd.Col();
    2370                 :          0 :                     SCROW nStartRow = aRange.aStart.Row(), nEndRow = aRange.aEnd.Row();
    2371 [ #  # ][ #  # ]:          0 :                     if (pDoc->ShrinkToDataArea(aRange.aStart.Tab(), nStartCol, nStartRow, nEndCol, nEndRow))
    2372                 :            :                     {
    2373                 :          0 :                         aRange.aStart.SetCol(nStartCol);
    2374                 :          0 :                         aRange.aStart.SetRow(nStartRow);
    2375                 :          0 :                         aRange.aEnd.SetCol(nEndCol);
    2376                 :          0 :                         aRange.aEnd.SetRow(nEndRow);
    2377         [ #  # ]:          0 :                         rMark.SetMarkArea(aRange);
    2378         [ #  # ]:          0 :                         pTabViewShell->MarkRange(aRange);
    2379                 :            :                     }
    2380                 :            : 
    2381                 :          0 :                     bool bOK = true;
    2382 [ #  # ][ #  # ]:          0 :                     if ( pDoc->HasSubTotalCells( aRange ) )
    2383                 :            :                     {
    2384                 :            :                         //  confirm selection if it contains SubTotal cells
    2385                 :            : 
    2386                 :            :                         QueryBox aBox( pTabViewShell->GetDialogParent(),
    2387                 :            :                                         WinBits(WB_YES_NO | WB_DEF_YES),
    2388 [ #  # ][ #  # ]:          0 :                                         ScGlobal::GetRscString(STR_DATAPILOT_SUBTOTAL) );
                 [ #  # ]
    2389 [ #  # ][ #  # ]:          0 :                         if (aBox.Execute() == RET_NO)
    2390         [ #  # ]:          0 :                             bOK = false;
    2391                 :            :                     }
    2392         [ #  # ]:          0 :                     if (bOK)
    2393                 :            :                     {
    2394         [ #  # ]:          0 :                         ScSheetSourceDesc aShtDesc(pDoc);
    2395         [ #  # ]:          0 :                         aShtDesc.SetSourceRange(aRange);
    2396         [ #  # ]:          0 :                         nSrcErrorId = aShtDesc.CheckSourceRange();
    2397         [ #  # ]:          0 :                         if (!nSrcErrorId)
    2398                 :            :                         {
    2399 [ #  # ][ #  # ]:          0 :                             pNewDPObject.reset(new ScDPObject(pDoc));
                 [ #  # ]
    2400         [ #  # ]:          0 :                             pNewDPObject->SetSheetDesc( aShtDesc );
    2401                 :            :                         }
    2402                 :            : 
    2403                 :            :                         //  output below source data
    2404         [ #  # ]:          0 :                         if ( aRange.aEnd.Row()+2 <= MAXROW - 4 )
    2405                 :          0 :                             aDestPos = ScAddress( aRange.aStart.Col(),
    2406                 :          0 :                                                     aRange.aEnd.Row()+2,
    2407         [ #  # ]:          0 :                                                     aRange.aStart.Tab() );
    2408                 :            :                     }
    2409                 :            :                 }
    2410                 :            :             }
    2411                 :            :         }
    2412                 :            : 
    2413         [ #  # ]:          0 :         if (nSrcErrorId)
    2414                 :            :         {
    2415                 :            :             // Error occurred during data creation.  Launch an error and bail out.
    2416 [ #  # ][ #  # ]:          0 :             InfoBox aBox(pTabViewShell->GetDialogParent(), ScGlobal::GetRscString(nSrcErrorId));
                 [ #  # ]
    2417         [ #  # ]:          0 :             aBox.Execute();
    2418         [ #  # ]:          0 :             return;
    2419                 :            :         }
    2420                 :            : 
    2421         [ #  # ]:          0 :         if ( pNewDPObject )
    2422 [ #  # ][ #  # ]:          0 :             pNewDPObject->SetOutRange( aDestPos );
                 [ #  # ]
    2423                 :            :     }
    2424                 :            : 
    2425         [ #  # ]:          0 :     pTabViewShell->SetDialogDPObject( pNewDPObject.get() );   // is copied
    2426         [ #  # ]:          0 :     if ( pNewDPObject )
    2427                 :            :     {
    2428                 :            :         //  start layout dialog
    2429                 :            : 
    2430         [ #  # ]:          0 :         sal_uInt16 nId  = ScPivotLayoutWrapper::GetChildWindowId();
    2431                 :          0 :         SfxViewFrame* pViewFrm = pTabViewShell->GetViewFrame();
    2432         [ #  # ]:          0 :         SfxChildWindow* pWnd = pViewFrm->GetChildWindow( nId );
    2433         [ #  # ]:          0 :         pScMod->SetRefDialog( nId, pWnd ? false : true );
    2434 [ #  # ][ #  # ]:          0 :     }
    2435                 :            : }
    2436                 :            : 
    2437                 :          0 : void ScCellShell::ExecuteSubtotals(SfxRequest& rReq)
    2438                 :            : {
    2439                 :          0 :     ScTabViewShell* pTabViewShell = GetViewData()->GetViewShell();
    2440                 :          0 :     const SfxItemSet* pArgs = rReq.GetArgs();
    2441         [ #  # ]:          0 :     if ( pArgs )
    2442                 :            :     {
    2443         [ #  # ]:          0 :         pTabViewShell->DoSubTotals( ((const ScSubTotalItem&) pArgs->Get( SCITEM_SUBTDATA )).
    2444         [ #  # ]:          0 :                         GetSubTotalData() );
    2445         [ #  # ]:          0 :         rReq.Done();
    2446                 :            :         return;
    2447                 :            :     }
    2448                 :            : 
    2449                 :          0 :     SfxAbstractTabDialog * pDlg = NULL;
    2450         [ #  # ]:          0 :     ScSubTotalParam aSubTotalParam;
    2451         [ #  # ]:          0 :     SfxItemSet aArgSet( GetPool(), SCITEM_SUBTDATA, SCITEM_SUBTDATA );
    2452                 :            : 
    2453                 :            :     // Only get existing named database range.
    2454         [ #  # ]:          0 :     ScDBData* pDBData = pTabViewShell->GetDBData(true, SC_DB_OLD);
    2455         [ #  # ]:          0 :     if (!pDBData)
    2456                 :            :     {
    2457                 :            :         // No existing DB data at this position.  Create an
    2458                 :            :         // anonymous DB.
    2459         [ #  # ]:          0 :         pDBData = pTabViewShell->GetAnonymousDBData();
    2460                 :          0 :         ScRange aDataRange;
    2461         [ #  # ]:          0 :         pDBData->GetArea(aDataRange);
    2462         [ #  # ]:          0 :         pTabViewShell->MarkRange(aDataRange, false);
    2463                 :            :     }
    2464         [ #  # ]:          0 :     if (!pDBData)
    2465                 :            :         return;
    2466                 :            : 
    2467         [ #  # ]:          0 :     pDBData->GetSubTotalParam( aSubTotalParam );
    2468                 :          0 :     aSubTotalParam.bRemoveOnly = false;
    2469                 :            : 
    2470 [ #  # ][ #  # ]:          0 :     aArgSet.Put( ScSubTotalItem( SCITEM_SUBTDATA, GetViewData(), &aSubTotalParam ) );
                 [ #  # ]
    2471         [ #  # ]:          0 :     ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
    2472                 :            :     OSL_ENSURE(pFact, "ScAbstractFactory create fail!");
    2473                 :            : 
    2474 [ #  # ][ #  # ]:          0 :     pDlg = pFact->CreateScSubTotalDlg( pTabViewShell->GetDialogParent(), &aArgSet, RID_SCDLG_SUBTOTALS );
    2475                 :            :     OSL_ENSURE(pDlg, "Dialog create fail!");
    2476         [ #  # ]:          0 :     pDlg->SetCurPageId(1);
    2477                 :            : 
    2478         [ #  # ]:          0 :     short bResult = pDlg->Execute();
    2479                 :            : 
    2480 [ #  # ][ #  # ]:          0 :     if ( (bResult == RET_OK) || (bResult == SCRET_REMOVE) )
    2481                 :            :     {
    2482                 :          0 :         const SfxItemSet* pOutSet = NULL;
    2483                 :            : 
    2484         [ #  # ]:          0 :         if ( bResult == RET_OK )
    2485                 :            :         {
    2486         [ #  # ]:          0 :             pOutSet = pDlg->GetOutputItemSet();
    2487                 :            :             aSubTotalParam =
    2488                 :            :                 ((const ScSubTotalItem&)
    2489         [ #  # ]:          0 :                     pOutSet->Get( SCITEM_SUBTDATA )).
    2490         [ #  # ]:          0 :                         GetSubTotalData();
    2491                 :            :         }
    2492                 :            :         else // if (bResult == SCRET_REMOVE)
    2493                 :            :         {
    2494                 :          0 :             pOutSet = &aArgSet;
    2495                 :          0 :             aSubTotalParam.bRemoveOnly = sal_True;
    2496                 :          0 :             aSubTotalParam.bReplace    = sal_True;
    2497                 :            :             aArgSet.Put( ScSubTotalItem( SCITEM_SUBTDATA,
    2498                 :            :                                          GetViewData(),
    2499 [ #  # ][ #  # ]:          0 :                                          &aSubTotalParam ) );
                 [ #  # ]
    2500                 :            :         }
    2501                 :            : 
    2502         [ #  # ]:          0 :         pTabViewShell->DoSubTotals( aSubTotalParam );
    2503         [ #  # ]:          0 :         rReq.Done( *pOutSet );
    2504                 :            :     }
    2505                 :            :     else
    2506         [ #  # ]:          0 :         GetViewData()->GetDocShell()->CancelAutoDBRange();
    2507                 :            : 
    2508 [ #  # ][ #  # ]:          0 :     delete pDlg;
         [ #  # ][ #  # ]
    2509                 :            : }
    2510                 :            : 
    2511                 :          0 : IMPL_LINK_NOARG(ScCellShell, DialogClosed)
    2512                 :            : {
    2513                 :            :     OSL_ENSURE( pImpl->m_pLinkedDlg, "ScCellShell::DialogClosed(): invalid request" );
    2514                 :            :     OSL_ENSURE( pImpl->m_pRequest, "ScCellShell::DialogClosed(): invalid request" );
    2515 [ #  # ][ #  # ]:          0 :     String sFile, sFilter, sOptions, sSource;
         [ #  # ][ #  # ]
    2516                 :          0 :     sal_uLong nRefresh = 0;
    2517                 :            : 
    2518 [ #  # ][ #  # ]:          0 :     if ( pImpl->m_pLinkedDlg->GetResult() == RET_OK )
    2519                 :            :     {
    2520 [ #  # ][ #  # ]:          0 :         sFile = pImpl->m_pLinkedDlg->GetURL();
                 [ #  # ]
    2521 [ #  # ][ #  # ]:          0 :         sFilter = pImpl->m_pLinkedDlg->GetFilter();
                 [ #  # ]
    2522 [ #  # ][ #  # ]:          0 :         sOptions = pImpl->m_pLinkedDlg->GetOptions();
                 [ #  # ]
    2523 [ #  # ][ #  # ]:          0 :         sSource = pImpl->m_pLinkedDlg->GetSource();
                 [ #  # ]
    2524         [ #  # ]:          0 :         nRefresh = pImpl->m_pLinkedDlg->GetRefresh();
    2525         [ #  # ]:          0 :         if ( sFile.Len() )
    2526 [ #  # ][ #  # ]:          0 :             pImpl->m_pRequest->AppendItem( SfxStringItem( SID_FILE_NAME, sFile ) );
                 [ #  # ]
    2527         [ #  # ]:          0 :         if ( sFilter.Len() )
    2528 [ #  # ][ #  # ]:          0 :             pImpl->m_pRequest->AppendItem( SfxStringItem( SID_FILTER_NAME, sFilter ) );
                 [ #  # ]
    2529         [ #  # ]:          0 :         if ( sOptions.Len() )
    2530 [ #  # ][ #  # ]:          0 :             pImpl->m_pRequest->AppendItem( SfxStringItem( SID_FILE_FILTEROPTIONS, sOptions ) );
                 [ #  # ]
    2531         [ #  # ]:          0 :         if ( sSource.Len() )
    2532 [ #  # ][ #  # ]:          0 :             pImpl->m_pRequest->AppendItem( SfxStringItem( FN_PARAM_1, sSource ) );
                 [ #  # ]
    2533         [ #  # ]:          0 :         if ( nRefresh )
    2534 [ #  # ][ #  # ]:          0 :             pImpl->m_pRequest->AppendItem( SfxUInt32Item( FN_PARAM_2, nRefresh ) );
                 [ #  # ]
    2535                 :            :     }
    2536                 :            : 
    2537         [ #  # ]:          0 :     ExecuteExternalSource( sFile, sFilter, sOptions, sSource, nRefresh, *(pImpl->m_pRequest) );
    2538 [ #  # ][ #  # ]:          0 :     return 0;
         [ #  # ][ #  # ]
    2539 [ +  - ][ +  - ]:        153 : }
    2540                 :            : 
    2541                 :            : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10