LCOV - code coverage report
Current view: top level - libreoffice/sw/source/ui/uiview - view0.cxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 26 277 9.4 %
Date: 2012-12-27 Functions: 11 25 44.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2             : /*
       3             :  * This file is part of the LibreOffice project.
       4             :  *
       5             :  * This Source Code Form is subject to the terms of the Mozilla Public
       6             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       7             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
       8             :  *
       9             :  * This file incorporates work covered by the following license notice:
      10             :  *
      11             :  *   Licensed to the Apache Software Foundation (ASF) under one or more
      12             :  *   contributor license agreements. See the NOTICE file distributed
      13             :  *   with this work for additional information regarding copyright
      14             :  *   ownership. The ASF licenses this file to you under the Apache
      15             :  *   License, Version 2.0 (the "License"); you may not use this file
      16             :  *   except in compliance with the License. You may obtain a copy of
      17             :  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
      18             :  */
      19             : 
      20             : 
      21             : #include "hintids.hxx"
      22             : #include <vcl/graph.hxx>
      23             : #include <svx/galbrws.hxx>
      24             : #include <svl/srchitem.hxx>
      25             : #include <SwSpellDialogChildWindow.hxx>
      26             : #include <svl/eitem.hxx>
      27             : #include <unotools/linguprops.hxx>
      28             : #include <unotools/lingucfg.hxx>
      29             : #include <viewopt.hxx>
      30             : #include <globals.h>
      31             : #include <sfx2/app.hxx>
      32             : #include <sfx2/infobar.hxx>
      33             : #include <sfx2/request.hxx>
      34             : #include <svl/whiter.hxx>
      35             : #include <svx/srchdlg.hxx>
      36             : #include <sfx2/templdlg.hxx>
      37             : #include <sfx2/viewfrm.hxx>
      38             : #include <sfx2/bindings.hxx>
      39             : #include <uivwimp.hxx>
      40             : #include <avmedia/mediaplayer.hxx>
      41             : #include <swmodule.hxx>
      42             : 
      43             : #include <sfx2/objface.hxx>
      44             : #include <navipi.hxx>
      45             : #include <wrtsh.hxx>
      46             : #include <edtwin.hxx>
      47             : #include "view.hxx"
      48             : #include "basesh.hxx"
      49             : #include "docsh.hxx"
      50             : #include "doc.hxx"
      51             : #include "globals.hrc"
      52             : #include "cmdid.h"          // FN_       ...
      53             : #include "globdoc.hxx"
      54             : #include "wview.hxx"
      55             : #include "shells.hrc"
      56             : 
      57             : #define OLEObjects
      58             : #define SwView
      59             : #define Frames
      60             : #define Graphics
      61             : #define Tables
      62             : #define Controls
      63             : #define GlobalContents
      64             : #define Text
      65             : #define Frame
      66             : #define Graphic
      67             : #define Object
      68             : #define Draw
      69             : #define TextDrawText
      70             : #define TextInTable
      71             : #define ListInText
      72             : #define ListInTable
      73             : #define WebTextInTable
      74             : #define WebListInText
      75             : #define WebListInTable
      76             : #define TextPage
      77             : #include <sfx2/msg.hxx>
      78             : #include "swslots.hxx"
      79             : #include <PostItMgr.hxx>
      80             : 
      81             : using namespace ::com::sun::star;
      82             : using ::rtl::OUString;
      83             : 
      84             : #include <unotools/moduleoptions.hxx>
      85             : 
      86             : #include <IDocumentSettingAccess.hxx>
      87             : 
      88             : #include <unomid.h>
      89             : 
      90         252 : SFX_IMPL_NAMED_VIEWFACTORY(SwView, "Default")
      91             : {
      92           8 :     if ( SvtModuleOptions().IsWriter() )
      93             :     {
      94           8 :         SFX_VIEW_REGISTRATION(SwDocShell);
      95           8 :         SFX_VIEW_REGISTRATION(SwGlobalDocShell);
      96             :     }
      97           8 : }
      98             : 
      99        5064 : SFX_IMPL_INTERFACE( SwView, SfxViewShell, SW_RES(RID_TOOLS_TOOLBOX) )
     100             : {
     101          10 :     SFX_CHILDWINDOW_CONTEXT_REGISTRATION(SID_NAVIGATOR);
     102          10 :     SFX_CHILDWINDOW_REGISTRATION(SID_TASKPANE);
     103          10 :     SFX_CHILDWINDOW_REGISTRATION(SfxTemplateDialogWrapper::GetChildWindowId());
     104          10 :     SFX_CHILDWINDOW_REGISTRATION(SfxInfoBarContainerChild::GetChildWindowId());
     105          10 :     SFX_CHILDWINDOW_REGISTRATION(SvxSearchDialogWrapper::GetChildWindowId());
     106          10 :     SFX_CHILDWINDOW_REGISTRATION(SwSpellDialogChildWindow::GetChildWindowId());
     107          10 :     SFX_CHILDWINDOW_REGISTRATION(FN_REDLINE_ACCEPT);
     108          10 :     SFX_CHILDWINDOW_REGISTRATION(SID_HYPERLINK_DIALOG);
     109          10 :     SFX_CHILDWINDOW_REGISTRATION(FN_WORDCOUNT_DIALOG);
     110          10 :     SFX_CHILDWINDOW_REGISTRATION(GalleryChildWindow::GetChildWindowId());
     111          10 :     SFX_CHILDWINDOW_REGISTRATION(::avmedia::MediaPlayer::GetChildWindowId());
     112          10 :     SFX_CHILDWINDOW_REGISTRATION(FN_INSERT_FIELD_DATA_ONLY);
     113          10 :         SFX_FEATURED_CHILDWINDOW_REGISTRATION(FN_SYNC_LABELS,           CHILDWIN_LABEL    );
     114          10 :         SFX_FEATURED_CHILDWINDOW_REGISTRATION(FN_MAILMERGE_CHILDWINDOW, CHILDWIN_MAILMERGE);
     115          20 :     SFX_OBJECTBAR_REGISTRATION( SFX_OBJECTBAR_TOOLS|
     116             :                                 SFX_VISIBILITY_STANDARD|SFX_VISIBILITY_SERVER,
     117          10 :                                 SW_RES(RID_TOOLS_TOOLBOX) );
     118          10 : }
     119             : 
     120       13475 : TYPEINIT1(SwView,SfxViewShell)
     121             : 
     122           0 : ShellModes  SwView::GetShellMode()
     123             : {
     124           0 :     return pViewImpl->GetShellMode();
     125             : }
     126             : 
     127           0 : view::XSelectionSupplier* SwView::GetUNOObject()
     128             : {
     129           0 :     return pViewImpl->GetUNOObject();
     130             : }
     131             : 
     132           0 : void SwView::ApplyAccessiblityOptions(SvtAccessibilityOptions& rAccessibilityOptions)
     133             : {
     134           0 :     pWrtShell->ApplyAccessiblityOptions(rAccessibilityOptions);
     135             :     //to enable the right state of the selection cursor in readonly documents
     136           0 :     if(GetDocShell()->IsReadOnly())
     137           0 :         pWrtShell->ShowCrsr();
     138             : 
     139           0 : }
     140             : 
     141           0 : void   SwView::SetMailMergeConfigItem(SwMailMergeConfigItem*  pConfigItem,
     142             :                 sal_uInt16 nRestart, sal_Bool bIsSource)
     143             : {
     144           0 :     pViewImpl->SetMailMergeConfigItem(pConfigItem, nRestart, bIsSource);
     145           0 :     UIFeatureChanged();
     146           0 : }
     147             : 
     148         594 : SwMailMergeConfigItem*  SwView::GetMailMergeConfigItem()
     149             : {
     150         594 :     return pViewImpl->GetMailMergeConfigItem();
     151             : }
     152             : 
     153           0 : sal_uInt16 SwView::GetMailMergeRestartPage() const
     154             : {
     155           0 :     return pViewImpl->GetMailMergeRestartPage();
     156             : }
     157             : 
     158           0 : sal_Bool SwView::IsMailMergeSourceView() const
     159             : {
     160           0 :     return pViewImpl->IsMailMergeSourceView();
     161             : }
     162             : 
     163           0 : static sal_Bool lcl_IsViewMarks( const SwViewOption& rVOpt )
     164             : {
     165           0 :     return  rVOpt.IsHardBlank() &&
     166           0 :             rVOpt.IsSoftHyph() &&
     167           0 :             SwViewOption::IsFieldShadings();
     168             : }
     169           0 : static void lcl_SetViewMarks(SwViewOption& rVOpt, sal_Bool bOn )
     170             : {
     171           0 :     rVOpt.SetHardBlank(bOn);
     172           0 :     rVOpt.SetSoftHyph(bOn);
     173             :     SwViewOption::SetAppearanceFlag(
     174           0 :             VIEWOPT_FIELD_SHADINGS, bOn, sal_True);
     175           0 : }
     176             : 
     177           0 : static void lcl_SetViewMetaChars( SwViewOption& rVOpt, sal_Bool bOn)
     178             : {
     179           0 :     rVOpt.SetViewMetaChars( bOn );
     180           0 :     if(bOn && !(rVOpt.IsParagraph()     ||
     181           0 :             rVOpt.IsTab()       ||
     182           0 :             rVOpt.IsLineBreak() ||
     183           0 :             rVOpt.IsShowHiddenChar() ||
     184           0 :             rVOpt.IsBlank()))
     185             :     {
     186           0 :         rVOpt.SetParagraph(bOn);
     187           0 :         rVOpt.SetTab(bOn);
     188           0 :         rVOpt.SetLineBreak(bOn);
     189           0 :         rVOpt.SetBlank(bOn);
     190           0 :         rVOpt.SetShowHiddenChar(bOn);
     191             :     }
     192           0 : }
     193             : 
     194           0 : void SwView::RecheckBrowseMode()
     195             : {
     196             :     // OS: numerische Reihenfolge beachten!
     197             :     static sal_uInt16 const aInva[] =
     198             :         {
     199             :             //SID_NEWWINDOW,/*5620*/
     200             :             SID_BROWSER_MODE, /*6313*/
     201             :             SID_RULER_BORDERS, SID_RULER_PAGE_POS,
     202             :             //SID_ATTR_LONG_LRSPACE,
     203             :             SID_HTML_MODE,
     204             :             SID_RULER_PROTECT,
     205             :             //SID_AUTOSPELL_CHECK,
     206             :             //SID_AUTOSPELL_MARKOFF,
     207             :             FN_RULER,       /*20211*/
     208             :             FN_VIEW_GRAPHIC,    /*20213*/
     209             :             FN_VIEW_BOUNDS,     /**/
     210             :             FN_VIEW_FIELDS,     /*20215*/
     211             :             FN_VLINEAL,             /*20216*/
     212             :             FN_VSCROLLBAR,      /*20217*/
     213             :             FN_HSCROLLBAR,      /*20218*/
     214             :             FN_VIEW_META_CHARS, /**/
     215             :             FN_VIEW_MARKS,      /**/
     216             :             //FN_VIEW_FIELDNAME,    /**/
     217             :             FN_VIEW_TABLEGRID,  /*20227*/
     218             :             FN_PRINT_LAYOUT, /*20237*/
     219             :             FN_QRY_MERGE,   /*20364*/
     220             :             FN_SHADOWCURSOR, /**/
     221             :             0
     222             :         };
     223             :     // the view must not exist!
     224           0 :     GetViewFrame()->GetBindings().Invalidate(aInva);
     225           0 :     CheckVisArea();
     226             : 
     227             :     SvxZoomType eType;
     228           0 :     if( GetWrtShell().GetViewOptions()->getBrowseMode() && SVX_ZOOM_PERCENT != (eType = (SvxZoomType)
     229           0 :         GetWrtShell().GetViewOptions()->GetZoomType()) )
     230           0 :         SetZoom( eType );
     231           0 :     InvalidateBorder();
     232           0 : }
     233             : 
     234             : /*--------------------------------------------------------------------
     235             :     State of view options
     236             :  --------------------------------------------------------------------*/
     237           0 : void SwView::StateViewOptions(SfxItemSet &rSet)
     238             : {
     239           0 :     SfxWhichIter aIter(rSet);
     240           0 :     sal_uInt16 nWhich = aIter.FirstWhich();
     241           0 :     SfxBoolItem aBool;
     242           0 :     const SwViewOption* pOpt = GetWrtShell().GetViewOptions();
     243           0 :     const IDocumentSettingAccess* pIDSA = GetDocShell()->getIDocumentSettingAccess();
     244             : 
     245           0 :     while(nWhich)
     246             :     {
     247           0 :         sal_Bool bReadonly = GetDocShell()->IsReadOnly();
     248           0 :         if ( bReadonly && nWhich != FN_VIEW_GRAPHIC )
     249             :         {
     250           0 :             rSet.DisableItem(nWhich);
     251           0 :             nWhich = 0;
     252             :         }
     253           0 :         switch(nWhich)
     254             :         {
     255             :             case FN_RULER:
     256             :             {
     257           0 :                 if(!pOpt->IsViewHRuler(sal_True) && !pOpt->IsViewVRuler(sal_True))
     258             :                 {
     259           0 :                     rSet.DisableItem(nWhich);
     260           0 :                     nWhich = 0;
     261             :                 }
     262             :                 else
     263           0 :                     aBool.SetValue( pOpt->IsViewAnyRuler());
     264             :             }
     265           0 :             break;
     266             :             case SID_BROWSER_MODE:
     267             :             case FN_PRINT_LAYOUT:
     268             :             {
     269           0 :                 sal_Bool bState = pOpt->getBrowseMode();
     270           0 :                 if(FN_PRINT_LAYOUT == nWhich)
     271           0 :                     bState = !bState;
     272           0 :                 aBool.SetValue( bState );
     273             :             }
     274           0 :             break;
     275             :             case FN_VIEW_BOUNDS:
     276           0 :                 aBool.SetValue( SwViewOption::IsDocBoundaries()); break;
     277             :             case FN_VIEW_GRAPHIC:
     278           0 :                 aBool.SetValue( !pOpt->IsGraphic() ); break;
     279             :             case FN_VIEW_FIELDS:
     280           0 :                 aBool.SetValue( SwViewOption::IsFieldShadings() ); break;
     281             :             case FN_VIEW_FIELDNAME:
     282           0 :                 aBool.SetValue( pOpt->IsFldName() ); break;
     283             :             case FN_VIEW_MARKS:
     284           0 :                 aBool.SetValue( lcl_IsViewMarks(*pOpt) ); break;
     285             :             case FN_VIEW_META_CHARS:
     286           0 :                 aBool.SetValue( pOpt->IsViewMetaChars() ); break;
     287             :             case FN_VIEW_TABLEGRID:
     288           0 :                 aBool.SetValue( SwViewOption::IsTableBoundaries() ); break;
     289             :             case FN_VIEW_NOTES:
     290             :             {
     291           0 :                 aBool.SetValue( pOpt->IsPostIts());
     292           0 :                 if (!GetPostItMgr()->HasNotes())
     293             :                 {
     294           0 :                     aBool.SetWhich( nWhich );
     295           0 :                     rSet.Put( aBool );
     296           0 :                     rSet.DisableItem(nWhich);
     297           0 :                     nWhich = 0;
     298             :                 }
     299           0 :                 break;
     300             :             }
     301             :             case FN_VIEW_HIDDEN_PARA:
     302           0 :                 aBool.SetValue( pOpt->IsShowHiddenPara()); break;
     303             :             case SID_GRID_VISIBLE:
     304           0 :                 aBool.SetValue( pOpt->IsGridVisible() ); break;
     305             :             case SID_GRID_USE:
     306           0 :                 aBool.SetValue( pOpt->IsSnap() ); break;
     307             :             case SID_HELPLINES_MOVE:
     308           0 :                 aBool.SetValue( pOpt->IsCrossHair() ); break;
     309             :             case FN_VIEW_SMOOTH_SCROLL:
     310           0 :                 aBool.SetValue( pOpt->IsSmoothScroll()); break;
     311             :             case FN_VLINEAL:
     312           0 :                 aBool.SetValue( 0 != StatVLineal() ); break;
     313             :             case FN_HSCROLLBAR:
     314           0 :                 if( pOpt->getBrowseMode() )
     315             :                 {
     316           0 :                     rSet.DisableItem(nWhich);
     317           0 :                     nWhich = 0;
     318             :                 }
     319             :                 else
     320           0 :                     aBool.SetValue( IsHScrollbarVisible() ); break;
     321             :             case FN_VSCROLLBAR:
     322           0 :                 aBool.SetValue( IsVScrollbarVisible() ); break;
     323             :             case SID_AUTOSPELL_CHECK:
     324           0 :                 aBool.SetValue( pOpt->IsOnlineSpell() );
     325           0 :             break;
     326             :             case FN_SHADOWCURSOR:
     327           0 :                 if (pIDSA == 0 || pOpt->getBrowseMode() )
     328             :                 {
     329           0 :                     rSet.DisableItem( nWhich );
     330           0 :                     nWhich = 0;
     331             :                 }
     332             :                 else
     333           0 :                     aBool.SetValue( pOpt->IsShadowCursor() );
     334           0 :             break;
     335             : 
     336             :         }
     337             : 
     338           0 :         if( nWhich )
     339             :         {
     340           0 :             aBool.SetWhich( nWhich );
     341           0 :             rSet.Put( aBool );
     342             :         }
     343           0 :         nWhich = aIter.NextWhich();
     344           0 :     }
     345           0 : }
     346             : 
     347             : /*--------------------------------------------------------------------
     348             :     execute view options
     349             :  --------------------------------------------------------------------*/
     350           0 : void SwView::ExecViewOptions(SfxRequest &rReq)
     351             : {
     352           0 :     SwViewOption* pOpt = new SwViewOption( *GetWrtShell().GetViewOptions() );
     353           0 :     sal_Bool bModified = GetWrtShell().IsModified();
     354             : 
     355           0 :     int eState = STATE_TOGGLE;
     356           0 :     sal_Bool bSet = sal_False;
     357           0 :     bool bBrowseModeChanged = false;
     358             : 
     359           0 :     const SfxItemSet *pArgs = rReq.GetArgs();
     360           0 :     sal_uInt16 nSlot = rReq.GetSlot();
     361           0 :     const SfxPoolItem* pAttr=NULL;
     362             : 
     363           0 :     if( pArgs && SFX_ITEM_SET == pArgs->GetItemState( nSlot , sal_False, &pAttr ))
     364             :     {
     365           0 :         bSet = ((SfxBoolItem*)pAttr)->GetValue();
     366           0 :         eState = bSet ? STATE_ON : STATE_OFF;
     367             :     }
     368             : 
     369           0 :     sal_Bool bFlag = STATE_ON == eState;
     370           0 :     uno::Reference< beans::XPropertySet >  xLngProp( ::GetLinguPropertySet() );
     371             : 
     372           0 :     switch ( nSlot )
     373             :     {
     374             :         case FN_VIEW_GRAPHIC:
     375             : 
     376           0 :                 if( STATE_TOGGLE == eState )
     377           0 :                     bFlag = !pOpt->IsGraphic();
     378           0 :                 pOpt->SetGraphic( bFlag );
     379           0 :                 break;
     380             : 
     381             :         case FN_VIEW_FIELDS:
     382           0 :                 if( STATE_TOGGLE == eState )
     383           0 :                     bFlag = !SwViewOption::IsFieldShadings() ;
     384           0 :                 SwViewOption::SetAppearanceFlag(VIEWOPT_FIELD_SHADINGS, bFlag, sal_True );
     385           0 :                 break;
     386             : 
     387             :         case FN_VIEW_BOUNDS:
     388           0 :                 if( STATE_TOGGLE == eState )
     389           0 :                     bFlag = !SwViewOption::IsDocBoundaries();
     390           0 :                 SwViewOption::SetAppearanceFlag(VIEWOPT_DOC_BOUNDARIES, bFlag, sal_True );
     391           0 :                 break;
     392             : 
     393             :         case SID_GRID_VISIBLE:
     394           0 :                 if( STATE_TOGGLE == eState )
     395           0 :                     bFlag = !pOpt->IsGridVisible();
     396             : 
     397           0 :                 pOpt->SetGridVisible( bFlag );
     398           0 :                 break;
     399             : 
     400             :         case SID_GRID_USE:
     401           0 :                 if( STATE_TOGGLE == eState )
     402           0 :                     bFlag = !pOpt->IsSnap();
     403             : 
     404           0 :                 pOpt->SetSnap( bFlag );
     405           0 :                 break;
     406             : 
     407             :         case SID_HELPLINES_MOVE:
     408           0 :                 if( STATE_TOGGLE == eState )
     409           0 :                     bFlag = !pOpt->IsCrossHair();
     410             : 
     411           0 :                 pOpt->SetCrossHair( bFlag );
     412           0 :                 break;
     413             : 
     414             :         case SID_BROWSER_MODE:
     415             :         case FN_PRINT_LAYOUT:
     416           0 :                 if( STATE_TOGGLE == eState )
     417           0 :                     bFlag = !pOpt->getBrowseMode();
     418           0 :                 else if( nSlot == FN_PRINT_LAYOUT )
     419           0 :                     bFlag = !bFlag;
     420           0 :                 bBrowseModeChanged = bFlag != pOpt->getBrowseMode();
     421             :                 // Disable "multiple layout"
     422           0 :                 GetDocShell()->ToggleBrowserMode( bFlag, this );
     423             : 
     424           0 :                 pOpt->setBrowseMode( bFlag );
     425           0 :                 break;
     426             : 
     427             :     case FN_VIEW_NOTES:
     428           0 :                 if ( STATE_TOGGLE == eState )
     429           0 :                     bFlag = !pOpt->IsPostIts();
     430             : 
     431           0 :                 GetPostItMgr()->SetLayout();
     432           0 :                 pOpt->SetPostIts( bFlag );
     433           0 :                    if (pOpt->IsPostIts())
     434           0 :             GetPostItMgr()->CheckMetaText();
     435           0 :          break;
     436             : 
     437             :         case FN_VIEW_HIDDEN_PARA:
     438           0 :                 if ( STATE_TOGGLE == eState )
     439           0 :                     bFlag = !pOpt->IsShowHiddenPara();
     440             : 
     441           0 :                 pOpt->SetShowHiddenPara( bFlag );
     442           0 :                 break;
     443             : 
     444             :         case FN_VIEW_SMOOTH_SCROLL:
     445             : 
     446           0 :                 if ( STATE_TOGGLE == eState )
     447           0 :                     bFlag = !pOpt->IsSmoothScroll();
     448             : 
     449           0 :                 pOpt->SetSmoothScroll( bFlag );
     450           0 :                 break;
     451             : 
     452             : 
     453             :         case FN_VLINEAL:
     454           0 :                 if( STATE_TOGGLE == eState )
     455           0 :                     bFlag = !pOpt->IsViewVRuler();
     456             : 
     457           0 :                 pOpt->SetViewVRuler( bFlag );
     458           0 :                 break;
     459             : 
     460             :         case FN_VSCROLLBAR:
     461           0 :                 if( STATE_TOGGLE == eState )
     462           0 :                     bFlag = !pOpt->IsViewVScrollBar();
     463             : 
     464           0 :                 pOpt->SetViewVScrollBar( bFlag );
     465           0 :                 break;
     466             : 
     467             :         case FN_HSCROLLBAR:
     468           0 :                 if( STATE_TOGGLE == eState )
     469           0 :                     bFlag = !pOpt->IsViewHScrollBar();
     470             : 
     471           0 :                 pOpt->SetViewHScrollBar( bFlag );
     472           0 :                 break;
     473             :         case FN_RULER:
     474           0 :                 if( STATE_TOGGLE == eState )
     475           0 :                     bFlag = !pOpt->IsViewAnyRuler();
     476             : 
     477           0 :                 pOpt->SetViewAnyRuler( bFlag );
     478           0 :                 break;
     479             : 
     480             :         case FN_VIEW_TABLEGRID:
     481           0 :                 if( STATE_TOGGLE == eState )
     482           0 :                     bFlag = !SwViewOption::IsTableBoundaries();
     483           0 :                 SwViewOption::SetAppearanceFlag(VIEWOPT_TABLE_BOUNDARIES, bFlag, sal_True );
     484           0 :                 break;
     485             : 
     486             :         case FN_VIEW_FIELDNAME:
     487           0 :                 if( STATE_TOGGLE == eState )
     488           0 :                     bFlag = !pOpt->IsFldName() ;
     489             : 
     490           0 :                 pOpt->SetFldName( bFlag );
     491           0 :                 break;
     492             :         case FN_VIEW_MARKS:
     493           0 :                 if( STATE_TOGGLE == eState )
     494           0 :                     bFlag = !lcl_IsViewMarks(*pOpt) ;
     495             : 
     496           0 :                 lcl_SetViewMarks( *pOpt, bFlag );
     497           0 :                 break;
     498             :         case FN_VIEW_META_CHARS:
     499           0 :                 if( STATE_TOGGLE == eState )
     500           0 :                     bFlag = !pOpt->IsViewMetaChars();
     501             : 
     502           0 :                 lcl_SetViewMetaChars( *pOpt, bFlag );
     503           0 :         break;
     504             :         case SID_AUTOSPELL_CHECK:
     505           0 :             if( STATE_TOGGLE == eState )
     506           0 :                 bFlag = bSet = !pOpt->IsOnlineSpell();
     507             : 
     508           0 :             pOpt->SetOnlineSpell(bSet);
     509             :             {
     510           0 :                 uno::Any aVal( &bSet, ::getCppuBooleanType() );
     511           0 :                 rtl::OUString aPropName(UPN_IS_SPELL_AUTO);
     512             : 
     513           0 :                 SvtLinguConfig  aCfg;
     514           0 :                 aCfg.SetProperty( aPropName, aVal );
     515             : 
     516           0 :                 if (xLngProp.is())
     517           0 :                     xLngProp->setPropertyValue( aPropName, aVal );
     518             : 
     519             :                 // for the time being we do not have a specific option for grammarchecking.
     520             :                 // thus we'll use the one for spell checking...
     521           0 :                 if (bSet)
     522             :                 {
     523           0 :                     SwDocShell *pDocSh = GetDocShell();
     524           0 :                     SwDoc *pDoc = pDocSh? pDocSh->GetDoc() : NULL;
     525             : 
     526             :                     // right now we don't have view options for automatic grammar checking. Thus...
     527           0 :                     sal_Bool bIsAutoGrammar = sal_False;
     528           0 :                     aCfg.GetProperty( UPN_IS_GRAMMAR_AUTO ) >>= bIsAutoGrammar;
     529             : 
     530           0 :                     if (pDoc && bIsAutoGrammar)
     531           0 :                         StartGrammarChecking( *pDoc );
     532           0 :                 }
     533             :             }
     534           0 :         break;
     535             :         case FN_SHADOWCURSOR:
     536           0 :             if( STATE_TOGGLE == eState )
     537           0 :                 bFlag = bSet = !pOpt->IsShadowCursor();
     538             : 
     539           0 :             pOpt->SetShadowCursor(bSet);
     540           0 :         break;
     541             : 
     542             :         default:
     543             :             OSL_FAIL("wrong request method");
     544           0 :             return;
     545             :     }
     546             : 
     547             :     // UserPrefs setzen Request als bearbeitet kennzeichnen
     548           0 :     sal_Bool bWebView =  0 != dynamic_cast<const SwWebView*>(this);
     549           0 :     SwWrtShell &rSh = GetWrtShell();
     550           0 :     rSh.StartAction();
     551           0 :     SwModule* pModule = SW_MOD();
     552           0 :     if( !(*rSh.GetViewOptions() == *pOpt ))
     553             :     {
     554           0 :         rSh.ApplyViewOptions( *pOpt );
     555           0 :         if( bBrowseModeChanged )
     556             :         {
     557           0 :             RecheckBrowseMode();
     558           0 :             CheckVisArea();
     559             :         }
     560             : 
     561             :         //Die UsrPref muessen als Modified gekennzeichnet werden.
     562             :         //call for initialization
     563           0 :         pModule->GetUsrPref(bWebView);
     564           0 :         pModule->CheckSpellChanges( pOpt->IsOnlineSpell(), false, false, false );
     565             :     }
     566             :     //OS:   Modified wieder zuruecksetzen, weil Ansicht/Felder
     567             :     //      das Doc modified setzt.
     568           0 :     if( !bModified )
     569           0 :         rSh.ResetModified();
     570             : 
     571           0 :     pModule->ApplyUsrPref( *pOpt, this, bWebView ? VIEWOPT_DEST_WEB : VIEWOPT_DEST_TEXT );
     572             : 
     573             :     // #i6193# let postits know about new spellcheck setting
     574           0 :     if ( nSlot == SID_AUTOSPELL_CHECK )
     575           0 :         GetPostItMgr()->SetSpellChecking();
     576             : 
     577           0 :     const sal_Bool bLockedView = rSh.IsViewLocked();
     578           0 :     rSh.LockView( sal_True );    //lock visible section
     579           0 :     GetWrtShell().EndAction();
     580           0 :     if( bBrowseModeChanged && !bFlag )
     581           0 :         CalcVisArea( GetEditWin().GetOutputSizePixel() );
     582           0 :     rSh.LockView( bLockedView );
     583             : 
     584           0 :     delete pOpt;
     585           0 :     Invalidate(rReq.GetSlot());
     586           0 :     if(!pArgs)
     587           0 :         rReq.AppendItem(SfxBoolItem(nSlot, (sal_Bool)bFlag));
     588           0 :     rReq.Done();
     589             : }
     590             : 
     591             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10