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