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 : #include <config_features.h>
21 :
22 : #include "hintids.hxx"
23 : #include <vcl/graph.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"
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 : #include <boost/scoped_ptr.hpp>
81 :
82 4884 : SFX_IMPL_NAMED_VIEWFACTORY(SwView, "Default")
83 : {
84 90 : if ( SvtModuleOptions().IsWriter() )
85 : {
86 90 : SFX_VIEW_REGISTRATION(SwDocShell);
87 90 : SFX_VIEW_REGISTRATION(SwGlobalDocShell);
88 : }
89 90 : }
90 :
91 282126 : SFX_IMPL_INTERFACE(SwView, SfxViewShell, SW_RES(RID_TOOLS_TOOLBOX) )
92 :
93 90 : void SwView::InitInterface_Impl()
94 : {
95 : #if HAVE_FEATURE_DESKTOP
96 90 : GetStaticInterface()->RegisterChildWindow(SID_NAVIGATOR, true);
97 :
98 90 : GetStaticInterface()->RegisterChildWindow(::sfx2::sidebar::SidebarChildWindow::GetChildWindowId());
99 90 : GetStaticInterface()->RegisterChildWindow(SfxInfoBarContainerChild::GetChildWindowId());
100 90 : GetStaticInterface()->RegisterChildWindow(SvxSearchDialogWrapper::GetChildWindowId());
101 90 : GetStaticInterface()->RegisterChildWindow(SwSpellDialogChildWindow::GetChildWindowId());
102 90 : GetStaticInterface()->RegisterChildWindow(FN_REDLINE_ACCEPT);
103 90 : GetStaticInterface()->RegisterChildWindow(SID_HYPERLINK_DIALOG);
104 90 : GetStaticInterface()->RegisterChildWindow(FN_WORDCOUNT_DIALOG);
105 : #if HAVE_FEATURE_AVMEDIA
106 90 : GetStaticInterface()->RegisterChildWindow(::avmedia::MediaPlayer::GetChildWindowId());
107 : #endif
108 90 : GetStaticInterface()->RegisterChildWindow(FN_INSERT_FIELD_DATA_ONLY);
109 :
110 90 : GetStaticInterface()->RegisterChildWindow(FN_SYNC_LABELS, false, CHILDWIN_LABEL);
111 90 : GetStaticInterface()->RegisterChildWindow(FN_MAILMERGE_CHILDWINDOW, false, CHILDWIN_MAILMERGE);
112 :
113 : GetStaticInterface()->RegisterObjectBar(SFX_OBJECTBAR_TOOLS|SFX_VISIBILITY_STANDARD|SFX_VISIBILITY_SERVER,
114 90 : SW_RES(RID_TOOLS_TOOLBOX));
115 : #endif
116 90 : }
117 :
118 395945 : TYPEINIT1(SwView,SfxViewShell)
119 :
120 8292 : ShellModes SwView::GetShellMode()
121 : {
122 8292 : return m_pViewImpl->GetShellMode();
123 : }
124 :
125 6 : view::XSelectionSupplier* SwView::GetUNOObject()
126 : {
127 6 : return m_pViewImpl->GetUNOObject();
128 : }
129 :
130 0 : void SwView::ApplyAccessiblityOptions(SvtAccessibilityOptions& rAccessibilityOptions)
131 : {
132 0 : m_pWrtShell->ApplyAccessiblityOptions(rAccessibilityOptions);
133 : //to enable the right state of the selection cursor in readonly documents
134 0 : if(GetDocShell()->IsReadOnly())
135 0 : m_pWrtShell->ShowCrsr();
136 :
137 0 : }
138 :
139 : #if HAVE_FEATURE_DBCONNECTIVITY
140 :
141 0 : void SwView::SetMailMergeConfigItem(SwMailMergeConfigItem* pConfigItem,
142 : sal_uInt16 nRestart, bool bIsSource)
143 : {
144 0 : m_pViewImpl->SetMailMergeConfigItem(pConfigItem, nRestart, bIsSource);
145 0 : UIFeatureChanged();
146 0 : }
147 :
148 10274 : SwMailMergeConfigItem* SwView::GetMailMergeConfigItem()
149 : {
150 10274 : return m_pViewImpl->GetMailMergeConfigItem();
151 : }
152 :
153 0 : sal_uInt16 SwView::GetMailMergeRestartPage() const
154 : {
155 0 : return m_pViewImpl->GetMailMergeRestartPage();
156 : }
157 :
158 0 : bool SwView::IsMailMergeSourceView() const
159 : {
160 0 : return m_pViewImpl->IsMailMergeSourceView();
161 : }
162 :
163 : #endif
164 :
165 10 : static bool lcl_IsViewMarks( const SwViewOption& rVOpt )
166 : {
167 20 : return rVOpt.IsHardBlank() &&
168 20 : rVOpt.IsSoftHyph() &&
169 20 : SwViewOption::IsFieldShadings();
170 : }
171 0 : static void lcl_SetViewMarks(SwViewOption& rVOpt, bool bOn )
172 : {
173 0 : rVOpt.SetHardBlank(bOn);
174 0 : rVOpt.SetSoftHyph(bOn);
175 : SwViewOption::SetAppearanceFlag(
176 0 : VIEWOPT_FIELD_SHADINGS, bOn, true);
177 0 : }
178 :
179 0 : static void lcl_SetViewMetaChars( SwViewOption& rVOpt, bool bOn)
180 : {
181 0 : rVOpt.SetViewMetaChars( bOn );
182 0 : if(bOn && !(rVOpt.IsParagraph() ||
183 0 : rVOpt.IsTab() ||
184 0 : rVOpt.IsLineBreak() ||
185 0 : rVOpt.IsShowHiddenChar() ||
186 0 : rVOpt.IsBlank()))
187 : {
188 0 : rVOpt.SetParagraph(bOn);
189 0 : rVOpt.SetTab(bOn);
190 0 : rVOpt.SetLineBreak(bOn);
191 0 : rVOpt.SetBlank(bOn);
192 0 : rVOpt.SetShowHiddenChar(bOn);
193 : }
194 0 : }
195 :
196 2 : void SwView::RecheckBrowseMode()
197 : {
198 : // OS: pay attention to numerical order!
199 : static sal_uInt16 const aInva[] =
200 : {
201 : //SID_NEWWINDOW,/*5620*/
202 : SID_BROWSER_MODE, /*6313*/
203 : SID_RULER_BORDERS, SID_RULER_PAGE_POS,
204 : //SID_ATTR_LONG_LRSPACE,
205 : SID_HTML_MODE,
206 : SID_RULER_PROTECT,
207 : //SID_AUTOSPELL_CHECK,
208 : //SID_AUTOSPELL_MARKOFF,
209 : FN_RULER, /*20211*/
210 : FN_VIEW_GRAPHIC, /*20213*/
211 : FN_VIEW_BOUNDS, /**/
212 : FN_VIEW_FIELDS, /*20215*/
213 : FN_VLINEAL, /*20216*/
214 : FN_VSCROLLBAR, /*20217*/
215 : FN_HSCROLLBAR, /*20218*/
216 : FN_VIEW_META_CHARS, /**/
217 : FN_VIEW_MARKS, /**/
218 : //FN_VIEW_FIELDNAME, /**/
219 : FN_VIEW_TABLEGRID, /*20227*/
220 : FN_PRINT_LAYOUT, /*20237*/
221 : FN_QRY_MERGE, /*20364*/
222 : FN_SHADOWCURSOR, /**/
223 : 0
224 : };
225 : // the view must not exist!
226 2 : GetViewFrame()->GetBindings().Invalidate(aInva);
227 2 : CheckVisArea();
228 :
229 : SvxZoomType eType;
230 4 : if( GetWrtShell().GetViewOptions()->getBrowseMode() && SVX_ZOOM_PERCENT != (eType = (SvxZoomType)
231 2 : GetWrtShell().GetViewOptions()->GetZoomType()) )
232 0 : SetZoom( eType );
233 2 : InvalidateBorder();
234 2 : }
235 :
236 : // State of view options
237 :
238 1685 : void SwView::StateViewOptions(SfxItemSet &rSet)
239 : {
240 1685 : SfxWhichIter aIter(rSet);
241 1685 : sal_uInt16 nWhich = aIter.FirstWhich();
242 3370 : SfxBoolItem aBool;
243 1685 : const SwViewOption* pOpt = GetWrtShell().GetViewOptions();
244 1685 : const IDocumentSettingAccess* pIDSA = GetDocShell()->getIDocumentSettingAccess();
245 :
246 5248 : while(nWhich)
247 : {
248 1878 : bool bReadonly = GetDocShell()->IsReadOnly();
249 1878 : if ( bReadonly && nWhich != FN_VIEW_GRAPHIC )
250 : {
251 8 : rSet.DisableItem(nWhich);
252 8 : nWhich = 0;
253 : }
254 1878 : switch(nWhich)
255 : {
256 : case FN_RULER:
257 : {
258 10 : if(!pOpt->IsViewHRuler(true) && !pOpt->IsViewVRuler(true))
259 : {
260 0 : rSet.DisableItem(nWhich);
261 0 : nWhich = 0;
262 : }
263 : else
264 10 : aBool.SetValue( pOpt->IsViewAnyRuler());
265 : }
266 10 : break;
267 : case SID_BROWSER_MODE:
268 : case FN_PRINT_LAYOUT:
269 : {
270 20 : bool bState = pOpt->getBrowseMode();
271 20 : if(FN_PRINT_LAYOUT == nWhich)
272 10 : bState = !bState;
273 20 : aBool.SetValue( bState );
274 : }
275 20 : break;
276 : case FN_VIEW_BOUNDS:
277 10 : aBool.SetValue( SwViewOption::IsDocBoundaries()); break;
278 : case FN_VIEW_GRAPHIC:
279 0 : aBool.SetValue( !pOpt->IsGraphic() ); break;
280 : case FN_VIEW_FIELDS:
281 0 : aBool.SetValue( SwViewOption::IsFieldShadings() ); break;
282 : case FN_VIEW_FIELDNAME:
283 10 : aBool.SetValue( pOpt->IsFldName() ); break;
284 : case FN_VIEW_MARKS:
285 10 : aBool.SetValue( lcl_IsViewMarks(*pOpt) ); break;
286 : case FN_VIEW_META_CHARS:
287 901 : aBool.SetValue( pOpt->IsViewMetaChars() ); break;
288 : case FN_VIEW_TABLEGRID:
289 0 : aBool.SetValue( SwViewOption::IsTableBoundaries() ); break;
290 : case FN_VIEW_NOTES:
291 : {
292 10 : aBool.SetValue( pOpt->IsPostIts());
293 10 : if (!GetPostItMgr()->HasNotes())
294 : {
295 10 : aBool.SetWhich( nWhich );
296 10 : rSet.Put( aBool );
297 10 : rSet.DisableItem(nWhich);
298 10 : nWhich = 0;
299 : }
300 10 : break;
301 : }
302 : case FN_VIEW_HIDDEN_PARA:
303 10 : aBool.SetValue( pOpt->IsShowHiddenPara()); break;
304 : case SID_GRID_VISIBLE:
305 0 : aBool.SetValue( pOpt->IsGridVisible() ); break;
306 : case SID_GRID_USE:
307 0 : aBool.SetValue( pOpt->IsSnap() ); break;
308 : case SID_HELPLINES_MOVE:
309 0 : aBool.SetValue( pOpt->IsCrossHair() ); break;
310 : case FN_VIEW_SMOOTH_SCROLL:
311 0 : aBool.SetValue( pOpt->IsSmoothScroll()); break;
312 : case FN_VLINEAL:
313 0 : aBool.SetValue( StatVRuler() ); break;
314 : case FN_HSCROLLBAR:
315 0 : if( pOpt->getBrowseMode() )
316 : {
317 0 : rSet.DisableItem(nWhich);
318 0 : nWhich = 0;
319 : }
320 : else
321 0 : aBool.SetValue( IsHScrollbarVisible() ); break;
322 : case FN_VSCROLLBAR:
323 0 : aBool.SetValue( IsVScrollbarVisible() ); break;
324 : case SID_AUTOSPELL_CHECK:
325 889 : aBool.SetValue( pOpt->IsOnlineSpell() );
326 889 : break;
327 : case FN_SHADOWCURSOR:
328 0 : if (pIDSA == 0 || pOpt->getBrowseMode() )
329 : {
330 0 : rSet.DisableItem( nWhich );
331 0 : nWhich = 0;
332 : }
333 : else
334 0 : aBool.SetValue( pOpt->IsShadowCursor() );
335 0 : break;
336 :
337 : }
338 :
339 1878 : if( nWhich )
340 : {
341 1860 : aBool.SetWhich( nWhich );
342 1860 : rSet.Put( aBool );
343 : }
344 1878 : nWhich = aIter.NextWhich();
345 1685 : }
346 1685 : }
347 :
348 : // execute view options
349 :
350 0 : void SwView::ExecViewOptions(SfxRequest &rReq)
351 : {
352 0 : boost::scoped_ptr<SwViewOption> pOpt(new SwViewOption( *GetWrtShell().GetViewOptions() ));
353 0 : 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 && SfxItemState::SET == pArgs->GetItemState( nSlot , false, &pAttr ))
364 : {
365 0 : bSet = ((SfxBoolItem*)pAttr)->GetValue();
366 0 : eState = bSet ? STATE_ON : STATE_OFF;
367 : }
368 :
369 0 : bool bFlag = STATE_ON == eState;
370 0 : uno::Reference< linguistic2::XLinguProperties > xLngProp( ::GetLinguPropertySet() );
371 :
372 0 : switch ( nSlot )
373 : {
374 : case FN_VIEW_GRAPHIC:
375 0 : if( STATE_TOGGLE == eState )
376 0 : bFlag = !pOpt->IsGraphic();
377 0 : pOpt->SetGraphic( bFlag );
378 0 : break;
379 :
380 : case FN_VIEW_FIELDS:
381 0 : if( STATE_TOGGLE == eState )
382 0 : bFlag = !SwViewOption::IsFieldShadings() ;
383 0 : SwViewOption::SetAppearanceFlag(VIEWOPT_FIELD_SHADINGS, bFlag, true );
384 0 : break;
385 :
386 : case FN_VIEW_BOUNDS:
387 0 : if( STATE_TOGGLE == eState )
388 0 : bFlag = !SwViewOption::IsDocBoundaries();
389 0 : SwViewOption::SetAppearanceFlag(VIEWOPT_DOC_BOUNDARIES, bFlag, true );
390 0 : break;
391 :
392 : case SID_GRID_VISIBLE:
393 0 : if( STATE_TOGGLE == eState )
394 0 : bFlag = !pOpt->IsGridVisible();
395 :
396 0 : pOpt->SetGridVisible( bFlag );
397 0 : break;
398 :
399 : case SID_GRID_USE:
400 0 : if( STATE_TOGGLE == eState )
401 0 : bFlag = !pOpt->IsSnap();
402 :
403 0 : pOpt->SetSnap( bFlag );
404 0 : break;
405 :
406 : case SID_HELPLINES_MOVE:
407 0 : if( STATE_TOGGLE == eState )
408 0 : bFlag = !pOpt->IsCrossHair();
409 :
410 0 : pOpt->SetCrossHair( bFlag );
411 0 : break;
412 :
413 : case SID_BROWSER_MODE:
414 : case FN_PRINT_LAYOUT:
415 0 : if( STATE_TOGGLE == eState )
416 0 : bFlag = !pOpt->getBrowseMode();
417 0 : else if( nSlot == FN_PRINT_LAYOUT )
418 0 : bFlag = !bFlag;
419 0 : bBrowseModeChanged = bFlag != pOpt->getBrowseMode();
420 : // Disable "multiple layout"
421 0 : GetDocShell()->ToggleBrowserMode( bFlag, this );
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 : case FN_VLINEAL:
451 0 : if( STATE_TOGGLE == eState )
452 0 : bFlag = !pOpt->IsViewVRuler();
453 :
454 0 : pOpt->SetViewVRuler( bFlag );
455 0 : break;
456 :
457 : case FN_VSCROLLBAR:
458 0 : if( STATE_TOGGLE == eState )
459 0 : bFlag = !pOpt->IsViewVScrollBar();
460 :
461 0 : pOpt->SetViewVScrollBar( bFlag );
462 0 : break;
463 :
464 : case FN_HSCROLLBAR:
465 0 : if( STATE_TOGGLE == eState )
466 0 : bFlag = !pOpt->IsViewHScrollBar();
467 :
468 0 : pOpt->SetViewHScrollBar( bFlag );
469 0 : break;
470 :
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, 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 :
491 : case FN_VIEW_MARKS:
492 0 : if( STATE_TOGGLE == eState )
493 0 : bFlag = !lcl_IsViewMarks(*pOpt) ;
494 :
495 0 : lcl_SetViewMarks( *pOpt, bFlag );
496 0 : break;
497 :
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 :
505 : case SID_AUTOSPELL_CHECK:
506 0 : if( STATE_TOGGLE == eState )
507 : {
508 0 : bFlag = !pOpt->IsOnlineSpell();
509 0 : bSet = bFlag;
510 : }
511 :
512 0 : pOpt->SetOnlineSpell(bSet);
513 : {
514 0 : uno::Any aVal( &bSet, ::getCppuBooleanType() );
515 0 : OUString aPropName(UPN_IS_SPELL_AUTO);
516 :
517 0 : SvtLinguConfig aCfg;
518 0 : aCfg.SetProperty( aPropName, aVal );
519 :
520 0 : if (xLngProp.is())
521 0 : xLngProp->setIsSpellAuto( bSet );
522 :
523 : // for the time being we do not have a specific option for grammarchecking.
524 : // thus we'll use the one for spell checking...
525 0 : if (bSet)
526 : {
527 0 : SwDocShell *pDocSh = GetDocShell();
528 0 : SwDoc *pDoc = pDocSh? pDocSh->GetDoc() : NULL;
529 :
530 : // right now we don't have view options for automatic grammar checking. Thus...
531 0 : bool bIsAutoGrammar = false;
532 0 : aCfg.GetProperty( UPN_IS_GRAMMAR_AUTO ) >>= bIsAutoGrammar;
533 :
534 0 : if (pDoc && bIsAutoGrammar)
535 0 : StartGrammarChecking( *pDoc );
536 0 : }
537 : }
538 0 : break;
539 :
540 : case FN_SHADOWCURSOR:
541 0 : if( STATE_TOGGLE == eState )
542 : {
543 0 : bFlag = !pOpt->IsShadowCursor();
544 0 : bSet = bFlag;
545 : }
546 :
547 0 : pOpt->SetShadowCursor(bSet);
548 0 : break;
549 :
550 : default:
551 : OSL_FAIL("wrong request method");
552 0 : return;
553 : }
554 :
555 : // Set UserPrefs, mark request as modified
556 0 : bool bWebView = 0 != dynamic_cast<const SwWebView*>(this);
557 0 : SwWrtShell &rSh = GetWrtShell();
558 0 : rSh.StartAction();
559 0 : SwModule* pModule = SW_MOD();
560 0 : if( !(*rSh.GetViewOptions() == *pOpt ))
561 : {
562 0 : rSh.ApplyViewOptions( *pOpt );
563 0 : if( bBrowseModeChanged )
564 : {
565 0 : RecheckBrowseMode();
566 0 : CheckVisArea();
567 : }
568 :
569 : // The UsrPref must be marked as modified.
570 : // call for initialization
571 0 : pModule->GetUsrPref(bWebView);
572 0 : pModule->CheckSpellChanges( pOpt->IsOnlineSpell(), false, false, false );
573 : }
574 : //OS: Set back modified again, because view/fields sets the Doc modified.
575 0 : if( !bModified )
576 0 : rSh.ResetModified();
577 :
578 0 : pModule->ApplyUsrPref( *pOpt, this, bWebView ? VIEWOPT_DEST_WEB : VIEWOPT_DEST_TEXT );
579 :
580 : // #i6193# let postits know about new spellcheck setting
581 0 : if ( nSlot == SID_AUTOSPELL_CHECK )
582 0 : GetPostItMgr()->SetSpellChecking();
583 :
584 0 : const bool bLockedView = rSh.IsViewLocked();
585 0 : rSh.LockView( true ); //lock visible section
586 0 : GetWrtShell().EndAction();
587 0 : if( bBrowseModeChanged && !bFlag )
588 0 : CalcVisArea( GetEditWin().GetOutputSizePixel() );
589 0 : rSh.LockView( bLockedView );
590 :
591 0 : pOpt.reset();
592 0 : Invalidate(rReq.GetSlot());
593 0 : if(!pArgs)
594 0 : rReq.AppendItem(SfxBoolItem(nSlot, bFlag));
595 0 : rReq.Done();
596 270 : }
597 :
598 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|