LibreOffice Module sw (master)  1
swmodul1.cxx
Go to the documentation of this file.
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 <sal/config.h>
21 
22 #include <memory>
23 
24 #include <hintids.hxx>
25 #include <sfx2/request.hxx>
26 #include <unotools/useroptions.hxx>
27 #include <com/sun/star/frame/FrameSearchFlag.hpp>
28 #include <com/sun/star/frame/XFrame.hpp>
29 #include <com/sun/star/view/XSelectionSupplier.hpp>
30 #include <svx/colorwindow.hxx>
32 #include <editeng/editids.hrc>
33 #include <editeng/wghtitem.hxx>
34 #include <editeng/postitem.hxx>
35 #include <editeng/udlnitem.hxx>
37 #include <editeng/cmapitem.hxx>
38 #include <editeng/colritem.hxx>
39 #include <editeng/brushitem.hxx>
40 #include <svl/cjkoptions.hxx>
41 #include <swmodule.hxx>
42 #include <swtypes.hxx>
43 #include <usrpref.hxx>
44 #include <modcfg.hxx>
45 #include <view.hxx>
46 #include <pview.hxx>
47 #include <wview.hxx>
48 #include <wrtsh.hxx>
49 #include <docsh.hxx>
50 #include <uinums.hxx>
51 #include <prtopt.hxx>
52 #include <navicfg.hxx>
53 #include <doc.hxx>
54 #include <strings.hrc>
56 
57 #include <tools/color.hxx>
58 #include <tools/json_writer.hxx>
59 #include <PostItMgr.hxx>
60 
61 using namespace ::svx;
62 using namespace ::com::sun::star;
63 using namespace ::com::sun::star::uno;
64 using namespace ::com::sun::star::beans;
65 using namespace ::com::sun::star::frame;
66 using namespace ::com::sun::star::view;
67 using namespace ::com::sun::star::lang;
68 
69 static void lcl_SetUIPrefs(const SwViewOption &rPref, SwView* pView, SwViewShell* pSh )
70 {
71  // in FrameSets the actual visibility can differ from the ViewOption's setting
72  bool bVScrollChanged = rPref.IsViewVScrollBar() != pSh->GetViewOptions()->IsViewVScrollBar();
73  bool bHScrollChanged = rPref.IsViewHScrollBar() != pSh->GetViewOptions()->IsViewHScrollBar();
74  bool bVAlignChanged = rPref.IsVRulerRight() != pSh->GetViewOptions()->IsVRulerRight();
75 
76  pSh->SetUIOptions(rPref);
77  const SwViewOption* pNewPref = pSh->GetViewOptions();
78 
79  // Scrollbars on / off
80  if(bVScrollChanged)
81  {
82  pView->EnableVScrollbar(pNewPref->IsViewVScrollBar());
83  }
84  if(bHScrollChanged)
85  {
86  pView->EnableHScrollbar( pNewPref->IsViewHScrollBar() || pNewPref->getBrowseMode() );
87  }
88  //if only the position of the vertical ruler has been changed initiate an update
89  if(bVAlignChanged && !bHScrollChanged && !bVScrollChanged)
90  pView->InvalidateBorder();
91 
92  // Rulers on / off
93  if(pNewPref->IsViewVRuler())
94  pView->CreateVRuler();
95  else
96  pView->KillVRuler();
97 
98  // TabWindow on / off
99  if(pNewPref->IsViewHRuler())
100  pView->CreateTab();
101  else
102  pView->KillTab();
103 
104  pView->GetPostItMgr()->PrepareView(true);
105 }
106 
108 {
109  SwView *pActive = ::GetActiveView();
110  if( pActive )
111  return &pActive->GetWrtShell();
112  return nullptr;
113 }
114 
116 {
118  return dynamic_cast<SwView*>( pView );
119 }
120 
122 {
123  // returns only visible SwView
124  SwView* pView = static_cast<SwView*>(SfxViewShell::GetFirst(true, checkSfxViewShell<SwView>));
125  return pView;
126 }
127 
129 {
130  OSL_ENSURE( pView,"return no SwView" );
131  SwView* pNView = static_cast<SwView*>(SfxViewShell::GetNext(*pView, true, checkSfxViewShell<SwView>));
132  return pNView;
133 }
134 
135 // New Master for the settings is set; this affects the current view and all following.
136 void SwModule::ApplyUsrPref(const SwViewOption &rUsrPref, SwView* pActView,
137  SvViewOpt nDest )
138 {
139  SwView* pCurrView = pActView;
140  SwViewShell* pSh = pCurrView ? &pCurrView->GetWrtShell() : nullptr;
141 
142  SwMasterUsrPref* pPref = const_cast<SwMasterUsrPref*>(GetUsrPref(
143  nDest == SvViewOpt::DestWeb
144  || (nDest != SvViewOpt::DestText
145  && dynamic_cast< const SwWebView *>( pCurrView )) ));
146 
147  // with Uno, only sdbcx::View, but not the Module should be changed
148  bool bViewOnly = SvViewOpt::DestViewOnly == nDest;
149  // fob Preview off
150  SwPagePreview* pPPView;
151  if( !pCurrView && nullptr != (pPPView = dynamic_cast<SwPagePreview*>( SfxViewShell::Current())) )
152  {
153  if(!bViewOnly)
154  pPref->SetUIOptions( rUsrPref );
155  pPPView->EnableVScrollbar(pPref->IsViewVScrollBar());
156  pPPView->EnableHScrollbar(pPref->IsViewHScrollBar());
157  if(!bViewOnly)
158  {
159  pPref->SetPagePrevRow(rUsrPref.GetPagePrevRow());
160  pPref->SetPagePrevCol(rUsrPref.GetPagePrevCol());
161  }
162  return;
163  }
164 
165  if(!bViewOnly)
166  {
167  pPref->SetUsrPref( rUsrPref );
168  pPref->SetModified();
169  }
170 
171  if( !pCurrView )
172  return;
173 
174  // Passing on to CORE
175  bool bReadonly;
176  const SwDocShell* pDocSh = pCurrView->GetDocShell();
177  if (pDocSh)
178  bReadonly = pDocSh->IsReadOnly();
179  else //Use existing option if DocShell missing
180  bReadonly = pSh->GetViewOptions()->IsReadonly();
181  std::unique_ptr<SwViewOption> xViewOpt;
182  if (!bViewOnly)
183  xViewOpt.reset(new SwViewOption(*pPref));
184  else
185  xViewOpt.reset(new SwViewOption(rUsrPref));
186  xViewOpt->SetReadonly( bReadonly );
187  if( !(*pSh->GetViewOptions() == *xViewOpt) )
188  {
189  //is maybe only a SwViewShell
190  pSh->StartAction();
191  pSh->ApplyViewOptions( *xViewOpt );
192  static_cast<SwWrtShell*>(pSh)->SetReadOnlyAvailable(xViewOpt->IsCursorInProtectedArea());
193  pSh->EndAction();
194  }
195  if ( pSh->GetViewOptions()->IsReadonly() != bReadonly )
196  pSh->SetReadonlyOption(bReadonly);
197 
198  lcl_SetUIPrefs(*xViewOpt, pCurrView, pSh);
199 
200  // in the end the Idle-Flag is set again
201  pPref->SetIdle(true);
202 }
203 
204 void SwModule::ApplyUserMetric( FieldUnit eMetric, bool bWeb )
205 {
206  SwMasterUsrPref* pPref;
207  if(bWeb)
208  {
209  if(!m_pWebUsrPref)
210  GetUsrPref(true);
211  pPref = m_pWebUsrPref.get();
212  }
213  else
214  {
215  if(!m_pUsrPref)
216  GetUsrPref(false);
217  pPref = m_pUsrPref.get();
218  }
219  FieldUnit eOldMetric = pPref->GetMetric();
220  if(eOldMetric != eMetric)
221  pPref->SetMetric(eMetric);
222 
223  FieldUnit eHScrollMetric = pPref->IsHScrollMetric() ? pPref->GetHScrollMetric() : eMetric;
224  FieldUnit eVScrollMetric = pPref->IsVScrollMetric() ? pPref->GetVScrollMetric() : eMetric;
225 
226  SwView* pTmpView = SwModule::GetFirstView();
227  // switch the ruler for all MDI-Windows
228  while(pTmpView)
229  {
230  if(bWeb == (dynamic_cast<SwWebView*>( pTmpView) != nullptr) )
231  {
232  pTmpView->ChangeVRulerMetric(eVScrollMetric);
233  pTmpView->ChangeTabMetric(eHScrollMetric);
234  }
235 
236  pTmpView = SwModule::GetNextView(pTmpView);
237  }
238 }
239 
240 void SwModule::ApplyRulerMetric( FieldUnit eMetric, bool bHorizontal, bool bWeb )
241 {
242  SwMasterUsrPref* pPref;
243  if(bWeb)
244  {
245  if(!m_pWebUsrPref)
246  GetUsrPref(true);
247  pPref = m_pWebUsrPref.get();
248  }
249  else
250  {
251  if(!m_pUsrPref)
252  GetUsrPref(false);
253  pPref = m_pUsrPref.get();
254  }
255  if( bHorizontal )
256  pPref->SetHScrollMetric(eMetric);
257  else
258  pPref->SetVScrollMetric(eMetric);
259 
260  SwView* pTmpView = SwModule::GetFirstView();
261  // switch metric at the appropriate rulers
262  while(pTmpView)
263  {
264  if(bWeb == (dynamic_cast<SwWebView *>( pTmpView ) != nullptr))
265  {
266  if( bHorizontal )
267  pTmpView->ChangeTabMetric(eMetric);
268  else
269  pTmpView->ChangeVRulerMetric(eMetric);
270  }
271  pTmpView = SwModule::GetNextView(pTmpView);
272  }
273 }
274 
275 //set the usrpref 's char unit attribute and set rulers unit as char if the "apply char unit" is checked
276 void SwModule::ApplyUserCharUnit(bool bApplyChar, bool bWeb)
277 {
278  SwMasterUsrPref* pPref;
279  if(bWeb)
280  {
281  if(!m_pWebUsrPref)
282  GetUsrPref(true);
283  pPref = m_pWebUsrPref.get();
284  }
285  else
286  {
287  if(!m_pUsrPref)
288  GetUsrPref(false);
289  pPref = m_pUsrPref.get();
290  }
291  bool bOldApplyCharUnit = pPref->IsApplyCharUnit();
292  bool bHasChanged = false;
293  if(bOldApplyCharUnit != bApplyChar)
294  {
295  pPref->SetApplyCharUnit(bApplyChar);
296  bHasChanged = true;
297  }
298 
299  if( !bHasChanged )
300  return;
301 
302  FieldUnit eHScrollMetric = pPref->IsHScrollMetric() ? pPref->GetHScrollMetric() : pPref->GetMetric();
303  FieldUnit eVScrollMetric = pPref->IsVScrollMetric() ? pPref->GetVScrollMetric() : pPref->GetMetric();
304  if(bApplyChar)
305  {
306  eHScrollMetric = FieldUnit::CHAR;
307  eVScrollMetric = FieldUnit::LINE;
308  }
309  else
310  {
311  SvtCJKOptions aCJKOptions;
312  if ( !aCJKOptions.IsAsianTypographyEnabled() && ( eHScrollMetric == FieldUnit::CHAR ))
313  eHScrollMetric = FieldUnit::INCH;
314  else if ( eHScrollMetric == FieldUnit::CHAR )
315  eHScrollMetric = FieldUnit::CM;
316  if ( !aCJKOptions.IsAsianTypographyEnabled() && ( eVScrollMetric == FieldUnit::LINE ))
317  eVScrollMetric = FieldUnit::INCH;
318  else if ( eVScrollMetric == FieldUnit::LINE )
319  eVScrollMetric = FieldUnit::CM;
320  }
321  SwView* pTmpView = SwModule::GetFirstView();
322  // switch rulers for all MDI-Windows
323  while(pTmpView)
324  {
325  if(bWeb == (dynamic_cast<SwWebView*>( pTmpView) != nullptr) )
326  {
327  pTmpView->ChangeVRulerMetric(eVScrollMetric);
328  pTmpView->ChangeTabMetric(eHScrollMetric);
329  }
330 
331  pTmpView = SwModule::GetNextView(pTmpView);
332  }
333 }
334 
336 {
338  {
340  }
341  return m_pNavigationConfig.get();
342 }
343 
345 {
346  if(bWeb && !m_pWebPrintOptions)
347  {
348  m_pWebPrintOptions.reset(new SwPrintOptions(true));
349  }
350  else if(!bWeb && !m_pPrintOptions)
351  {
352  m_pPrintOptions.reset(new SwPrintOptions(false));
353  }
354 
355  return bWeb ? m_pWebPrintOptions.get() : m_pPrintOptions.get();
356 }
357 
359 {
360  if(!m_pChapterNumRules)
362  return m_pChapterNumRules.get();
363 }
364 
365 void SwModule::ShowDBObj(SwView const & rView, const SwDBData& rData)
366 {
368 
369  uno::Reference<XFrame> xBeamerFrame = xFrame->findFrame("_beamer", FrameSearchFlag::CHILDREN);
370  if (!xBeamerFrame.is())
371  return;
372 
373 // the beamer has been opened by the SfxViewFrame
374  Reference<XController> xController = xBeamerFrame->getController();
375  Reference<XSelectionSupplier> xControllerSelection(xController, UNO_QUERY);
376  if (xControllerSelection.is())
377  {
378 
379  ODataAccessDescriptor aSelection;
380  aSelection.setDataSource(rData.sDataSource);
381  aSelection[DataAccessDescriptorProperty::Command] <<= rData.sCommand;
382  aSelection[DataAccessDescriptorProperty::CommandType] <<= rData.nCommandType;
383  xControllerSelection->select(makeAny(aSelection.createPropertyValueSequence()));
384  }
385  else {
386  OSL_FAIL("no selection supplier in the beamer!");
387  }
388 }
389 
391 {
393  {
394  const SvtUserOptions& rOpt = GetUserOptions();
395  m_sActAuthor = rOpt.GetFullName();
396  if (m_sActAuthor.isEmpty())
397  {
398  m_sActAuthor = rOpt.GetID();
399  if (m_sActAuthor.isEmpty())
400  m_sActAuthor = SwResId( STR_REDLINE_UNKNOWN_AUTHOR );
401  }
402  m_bAuthorInitialised = true;
403  }
405 }
406 
407 void SwModule::SetRedlineAuthor(const OUString &rAuthor)
408 {
409  m_bAuthorInitialised = true;
410  m_sActAuthor = rAuthor;
412 }
413 
414 OUString const & SwModule::GetRedlineAuthor(std::size_t nPos)
415 {
416  OSL_ENSURE(nPos < m_pAuthorNames.size(), "author not found!"); //#i45342# RTF doc with no author table caused reader to crash
417  while(nPos >= m_pAuthorNames.size())
418  {
419  InsertRedlineAuthor("nn");
420  }
421  return m_pAuthorNames[nPos];
422 }
423 
424 static Color lcl_GetAuthorColor(std::size_t nPos)
425 {
426  static const Color aColArr[] =
427  {
431  };
432 
433  return aColArr[nPos % SAL_N_ELEMENTS(aColArr)];
434 }
435 
438 {
439  auto authorsNode = rJsonWriter.startNode("authors");
440  for (std::size_t nAuthor = 0; nAuthor < m_pAuthorNames.size(); ++nAuthor)
441  {
442  auto authorNode = rJsonWriter.startNode("");
443  rJsonWriter.put("index", static_cast<sal_Int64>(nAuthor));
444  rJsonWriter.put("name", m_pAuthorNames[nAuthor]);
445  rJsonWriter.put("color", sal_uInt32(lcl_GetAuthorColor(nAuthor)));
446  }
447 }
448 
449 std::size_t SwModule::InsertRedlineAuthor(const OUString& rAuthor)
450 {
451  std::size_t nPos = 0;
452 
453  while(nPos < m_pAuthorNames.size() && m_pAuthorNames[nPos] != rAuthor)
454  ++nPos;
455 
456  if (nPos == m_pAuthorNames.size())
457  m_pAuthorNames.push_back(rAuthor);
458 
459  return nPos;
460 }
461 
462 static void lcl_FillAuthorAttr( std::size_t nAuthor, SfxItemSet &rSet,
463  const AuthorCharAttr &rAttr )
464 {
465  Color aCol( rAttr.m_nColor );
466 
467  if( rAttr.m_nColor == COL_TRANSPARENT )
468  aCol = lcl_GetAuthorColor(nAuthor);
469 
470  bool bBackGr = rAttr.m_nColor == COL_NONE_COLOR;
471 
472  switch (rAttr.m_nItemId)
473  {
474  case SID_ATTR_CHAR_WEIGHT:
475  {
476  SvxWeightItem aW( static_cast<FontWeight>(rAttr.m_nAttr), RES_CHRATR_WEIGHT );
477  rSet.Put( aW );
478  aW.SetWhich( RES_CHRATR_CJK_WEIGHT );
479  rSet.Put( aW );
480  aW.SetWhich( RES_CHRATR_CTL_WEIGHT );
481  rSet.Put( aW );
482  }
483  break;
484 
485  case SID_ATTR_CHAR_POSTURE:
486  {
487  SvxPostureItem aP( static_cast<FontItalic>(rAttr.m_nAttr), RES_CHRATR_POSTURE );
488  rSet.Put( aP );
489  aP.SetWhich( RES_CHRATR_CJK_POSTURE );
490  rSet.Put( aP );
491  aP.SetWhich( RES_CHRATR_CTL_POSTURE );
492  rSet.Put( aP );
493  }
494  break;
495 
496  case SID_ATTR_CHAR_UNDERLINE:
497  rSet.Put( SvxUnderlineItem( static_cast<FontLineStyle>(rAttr.m_nAttr),
499  break;
500 
501  case SID_ATTR_CHAR_STRIKEOUT:
502  rSet.Put(SvxCrossedOutItem( static_cast<FontStrikeout>(rAttr.m_nAttr),
504  break;
505 
506  case SID_ATTR_CHAR_CASEMAP:
507  rSet.Put( SvxCaseMapItem( static_cast<SvxCaseMap>(rAttr.m_nAttr),
509  break;
510 
511  case SID_ATTR_BRUSH:
512  rSet.Put( SvxBrushItem( aCol, RES_CHRATR_BACKGROUND ));
513  bBackGr = true;
514  break;
515  }
516 
517  if( !bBackGr )
518  rSet.Put( SvxColorItem( aCol, RES_CHRATR_COLOR ) );
519 }
520 
521 void SwModule::GetInsertAuthorAttr(std::size_t nAuthor, SfxItemSet &rSet)
522 {
523  lcl_FillAuthorAttr(nAuthor, rSet, m_pModuleConfig->GetInsertAuthorAttr());
524 }
525 
526 void SwModule::GetDeletedAuthorAttr(std::size_t nAuthor, SfxItemSet &rSet)
527 {
528  lcl_FillAuthorAttr(nAuthor, rSet, m_pModuleConfig->GetDeletedAuthorAttr());
529 }
530 
531 // For future extension:
532 void SwModule::GetFormatAuthorAttr( std::size_t nAuthor, SfxItemSet &rSet )
533 {
534  lcl_FillAuthorAttr( nAuthor, rSet, m_pModuleConfig->GetFormatAuthorAttr() );
535 }
536 
537 sal_uInt16 SwModule::GetRedlineMarkPos() const
538 {
539  return m_pModuleConfig->GetMarkAlignMode();
540 }
541 
542 bool SwModule::IsInsTableFormatNum(bool bHTML) const
543 {
544  return m_pModuleConfig->IsInsTableFormatNum(bHTML);
545 }
546 
548 {
549  return m_pModuleConfig->IsInsTableChangeNumFormat(bHTML);
550 }
551 
552 bool SwModule::IsInsTableAlignNum(bool bHTML) const
553 {
554  return m_pModuleConfig->IsInsTableAlignNum(bHTML);
555 }
556 
558 {
559  return m_pModuleConfig->IsSplitVerticalByDefault(bHTML);
560 }
561 
562 void SwModule::SetSplitVerticalByDefault(bool bHTML, bool value)
563 {
564  m_pModuleConfig->SetSplitVerticalByDefault(bHTML, value);
565 }
566 
568 {
569  return m_pModuleConfig->GetMarkAlignColor();
570 }
571 
573 {
574  return GetUsrPref( bWeb );
575 }
576 
577 OUString const & SwModule::GetDocStatWordDelim() const
578 {
579  return m_pModuleConfig->GetWordDelimiter();
580 }
581 
582 // Passing-through of the ModuleConfig's Metric (for HTML-Export)
583 FieldUnit SwModule::GetMetric( bool bWeb ) const
584 {
585  SwMasterUsrPref* pPref;
586  if(bWeb)
587  {
588  if(!m_pWebUsrPref)
589  GetUsrPref(true);
590  pPref = m_pWebUsrPref.get();
591  }
592  else
593  {
594  if(!m_pUsrPref)
595  GetUsrPref(false);
596  pPref = m_pUsrPref.get();
597  }
598  return pPref->GetMetric();
599 }
600 
601 // Pass-through Update-Status
602 sal_uInt16 SwModule::GetLinkUpdMode() const
603 {
604  if(!m_pUsrPref)
605  GetUsrPref(false);
606  return static_cast<sal_uInt16>(m_pUsrPref->GetUpdateLinkMode());
607 }
608 
610 {
611  if(!m_pUsrPref)
612  GetUsrPref(false);
613  return m_pUsrPref->GetFieldUpdateFlags();
614 }
615 
617 {
618  if(!m_pUsrPref)
619  GetUsrPref(false);
620  m_pUsrPref->SetFieldUpdateFlags(eFieldFlags);
621 }
622 
623 void SwModule::ApplyLinkMode(sal_Int32 nNewLinkMode)
624 {
625  if(!m_pUsrPref)
626  GetUsrPref(false);
627  m_pUsrPref->SetUpdateLinkMode(nNewLinkMode);
628 }
629 
630 void SwModule::CheckSpellChanges( bool bOnlineSpelling,
631  bool bIsSpellWrongAgain, bool bIsSpellAllAgain, bool bSmartTags )
632 {
633  bool bOnlyWrong = bIsSpellWrongAgain && !bIsSpellAllAgain;
634  bool bInvalid = bOnlyWrong || bIsSpellAllAgain;
635  if( !(bOnlineSpelling || bInvalid) )
636  return;
637 
638  for( SwDocShell *pDocSh = static_cast<SwDocShell*>(SfxObjectShell::GetFirst(checkSfxObjectShell<SwDocShell>));
639  pDocSh;
640  pDocSh = static_cast<SwDocShell*>(SfxObjectShell::GetNext( *pDocSh, checkSfxObjectShell<SwDocShell> ) ) )
641  {
642  SwDoc* pTmp = pDocSh->GetDoc();
644  {
645  pTmp->SpellItAgainSam( bInvalid, bOnlyWrong, bSmartTags );
647  if ( bSmartTags && pViewShell && pViewShell->GetWin() )
648  pViewShell->GetWin()->Invalidate();
649  }
650  }
651 }
652 
653 void SwModule::ApplyDefaultPageMode(bool bIsSquaredPageMode)
654 {
655  if(!m_pUsrPref)
656  GetUsrPref(false);
657  m_pUsrPref->SetDefaultPageMode(bIsSquaredPageMode);
658 }
659 
661 {
662  return m_pModuleConfig->GetCompareMode();
663 }
664 
666 {
667  return m_pModuleConfig->IsUseRsid();
668 }
669 
671 {
672  return m_pModuleConfig->IsIgnorePieces();
673 }
674 
675 sal_uInt16 SwModule::GetPieceLen() const
676 {
677  return m_pModuleConfig->GetPieceLen();
678 }
679 
680 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
SfxViewFrame * GetViewFrame() const
void ApplyUserCharUnit(bool bApplyChar, bool bWeb)
Definition: swmodul1.cxx:276
static void ShowDBObj(SwView const &rView, const SwDBData &rData)
Definition: swmodul1.cxx:365
constexpr TypedWhichId< SvxCrossedOutItem > RES_CHRATR_CROSSEDOUT(5)
FieldUnit
sal_Int32 nCommandType
Definition: swdbdata.hxx:32
virtual void ApplyViewOptions(const SwViewOption &rOpt)
Definition: viewsh.cxx:2105
void SetUsrPref(const SwViewOption &rCopy)
Definition: usrpref.cxx:37
FieldUnit GetVScrollMetric() const
Definition: usrpref.hxx:225
SwFieldUpdateFlags
Definition: fldupde.hxx:22
SwView * GetActiveView()
Definition: swmodul1.cxx:115
SwNavigationConfig * GetNavigationConfig()
Definition: swmodul1.cxx:335
void ChangeTabMetric(FieldUnit eUnit)
Definition: viewmdi.cxx:578
View of a document.
Definition: pview.hxx:161
SwPrintOptions * GetPrtOptions(bool bWeb)
Definition: swmodul1.cxx:344
OUString sDataSource
Definition: swdbdata.hxx:30
Reference< XFrame > xFrame
SwChapterNumRules * GetChapterNumRules()
Definition: swmodul1.cxx:358
void GetRedlineAuthorInfo(tools::JsonWriter &rJsonWriter)
See SwXTextDocument::getTrackedChangeAuthors().
Definition: swmodul1.cxx:437
void SetHScrollMetric(FieldUnit eSet)
Definition: usrpref.hxx:218
SwWrtShell * GetActiveWrtShell()
Definition: swmodul1.cxx:107
Definition: doc.hxx:186
bool IsApplyCharUnit() const
Definition: usrpref.hxx:232
ScopedJsonWriterNode startNode(const char *)
constexpr::Color COL_AUTHOR4_DARK(105, 43, 157)
constexpr TypedWhichId< SvxUnderlineItem > RES_CHRATR_UNDERLINE(14)
void SetSplitVerticalByDefault(bool bHTML, bool value)
Definition: swmodul1.cxx:562
bool IsSplitVerticalByDefault(bool bHTML) const
Definition: swmodul1.cxx:557
std::unique_ptr< SwMasterUsrPref, o3tl::default_delete< SwMasterUsrPref > > m_pWebUsrPref
Definition: swmodule.hxx:81
bool IsIgnorePieces() const
Definition: swmodul1.cxx:670
void SetVScrollMetric(FieldUnit eSet)
Definition: usrpref.hxx:226
const SwMasterUsrPref * GetUsrPref(bool bWeb) const
Definition: apphdl.cxx:1044
std::unique_ptr< SwChapterNumRules > m_pChapterNumRules
Definition: swmodule.hxx:84
std::size_t GetRedlineAuthor()
Definition: swmodul1.cxx:390
void ApplyRulerMetric(FieldUnit eMetric, bool bHorizontal, bool bWeb)
Definition: swmodul1.cxx:240
constexpr TypedWhichId< SvxPostureItem > RES_CHRATR_CJK_POSTURE(25)
void GetInsertAuthorAttr(std::size_t nAuthor, SfxItemSet &rSet)
Definition: swmodul1.cxx:521
sal_uInt16 m_nAttr
Definition: authratr.hxx:30
virtual void SetReadonlyOption(bool bSet)
Definition: viewsh.cxx:2355
void ApplyDefaultPageMode(bool bIsSquaredPageMode)
Definition: swmodul1.cxx:653
FieldUnit GetHScrollMetric() const
Definition: usrpref.hxx:217
SwWrtShell & GetWrtShell() const
Definition: view.hxx:399
void SetPagePrevRow(sal_uInt8 n)
Definition: viewopt.hxx:454
static void lcl_SetUIPrefs(const SwViewOption &rPref, SwView *pView, SwViewShell *pSh)
Definition: swmodul1.cxx:69
Used by the UI to modify the document model.
Definition: wrtsh.hxx:90
constexpr TypedWhichId< SvxCaseMapItem > RES_CHRATR_CASEMAP(RES_CHRATR_BEGIN)
static void CheckSpellChanges(bool bOnlineSpelling, bool bIsSpellWrongAgain, bool bIsSpellAllAgain, bool bSmartTags)
Definition: swmodul1.cxx:630
constexpr::Color COL_TRANSPARENT(0xFF, 0xFF, 0xFF, 0xFF)
bool IsReadonly() const
Definition: viewopt.hxx:457
Reference< XController > xController
void InvalidateBorder()
const SwViewOption * GetViewOption(bool bWeb)
Definition: swmodul1.cxx:572
void ApplyLinkMode(sal_Int32 nNewLinkMode)
Definition: swmodul1.cxx:623
bool getBrowseMode() const
Definition: viewopt.hxx:466
void GetFormatAuthorAttr(std::size_t nAuthor, SfxItemSet &rSet)
Definition: swmodul1.cxx:532
std::unique_ptr< SwPrintOptions > m_pWebPrintOptions
Definition: swmodule.hxx:83
SfxFrame & GetFrame() const
static SfxViewShell * GetNext(const SfxViewShell &rPrev, bool bOnlyVisible=true, const std::function< bool(const SfxViewShell *)> &isViewShell=nullptr)
static SfxViewShell * Current()
constexpr::Color COL_AUTHOR6_DARK(0, 128, 128)
void SetUIOptions(const SwViewOption &rOpt)
Definition: viewsh.cxx:2344
constexpr::Color COL_AUTHOR8_DARK(53, 85, 107)
bool IsViewVScrollBar() const
Definition: viewopt.hxx:513
constexpr::Color COL_AUTHOR2_DARK(6, 70, 162)
void EnableHScrollbar(bool bEnable)
Definition: pview.cxx:1846
std::vector< OUString > m_pAuthorNames
Definition: swmodule.hxx:105
bool IsViewHRuler(bool bDirect=false) const
Definition: viewopt.hxx:586
void CreateVRuler()
Definition: viewmdi.cxx:606
bool m_bAuthorInitialised
Definition: swmodule.hxx:112
void PrepareView(bool bIgnoreCount=false)
Definition: PostItMgr.cxx:1911
void KillVRuler()
Definition: viewmdi.cxx:615
constexpr TypedWhichId< SvxWeightItem > RES_CHRATR_WEIGHT(15)
bool IsInsTableAlignNum(bool bHTML) const
Definition: swmodul1.cxx:552
SwCompareMode
Definition: modcfg.hxx:87
#define SAL_N_ELEMENTS(arr)
const Color & GetRedlineMarkColor() const
Definition: swmodul1.cxx:567
#define COL_NONE_COLOR
void SetPagePrevCol(sal_uInt8 n)
Definition: viewopt.hxx:456
std::size_t InsertRedlineAuthor(const OUString &rAuthor)
Definition: swmodul1.cxx:449
sal_uInt16 GetLinkUpdMode() const
Definition: swmodul1.cxx:602
constexpr::Color COL_AUTHOR9_DARK(209, 118, 0)
virtual void Invalidate(InvalidateFlags nFlags=InvalidateFlags::NONE)
void GetDeletedAuthorAttr(std::size_t nAuthor, SfxItemSet &rSet)
Definition: swmodul1.cxx:526
void StartAction()
Definition: viewsh.hxx:590
bool IsViewVRuler(bool bDirect=false) const
Definition: viewopt.hxx:600
SwFieldUpdateFlags GetFieldUpdateFlags() const
Definition: swmodul1.cxx:609
SvViewOpt
Definition: swmodule.hxx:62
static SwView * GetFirstView()
Definition: swmodul1.cxx:121
bool IsInsTableFormatNum(bool bHTML) const
Definition: swmodul1.cxx:542
SvtUserOptions & GetUserOptions()
Definition: apphdl.cxx:1034
sal_uInt16 m_nItemId
Definition: authratr.hxx:29
OUString SwResId(const char *pId)
Definition: swmodule.cxx:166
OUString GetID() const
OUString m_sActAuthor
Definition: swmodule.hxx:76
void EnableHScrollbar(bool bEnable)
Definition: viewmdi.cxx:690
static SfxViewShell * GetFirst(bool bOnlyVisible=true, const std::function< bool(const SfxViewShell *)> &isViewShell=nullptr)
void CreateTab()
Definition: viewmdi.cxx:564
void SetApplyCharUnit(bool bSet, bool noModify=false)
Definition: usrpref.hxx:236
void SpellItAgainSam(bool bInvalid, bool bOnlyWrong, bool bSmartTags)
Re-trigger spelling in the idle handler.
Definition: doc.cxx:1164
IDocumentLayoutAccess const & getIDocumentLayoutAccess() const
Definition: doc.cxx:405
SwDocShell * GetDocShell()
Definition: view.cxx:1109
void put(const char *pPropName, const OUString &rPropValue)
const css::uno::Reference< css::frame::XFrame > & GetFrameInterface() const
bool IsReadOnly() const
Color m_nColor
Definition: authratr.hxx:31
sal_uInt8 GetPagePrevRow() const
Definition: viewopt.hxx:453
void EndAction(const bool bIdleEnd=false)
Definition: viewsh.hxx:595
constexpr::Color COL_AUTHOR1_DARK(198, 146, 0)
constexpr TypedWhichId< SvxColorItem > RES_CHRATR_COLOR(3)
std::unique_ptr< SwModuleOptions, o3tl::default_delete< SwModuleOptions > > m_pModuleConfig
Definition: swmodule.hxx:79
bool IsUseRsid() const
Definition: swmodul1.cxx:665
void EnableVScrollbar(bool bEnable)
Definition: viewmdi.cxx:699
bool IsVRulerRight() const
Definition: viewopt.hxx:621
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
constexpr TypedWhichId< SvxBrushItem > RES_CHRATR_BACKGROUND(21)
bool IsAsianTypographyEnabled() const
FieldUnit GetMetric() const
Definition: usrpref.hxx:208
void ApplyUserMetric(FieldUnit eMetric, bool bWeb)
Definition: swmodul1.cxx:204
constexpr TypedWhichId< SvxWeightItem > RES_CHRATR_CJK_WEIGHT(26)
void SetRedlineAuthor(const OUString &rAuthor)
Definition: swmodul1.cxx:407
bool IsVScrollMetric() const
Definition: usrpref.hxx:224
static SfxObjectShell * GetFirst(const std::function< bool(const SfxObjectShell *)> &isObjectShell=nullptr, bool bOnlyVisible=true)
virtual const SwViewShell * GetCurrentViewShell() const =0
Returns the layout set at the document.
const SwViewOption * GetViewOptions() const
Definition: viewsh.hxx:423
vcl::Window * GetWin() const
Definition: viewsh.hxx:337
constexpr TypedWhichId< SvxWeightItem > RES_CHRATR_CTL_WEIGHT(31)
constexpr::Color COL_AUTHOR5_DARK(197, 0, 11)
bool IsInsTableChangeNumFormat(bool bHTML) const
Definition: swmodul1.cxx:547
void SetIdle(bool b) const
Definition: viewopt.hxx:216
bool IsHScrollMetric() const
Definition: usrpref.hxx:216
constexpr TypedWhichId< SvxPostureItem > RES_CHRATR_CTL_POSTURE(30)
std::unique_ptr< SwMasterUsrPref, o3tl::default_delete< SwMasterUsrPref > > m_pUsrPref
Definition: swmodule.hxx:80
sal_uInt16 GetPieceLen() const
Definition: swmodul1.cxx:675
void ChangeVRulerMetric(FieldUnit eUnit)
Definition: viewmdi.cxx:587
SwPostItMgr * GetPostItMgr()
Definition: view.hxx:622
constexpr::Color COL_AUTHOR7_DARK(140, 132, 0)
std::unique_ptr< SwPrintOptions > m_pPrintOptions
Definition: swmodule.hxx:82
SwCompareMode GetCompareMode() const
Definition: swmodul1.cxx:660
std::unique_ptr< SwNavigationConfig > m_pNavigationConfig
Definition: swmodule.hxx:86
static SwView * GetNextView(SwView const *)
Definition: swmodul1.cxx:128
OUString GetFullName() const
static SfxObjectShell * GetNext(const SfxObjectShell &rPrev, const std::function< bool(const SfxObjectShell *)> &isObjectShell=nullptr, bool bOnlyVisible=true)
FieldUnit GetMetric(bool bWeb) const
Definition: swmodul1.cxx:583
void ApplyFieldUpdateFlags(SwFieldUpdateFlags eFieldFlags)
Definition: swmodul1.cxx:616
void SetModified()
Definition: usrpref.hxx:157
void KillTab()
Definition: viewmdi.cxx:572
sal_uInt16 GetRedlineMarkPos() const
Definition: swmodul1.cxx:537
constexpr::Color COL_AUTHOR3_DARK(87, 157, 28)
static Color lcl_GetAuthorColor(std::size_t nPos)
Definition: swmodul1.cxx:424
bool IsViewHScrollBar() const
Definition: viewopt.hxx:521
OUString const & GetDocStatWordDelim() const
Definition: swmodul1.cxx:577
void SetUIOptions(const SwViewOption &)
Definition: viewopt.hxx:689
OUString sCommand
Definition: swdbdata.hxx:31
sal_uInt8 GetPagePrevCol() const
Definition: viewopt.hxx:455
constexpr TypedWhichId< SvxPostureItem > RES_CHRATR_POSTURE(11)
static void lcl_FillAuthorAttr(std::size_t nAuthor, SfxItemSet &rSet, const AuthorCharAttr &rAttr)
Definition: swmodul1.cxx:462
Definition: view.hxx:144
sal_uInt16 nPos
void SetMetric(FieldUnit eSet, bool bNoModify=false)
Definition: usrpref.hxx:209
void EnableVScrollbar(bool bEnable)
Definition: pview.cxx:1855
void ApplyUsrPref(const SwViewOption &, SwView *, SvViewOpt nDest=SvViewOpt::DestView)
Definition: swmodul1.cxx:136
css::uno::Any SAL_CALL makeAny(const SharedUNOComponent< INTERFACE, COMPONENT > &value)