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