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