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