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: */
|