summaryrefslogtreecommitdiff
path: root/sw/source/uibase
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/uibase')
-rw-r--r--sw/source/uibase/app/apphdl.cxx11
-rw-r--r--sw/source/uibase/config/viewopt.cxx300
-rw-r--r--sw/source/uibase/docvw/AnnotationWin2.cxx8
-rw-r--r--sw/source/uibase/docvw/DashedLine.cxx6
-rw-r--r--sw/source/uibase/docvw/HeaderFooterWin.cxx4
-rw-r--r--sw/source/uibase/docvw/PageBreakWin.cxx2
-rw-r--r--sw/source/uibase/docvw/UnfloatTableButton.cxx3
-rw-r--r--sw/source/uibase/docvw/contentcontrolaliasbutton.cxx3
-rw-r--r--sw/source/uibase/docvw/edtwin.cxx2
-rw-r--r--sw/source/uibase/frmdlg/colex.cxx2
-rw-r--r--sw/source/uibase/inc/DashedLine.hxx5
-rw-r--r--sw/source/uibase/uiview/view0.cxx28
-rw-r--r--sw/source/uibase/uiview/viewdraw.cxx2
-rw-r--r--sw/source/uibase/uno/unomod.cxx20
-rw-r--r--sw/source/uibase/uno/unotxdoc.cxx4
15 files changed, 213 insertions, 187 deletions
diff --git a/sw/source/uibase/app/apphdl.cxx b/sw/source/uibase/app/apphdl.cxx
index 5d6a0a66514a..a78ba9416e19 100644
--- a/sw/source/uibase/app/apphdl.cxx
+++ b/sw/source/uibase/app/apphdl.cxx
@@ -969,19 +969,20 @@ void SwModule::ConfigurationChanged( utl::ConfigurationBroadcaster* pBrdCst, Con
}
else if ( pBrdCst == m_pColorConfig.get() )
{
- if( pBrdCst == m_pColorConfig.get() )
- SwViewOption::ApplyColorConfigValues(*m_pColorConfig);
-
//invalidate all edit windows
SfxViewShell* pViewShell = SfxViewShell::GetFirst();
while(pViewShell)
{
if(pViewShell->GetWindow())
{
- if(dynamic_cast< const SwView *>( pViewShell ) != nullptr ||
+ auto pSwView = dynamic_cast<SwView *>( pViewShell );
+ if(pSwView != nullptr ||
dynamic_cast< const SwPagePreview *>( pViewShell ) != nullptr ||
dynamic_cast< const SwSrcView *>( pViewShell ) != nullptr)
{
+ SwViewOption aNewOptions = *pSwView->GetWrtShell().GetViewOptions();
+ aNewOptions.SetColorConfig(*m_pColorConfig);
+ pSwView->GetWrtShell().ApplyViewOptions(aNewOptions);
pViewShell->GetWindow()->Invalidate();
}
}
@@ -1044,7 +1045,7 @@ svtools::ColorConfig& SwModule::GetColorConfig()
if(!m_pColorConfig)
{
m_pColorConfig.reset(new svtools::ColorConfig);
- SwViewOption::ApplyColorConfigValues(*m_pColorConfig);
+ SwViewOption::SetInitialColorConfig(*m_pColorConfig);
m_pColorConfig->AddListener(this);
}
return *m_pColorConfig;
diff --git a/sw/source/uibase/config/viewopt.cxx b/sw/source/uibase/config/viewopt.cxx
index 8b272a09d1fc..04dfa0dd12f2 100644
--- a/sw/source/uibase/config/viewopt.cxx
+++ b/sw/source/uibase/config/viewopt.cxx
@@ -29,6 +29,9 @@
#include <viewopt.hxx>
#include <wdocsh.hxx>
#include <swrect.hxx>
+#include <viewsh.hxx>
+#include <view.hxx>
+#include <wrtsh.hxx>
#include <crstate.hxx>
#include <authratr.hxx>
#include <svtools/colorcfg.hxx>
@@ -40,29 +43,103 @@
#include <comphelper/lok.hxx>
#include <comphelper/configurationlistener.hxx>
-Color SwViewOption::s_aDocBoundColor(COL_LIGHTGRAY);
-Color SwViewOption::s_aObjectBoundColor(COL_LIGHTGRAY);
-Color SwViewOption::s_aDocColor(COL_LIGHTGRAY);
-Color SwViewOption::s_aAppBackgroundColor(COL_LIGHTGRAY);
-Color SwViewOption::s_aTableBoundColor(COL_LIGHTGRAY);
-Color SwViewOption::s_aIndexShadingsColor(COL_LIGHTGRAY);
-Color SwViewOption::s_aLinksColor(COL_BLUE);
-Color SwViewOption::s_aVisitedLinksColor(COL_RED);
-Color SwViewOption::s_aDirectCursorColor(COL_BLUE);
-Color SwViewOption::s_aTextGridColor(COL_LIGHTGRAY);
-Color SwViewOption::s_aSpellColor(COL_LIGHTRED);
-Color SwViewOption::s_aGrammarColor(COL_LIGHTBLUE);
-Color SwViewOption::s_aSmarttagColor(COL_LIGHTMAGENTA);
-Color SwViewOption::s_aFontColor(COL_BLACK);
-Color SwViewOption::s_aFieldShadingsColor(COL_LIGHTGRAY);
-Color SwViewOption::s_aSectionBoundColor(COL_LIGHTGRAY);
-Color SwViewOption::s_aPageBreakColor(COL_BLUE);
-Color SwViewOption::s_aScriptIndicatorColor(COL_GREEN);
-Color SwViewOption::s_aShadowColor(COL_GRAY);
-Color SwViewOption::s_aHeaderFooterMarkColor(COL_BLUE);
-
-ViewOptFlags SwViewOption::s_nAppearanceFlags = ViewOptFlags::DocBoundaries|ViewOptFlags::ObjectBoundaries;
sal_uInt16 SwViewOption::s_nPixelTwips = 0; // one pixel on the screen
+SwViewColors SwViewOption::s_aInitialColorConfig {};
+
+SwViewColors::SwViewColors() :
+ m_aDocColor(COL_LIGHTGRAY),
+ m_aDocBoundColor(COL_LIGHTGRAY),
+ m_aObjectBoundColor(COL_LIGHTGRAY),
+ m_aAppBackgroundColor(COL_LIGHTGRAY),
+ m_aTableBoundColor(COL_LIGHTGRAY),
+ m_aFontColor(COL_BLACK),
+ m_aIndexShadingsColor(COL_LIGHTGRAY),
+ m_aLinksColor(COL_BLUE),
+ m_aVisitedLinksColor(COL_RED),
+ m_aDirectCursorColor(COL_BLUE),
+ m_aTextGridColor(COL_LIGHTGRAY),
+ m_aSpellColor(COL_LIGHTRED),
+ m_aGrammarColor(COL_LIGHTBLUE),
+ m_aSmarttagColor(COL_LIGHTMAGENTA),
+ m_aFieldShadingsColor(COL_LIGHTGRAY),
+ m_aSectionBoundColor(COL_LIGHTGRAY),
+ m_aPageBreakColor(COL_BLUE),
+ m_aScriptIndicatorColor(COL_GREEN),
+ m_aShadowColor(COL_GRAY),
+ m_aHeaderFooterMarkColor(COL_BLUE)
+{}
+
+SwViewColors::SwViewColors(const svtools::ColorConfig& rConfig)
+{
+ m_aDocColor = rConfig.GetColorValue(svtools::DOCCOLOR).nColor;
+
+ svtools::ColorConfigValue aValue = rConfig.GetColorValue(svtools::DOCBOUNDARIES);
+ m_aDocBoundColor = aValue.nColor;
+ m_nAppearanceFlags = ViewOptFlags::NONE;
+ if(aValue.bIsVisible)
+ m_nAppearanceFlags |= ViewOptFlags::DocBoundaries;
+
+ m_aAppBackgroundColor = rConfig.GetColorValue(svtools::APPBACKGROUND).nColor;
+
+ aValue = rConfig.GetColorValue(svtools::OBJECTBOUNDARIES);
+ m_aObjectBoundColor = aValue.nColor;
+ if(aValue.bIsVisible)
+ m_nAppearanceFlags |= ViewOptFlags::ObjectBoundaries;
+
+ aValue = rConfig.GetColorValue(svtools::TABLEBOUNDARIES);
+ m_aTableBoundColor = aValue.nColor;
+ if(aValue.bIsVisible)
+ m_nAppearanceFlags |= ViewOptFlags::TableBoundaries;
+
+ aValue = rConfig.GetColorValue(svtools::WRITERIDXSHADINGS);
+ m_aIndexShadingsColor = aValue.nColor;
+ if(aValue.bIsVisible)
+ m_nAppearanceFlags |= ViewOptFlags::IndexShadings;
+
+ aValue = rConfig.GetColorValue(svtools::LINKS);
+ m_aLinksColor = aValue.nColor;
+ if(aValue.bIsVisible)
+ m_nAppearanceFlags |= ViewOptFlags::Links;
+
+ aValue = rConfig.GetColorValue(svtools::LINKSVISITED);
+ m_aVisitedLinksColor = aValue.nColor;
+ if(aValue.bIsVisible)
+ m_nAppearanceFlags |= ViewOptFlags::VisitedLinks;
+
+ aValue = rConfig.GetColorValue(svtools::SHADOWCOLOR);
+ m_aShadowColor = aValue.nColor;
+ if(aValue.bIsVisible)
+ m_nAppearanceFlags |= ViewOptFlags::Shadow;
+
+ m_aDirectCursorColor = rConfig.GetColorValue(svtools::WRITERDIRECTCURSOR).nColor;
+
+ m_aTextGridColor = rConfig.GetColorValue(svtools::WRITERTEXTGRID).nColor;
+
+ m_aSpellColor = rConfig.GetColorValue(svtools::SPELL).nColor;
+ m_aGrammarColor = rConfig.GetColorValue(svtools::GRAMMAR).nColor;
+
+ m_aSmarttagColor = rConfig.GetColorValue(svtools::SMARTTAGS).nColor;
+
+ m_aFontColor = rConfig.GetColorValue(svtools::FONTCOLOR).nColor;
+
+ aValue = rConfig.GetColorValue(svtools::WRITERFIELDSHADINGS);
+ m_aFieldShadingsColor = aValue.nColor;
+ if(aValue.bIsVisible)
+ m_nAppearanceFlags |= ViewOptFlags::FieldShadings;
+
+ aValue = rConfig.GetColorValue(svtools::WRITERSECTIONBOUNDARIES);
+ m_aSectionBoundColor = aValue.nColor;
+ if(aValue.bIsVisible)
+ m_nAppearanceFlags |= ViewOptFlags::SectionBoundaries;
+
+ aValue = rConfig.GetColorValue(svtools::WRITERPAGEBREAKS);
+ m_aPageBreakColor = aValue.nColor;
+
+ aValue = rConfig.GetColorValue(svtools::WRITERHEADERFOOTERMARK);
+ m_aHeaderFooterMarkColor = aValue.nColor;
+
+ m_aScriptIndicatorColor = rConfig.GetColorValue(svtools::WRITERSCRIPTINDICATOR).nColor;
+}
bool SwViewOption::IsEqualFlags( const SwViewOption &rOpt ) const
{
@@ -140,7 +217,7 @@ sal_uInt16 SwViewOption::GetPostItsWidth( const OutputDevice *pOut )
return sal_uInt16(pOut->GetTextWidth(" "));
}
-void SwViewOption::PaintPostIts( OutputDevice *pOut, const SwRect &rRect, bool bIsScript )
+void SwViewOption::PaintPostIts( OutputDevice *pOut, const SwRect &rRect, bool bIsScript ) const
{
if( !(pOut && bIsScript) )
return;
@@ -154,7 +231,7 @@ void SwViewOption::PaintPostIts( OutputDevice *pOut, const SwRect &rRect, bool b
const Point aTopLeft( rRect.Left() + nPix, rRect.Top() + nPix );
const Point aBotRight( rRect.Right() - nPix, rRect.Bottom() - nPix );
const SwRect aRect( aTopLeft, aBotRight );
- DrawRect( pOut, aRect, s_aScriptIndicatorColor );
+ DrawRect( pOut, aRect, m_aColorConfig.m_aScriptIndicatorColor );
pOut->SetLineColor( aOldLineColor );
}
@@ -213,8 +290,9 @@ SwViewOption::SwViewOption() :
m_bTest1 = m_bTest2 = m_bTest3 = m_bTest4 =
m_bTest5 = m_bTest6 = m_bTest7 = m_bTest8 = m_bTest10 = false;
#endif
+ m_aColorConfig = s_aInitialColorConfig;
if (comphelper::LibreOfficeKit::isActive())
- s_aAppBackgroundColor = COL_TRANSPARENT;
+ m_aColorConfig.m_aAppBackgroundColor = COL_TRANSPARENT;
}
SwViewOption::SwViewOption(const SwViewOption& rVOpt)
@@ -247,6 +325,7 @@ SwViewOption::SwViewOption(const SwViewOption& rVOpt)
m_bShowPlaceHolderFields = rVOpt.m_bShowPlaceHolderFields;
m_bIdle = rVOpt.m_bIdle;
m_nDefaultAnchor = rVOpt.m_nDefaultAnchor;
+ m_aColorConfig = rVOpt.m_aColorConfig;
#ifdef DBG_UTIL
m_bTest1 = rVOpt.m_bTest1;
@@ -289,6 +368,7 @@ SwViewOption& SwViewOption::operator=( const SwViewOption &rVOpt )
m_bShowPlaceHolderFields = rVOpt.m_bShowPlaceHolderFields;
m_bIdle = rVOpt.m_bIdle;
m_nDefaultAnchor = rVOpt.m_nDefaultAnchor;
+ m_aColorConfig = rVOpt.m_aColorConfig;
#ifdef DBG_UTIL
m_bTest1 = rVOpt.m_bTest1;
@@ -366,179 +446,107 @@ RndStdIds SwViewOption::GetDefaultAnchorType() const
}//switch
}
-Color& SwViewOption::GetDocColor()
+const Color& SwViewOption::GetDocColor() const
{
- return s_aDocColor;
+ return m_aColorConfig.m_aDocColor;
}
-Color& SwViewOption::GetDocBoundariesColor()
+const Color& SwViewOption::GetDocBoundariesColor() const
{
- return s_aDocBoundColor;
+ return m_aColorConfig.m_aDocBoundColor;
}
-Color& SwViewOption::GetObjectBoundariesColor()
+const Color& SwViewOption::GetObjectBoundariesColor() const
{
- return s_aObjectBoundColor;
+ return m_aColorConfig.m_aObjectBoundColor;
}
-Color& SwViewOption::GetAppBackgroundColor()
+const Color& SwViewOption::GetAppBackgroundColor() const
{
- return s_aAppBackgroundColor;
+ return m_aColorConfig.m_aAppBackgroundColor;
}
-Color& SwViewOption::GetTableBoundariesColor()
+const Color& SwViewOption::GetTableBoundariesColor() const
{
- return s_aTableBoundColor;
+ return m_aColorConfig.m_aTableBoundColor;
}
-Color& SwViewOption::GetIndexShadingsColor()
+const Color& SwViewOption::GetIndexShadingsColor() const
{
- return s_aIndexShadingsColor;
+ return m_aColorConfig.m_aIndexShadingsColor;
}
-Color& SwViewOption::GetLinksColor()
+const Color& SwViewOption::GetLinksColor() const
{
- return s_aLinksColor;
+ return m_aColorConfig.m_aLinksColor;
}
-Color& SwViewOption::GetVisitedLinksColor()
+const Color& SwViewOption::GetVisitedLinksColor() const
{
- return s_aVisitedLinksColor;
+ return m_aColorConfig.m_aVisitedLinksColor;
}
-Color& SwViewOption::GetDirectCursorColor()
+const Color& SwViewOption::GetDirectCursorColor() const
{
- return s_aDirectCursorColor;
+ return m_aColorConfig.m_aDirectCursorColor;
}
-Color& SwViewOption::GetTextGridColor()
+const Color& SwViewOption::GetTextGridColor() const
{
- return s_aTextGridColor;
+ return m_aColorConfig.m_aTextGridColor;
}
-Color& SwViewOption::GetSpellColor()
+const Color& SwViewOption::GetSpellColor() const
{
- return s_aSpellColor;
+ return m_aColorConfig.m_aSpellColor;
}
-Color& SwViewOption::GetGrammarColor()
+const Color& SwViewOption::GetGrammarColor() const
{
- return s_aGrammarColor;
+ return m_aColorConfig.m_aGrammarColor;
}
-Color& SwViewOption::GetSmarttagColor()
+const Color& SwViewOption::GetSmarttagColor() const
{
- return s_aSmarttagColor;
+ return m_aColorConfig.m_aSmarttagColor;
}
-Color& SwViewOption::GetShadowColor()
+const Color& SwViewOption::GetShadowColor() const
{
- return s_aShadowColor;
+ return m_aColorConfig.m_aShadowColor;
}
-Color& SwViewOption::GetFontColor()
+const Color& SwViewOption::GetFontColor() const
{
- return s_aFontColor;
+ return m_aColorConfig.m_aFontColor;
}
-Color& SwViewOption::GetFieldShadingsColor()
+const Color& SwViewOption::GetFieldShadingsColor() const
{
- return s_aFieldShadingsColor;
+ return m_aColorConfig.m_aFieldShadingsColor;
}
-Color& SwViewOption::GetSectionBoundColor()
+const Color& SwViewOption::GetSectionBoundColor() const
{
- return s_aSectionBoundColor;
+ return m_aColorConfig.m_aSectionBoundColor;
}
-Color& SwViewOption::GetPageBreakColor()
+const Color& SwViewOption::GetPageBreakColor() const
{
- return s_aPageBreakColor;
+ return m_aColorConfig.m_aPageBreakColor;
}
-Color& SwViewOption::GetHeaderFooterMarkColor()
+const Color& SwViewOption::GetHeaderFooterMarkColor() const
{
- return s_aHeaderFooterMarkColor;
-}
-
-void SwViewOption::ApplyColorConfigValues(const svtools::ColorConfig& rConfig )
-{
- s_aDocColor = rConfig.GetColorValue(svtools::DOCCOLOR).nColor;
-
- svtools::ColorConfigValue aValue = rConfig.GetColorValue(svtools::DOCBOUNDARIES);
- s_aDocBoundColor = aValue.nColor;
- s_nAppearanceFlags = ViewOptFlags::NONE;
- if(aValue.bIsVisible)
- s_nAppearanceFlags |= ViewOptFlags::DocBoundaries;
-
- s_aAppBackgroundColor = rConfig.GetColorValue(svtools::APPBACKGROUND).nColor;
-
- aValue = rConfig.GetColorValue(svtools::OBJECTBOUNDARIES);
- s_aObjectBoundColor = aValue.nColor;
- if(aValue.bIsVisible)
- s_nAppearanceFlags |= ViewOptFlags::ObjectBoundaries;
-
- aValue = rConfig.GetColorValue(svtools::TABLEBOUNDARIES);
- s_aTableBoundColor = aValue.nColor;
- if(aValue.bIsVisible)
- s_nAppearanceFlags |= ViewOptFlags::TableBoundaries;
-
- aValue = rConfig.GetColorValue(svtools::WRITERIDXSHADINGS);
- s_aIndexShadingsColor = aValue.nColor;
- if(aValue.bIsVisible)
- s_nAppearanceFlags |= ViewOptFlags::IndexShadings;
-
- aValue = rConfig.GetColorValue(svtools::LINKS);
- s_aLinksColor = aValue.nColor;
- if(aValue.bIsVisible)
- s_nAppearanceFlags |= ViewOptFlags::Links;
-
- aValue = rConfig.GetColorValue(svtools::LINKSVISITED);
- s_aVisitedLinksColor = aValue.nColor;
- if(aValue.bIsVisible)
- s_nAppearanceFlags |= ViewOptFlags::VisitedLinks;
-
- aValue = rConfig.GetColorValue(svtools::SHADOWCOLOR);
- s_aShadowColor = aValue.nColor;
- if(aValue.bIsVisible)
- s_nAppearanceFlags |= ViewOptFlags::Shadow;
-
- s_aDirectCursorColor = rConfig.GetColorValue(svtools::WRITERDIRECTCURSOR).nColor;
-
- s_aTextGridColor = rConfig.GetColorValue(svtools::WRITERTEXTGRID).nColor;
-
- s_aSpellColor = rConfig.GetColorValue(svtools::SPELL).nColor;
- s_aGrammarColor = rConfig.GetColorValue(svtools::GRAMMAR).nColor;
-
- s_aSmarttagColor = rConfig.GetColorValue(svtools::SMARTTAGS).nColor;
-
- s_aFontColor = rConfig.GetColorValue(svtools::FONTCOLOR).nColor;
-
- aValue = rConfig.GetColorValue(svtools::WRITERFIELDSHADINGS);
- s_aFieldShadingsColor = aValue.nColor;
- if(aValue.bIsVisible)
- s_nAppearanceFlags |= ViewOptFlags::FieldShadings;
-
- aValue = rConfig.GetColorValue(svtools::WRITERSECTIONBOUNDARIES);
- s_aSectionBoundColor = aValue.nColor;
- if(aValue.bIsVisible)
- s_nAppearanceFlags |= ViewOptFlags::SectionBoundaries;
-
- aValue = rConfig.GetColorValue(svtools::WRITERPAGEBREAKS);
- s_aPageBreakColor = aValue.nColor;
-
- aValue = rConfig.GetColorValue(svtools::WRITERHEADERFOOTERMARK);
- s_aHeaderFooterMarkColor = aValue.nColor;
-
- s_aScriptIndicatorColor = rConfig.GetColorValue(svtools::WRITERSCRIPTINDICATOR).nColor;
+ return m_aColorConfig.m_aHeaderFooterMarkColor;
}
void SwViewOption::SetAppearanceFlag(ViewOptFlags nFlag, bool bSet, bool bSaveInConfig )
{
if(bSet)
- s_nAppearanceFlags |= nFlag;
+ m_aColorConfig.m_nAppearanceFlags |= nFlag;
else
- s_nAppearanceFlags &= ~nFlag;
+ m_aColorConfig.m_nAppearanceFlags &= ~nFlag;
if(!bSaveInConfig)
return;
@@ -575,9 +583,9 @@ void SwViewOption::SetAppearanceFlag(ViewOptFlags nFlag, bool bSet, bool bSaveIn
}
}
-bool SwViewOption::IsAppearanceFlag(ViewOptFlags nFlag)
+bool SwViewOption::IsAppearanceFlag(ViewOptFlags nFlag) const
{
- return bool(s_nAppearanceFlags & nFlag);
+ return bool(m_aColorConfig.m_nAppearanceFlags & nFlag);
}
namespace{
@@ -594,4 +602,18 @@ bool SwViewOption::IsIgnoreProtectedArea()
return gIgnoreProtectedArea.get();
}
+const SwViewOption& SwViewOption::GetCurrentViewOptions()
+{
+ SfxViewShell* pCurrentShell = SfxViewShell::Current();
+ SwView* pView = dynamic_cast<SwView*>(pCurrentShell);
+ if(pView)
+ {
+ return *pView->GetWrtShell().GetViewOptions();
+ }
+
+ // Some unit tests don't have a SfxViewShell, so we need to return something
+ static SwViewOption aDefaultViewOptions;
+ return aDefaultViewOptions;
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/uibase/docvw/AnnotationWin2.cxx b/sw/source/uibase/docvw/AnnotationWin2.cxx
index eff0c82571d8..677d62210046 100644
--- a/sw/source/uibase/docvw/AnnotationWin2.cxx
+++ b/sw/source/uibase/docvw/AnnotationWin2.cxx
@@ -352,14 +352,14 @@ void SwAnnotationWin::InitControls()
EEControlBits nCntrl = mpOutliner->GetControlWord();
// TODO: crash when AUTOCOMPLETE enabled
nCntrl |= EEControlBits::MARKFIELDS | EEControlBits::PASTESPECIAL | EEControlBits::AUTOCORRECT | EEControlBits::USECHARATTRIBS; // | EEControlBits::AUTOCOMPLETE;
- if (SwViewOption::IsFieldShadings())
- nCntrl |= EEControlBits::MARKFIELDS;
- else
- nCntrl &= ~EEControlBits::MARKFIELDS;
if (SwWrtShell* pWrtShell = mrView.GetWrtShellPtr())
{
const SwViewOption* pVOpt = pWrtShell->GetViewOptions();
+ if (pVOpt->IsFieldShadings())
+ nCntrl |= EEControlBits::MARKFIELDS;
+ else
+ nCntrl &= ~EEControlBits::MARKFIELDS;
if (pVOpt->IsOnlineSpell())
nCntrl |= EEControlBits::ONLINESPELLING;
else
diff --git a/sw/source/uibase/docvw/DashedLine.cxx b/sw/source/uibase/docvw/DashedLine.cxx
index 2ec691b4c643..0ede6da3ae1f 100644
--- a/sw/source/uibase/docvw/DashedLine.cxx
+++ b/sw/source/uibase/docvw/DashedLine.cxx
@@ -19,7 +19,7 @@
#include <vcl/settings.hxx>
#include <memory>
-SwDashedLine::SwDashedLine( vcl::Window* pParent, Color& ( *pColorFn )() )
+SwDashedLine::SwDashedLine( vcl::Window* pParent, const Color& ( SwViewOption::* pColorFn )() const )
: Control( pParent, WB_DIALOGCONTROL | WB_HORZ )
, m_pColorFn( pColorFn )
{
@@ -51,7 +51,7 @@ void SwDashedLine::Paint(vcl::RenderContext& rRenderContext, const tools::Rectan
const StyleSettings& rSettings = Application::GetSettings().GetStyleSettings();
std::vector<double> aStrokePattern;
- basegfx::BColor aColor = m_pColorFn().getBColor();
+ basegfx::BColor aColor = (SwViewOption::GetCurrentViewOptions().*m_pColorFn)().getBColor();
if (rSettings.GetHighContrastMode())
{
// Only a solid line in high contrast mode
@@ -82,7 +82,7 @@ void SwDashedLine::Paint(vcl::RenderContext& rRenderContext, const tools::Rectan
aSeq[aSeq.size() - 1] =
new drawinglayer::primitive2d::PolyPolygonStrokePrimitive2D(
basegfx::B2DPolyPolygon(aPolygon),
- drawinglayer::attribute::LineAttribute(m_pColorFn().getBColor()),
+ drawinglayer::attribute::LineAttribute((SwViewOption::GetCurrentViewOptions().*m_pColorFn)().getBColor()),
drawinglayer::attribute::StrokeAttribute(std::move(aStrokePattern)));
pProcessor->process(aSeq);
diff --git a/sw/source/uibase/docvw/HeaderFooterWin.cxx b/sw/source/uibase/docvw/HeaderFooterWin.cxx
index 186deaa12ab2..654e6be416b6 100644
--- a/sw/source/uibase/docvw/HeaderFooterWin.cxx
+++ b/sw/source/uibase/docvw/HeaderFooterWin.cxx
@@ -132,7 +132,7 @@ void SwFrameButtonPainter::PaintButton(drawinglayer::primitive2d::Primitive2DCon
B2DPolygon aPolygon = lcl_GetPolygon(rRect, bOnTop);
// Colors
- basegfx::BColor aLineColor = SwViewOption::GetHeaderFooterMarkColor().getBColor();
+ basegfx::BColor aLineColor = SwViewOption::GetCurrentViewOptions().GetHeaderFooterMarkColor().getBColor();
basegfx::BColor aFillColor = lcl_GetFillColor(aLineColor);
basegfx::BColor aLighterColor = lcl_GetLighterGradientColor(aFillColor);
@@ -362,7 +362,7 @@ void SwHeaderFooterWin::PaintButton()
SwFrameButtonPainter::PaintButton(aSeq, aRect, m_bIsHeader);
// Create the text primitive
- basegfx::BColor aLineColor = SwViewOption::GetHeaderFooterMarkColor().getBColor();
+ basegfx::BColor aLineColor = SwViewOption::GetCurrentViewOptions().GetHeaderFooterMarkColor().getBColor();
B2DVector aFontSize;
FontAttribute aFontAttr = drawinglayer::primitive2d::getFontAttributeFromVclFont(aFontSize, m_xVirDev->GetFont(), false, false);
diff --git a/sw/source/uibase/docvw/PageBreakWin.cxx b/sw/source/uibase/docvw/PageBreakWin.cxx
index 1af030258d01..398dfd2987b9 100644
--- a/sw/source/uibase/docvw/PageBreakWin.cxx
+++ b/sw/source/uibase/docvw/PageBreakWin.cxx
@@ -174,7 +174,7 @@ void SwPageBreakWin::PaintButton()
const ::tools::Rectangle aRect(::tools::Rectangle(Point(0, 0), m_xVirDev->PixelToLogic(GetSizePixel())));
// Properly paint the control
- BColor aColor = SwViewOption::GetPageBreakColor().getBColor();
+ BColor aColor = SwViewOption::GetCurrentViewOptions().GetPageBreakColor().getBColor();
BColor aHslLine = rgb2hsl(aColor);
double nLuminance = aHslLine.getZ();
diff --git a/sw/source/uibase/docvw/UnfloatTableButton.cxx b/sw/source/uibase/docvw/UnfloatTableButton.cxx
index 79443c3adea1..e1cdf8c7aad9 100644
--- a/sw/source/uibase/docvw/UnfloatTableButton.cxx
+++ b/sw/source/uibase/docvw/UnfloatTableButton.cxx
@@ -207,7 +207,8 @@ void UnfloatTableButton::PaintButton()
SwFrameButtonPainter::PaintButton(aSeq, aRect, true);
// Create the text primitive
- basegfx::BColor aLineColor = SwViewOption::GetHeaderFooterMarkColor().getBColor();
+ basegfx::BColor aLineColor
+ = SwViewOption::GetCurrentViewOptions().GetHeaderFooterMarkColor().getBColor();
basegfx::B2DVector aFontSize;
drawinglayer::attribute::FontAttribute aFontAttr
= drawinglayer::primitive2d::getFontAttributeFromVclFont(aFontSize, m_xVirDev->GetFont(),
diff --git a/sw/source/uibase/docvw/contentcontrolaliasbutton.cxx b/sw/source/uibase/docvw/contentcontrolaliasbutton.cxx
index abb792dcd943..0d11b5c60641 100644
--- a/sw/source/uibase/docvw/contentcontrolaliasbutton.cxx
+++ b/sw/source/uibase/docvw/contentcontrolaliasbutton.cxx
@@ -102,7 +102,8 @@ void SwContentControlAliasButton::PaintButton()
SwFrameButtonPainter::PaintButton(aSeq, aRect, /*bOnTop=*/false);
// Create the text primitive
- basegfx::BColor aLineColor = SwViewOption::GetHeaderFooterMarkColor().getBColor();
+ const SwViewOption* pVOpt = GetEditWin()->GetView().GetWrtShell().GetViewOptions();
+ basegfx::BColor aLineColor = pVOpt->GetHeaderFooterMarkColor().getBColor();
basegfx::B2DVector aFontSize;
drawinglayer::attribute::FontAttribute aFontAttr
= drawinglayer::primitive2d::getFontAttributeFromVclFont(aFontSize, m_xVirDev->GetFont(),
diff --git a/sw/source/uibase/docvw/edtwin.cxx b/sw/source/uibase/docvw/edtwin.cxx
index b7a63bda7a38..50ad58e1d7fd 100644
--- a/sw/source/uibase/docvw/edtwin.cxx
+++ b/sw/source/uibase/docvw/edtwin.cxx
@@ -4550,7 +4550,7 @@ void SwEditWin::MouseMove(const MouseEvent& _rMEvt)
{
if( !m_pShadCursor )
m_pShadCursor.reset( new SwShadowCursor( *this,
- SwViewOption::GetDirectCursorColor() ) );
+ rSh.GetViewOptions()->GetDirectCursorColor() ) );
if( text::HoriOrientation::RIGHT != eOrient && text::HoriOrientation::CENTER != eOrient )
eOrient = text::HoriOrientation::LEFT;
m_pShadCursor->SetPos( aRect.Pos(), aRect.Height(), static_cast< sal_uInt16 >(eOrient) );
diff --git a/sw/source/uibase/frmdlg/colex.cxx b/sw/source/uibase/frmdlg/colex.cxx
index 8649a33e049d..b77512b9e8e4 100644
--- a/sw/source/uibase/frmdlg/colex.cxx
+++ b/sw/source/uibase/frmdlg/colex.cxx
@@ -340,7 +340,7 @@ void SwColumnOnlyExample::Paint(vcl::RenderContext& rRenderContext, const tools:
const StyleSettings& rStyleSettings = rRenderContext.GetSettings().GetStyleSettings();
const Color& rFieldColor = rStyleSettings.GetFieldColor();
const Color& rDlgColor = rStyleSettings.GetDialogColor();
- const Color& rFieldTextColor = SwViewOption::GetFontColor();
+ const Color& rFieldTextColor = SwViewOption::GetCurrentViewOptions().GetFontColor();
Color aGrayColor(COL_LIGHTGRAY);
if (rFieldColor == aGrayColor)
aGrayColor.Invert();
diff --git a/sw/source/uibase/inc/DashedLine.hxx b/sw/source/uibase/inc/DashedLine.hxx
index a2d2aa1b012f..f4b808ec29ad 100644
--- a/sw/source/uibase/inc/DashedLine.hxx
+++ b/sw/source/uibase/inc/DashedLine.hxx
@@ -10,15 +10,16 @@
#define INCLUDED_SW_SOURCE_UIBASE_INC_DASHEDLINE_HXX
#include <vcl/ctrl.hxx>
+#include <viewopt.hxx>
/** Class for displaying a dashed line in the Writer GUI.
*/
class SwDashedLine : public Control
{
- Color& (*m_pColorFn)();
+ const Color& (SwViewOption::*m_pColorFn)() const;
public:
- SwDashedLine(vcl::Window* pParent, Color& (*pColorFn)());
+ SwDashedLine(vcl::Window* pParent, const Color& (SwViewOption::*pColorFn)() const);
virtual ~SwDashedLine() override;
virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect) override;
diff --git a/sw/source/uibase/uiview/view0.cxx b/sw/source/uibase/uiview/view0.cxx
index a9044776e029..ba555570044e 100644
--- a/sw/source/uibase/uiview/view0.cxx
+++ b/sw/source/uibase/uiview/view0.cxx
@@ -142,13 +142,13 @@ static bool lcl_IsViewMarks( const SwViewOption& rVOpt )
{
return rVOpt.IsHardBlank() &&
rVOpt.IsSoftHyph() &&
- SwViewOption::IsFieldShadings();
+ rVOpt.IsFieldShadings();
}
static void lcl_SetViewMarks(SwViewOption& rVOpt, bool bOn )
{
rVOpt.SetHardBlank(bOn);
rVOpt.SetSoftHyph(bOn);
- SwViewOption::SetAppearanceFlag(
+ rVOpt.SetAppearanceFlag(
ViewOptFlags::FieldShadings, bOn, true);
}
@@ -253,13 +253,13 @@ void SwView::StateViewOptions(SfxItemSet &rSet)
}
break;
case FN_VIEW_BOUNDS:
- aBool.SetValue( SwViewOption::IsDocBoundaries()); break;
+ aBool.SetValue( pOpt->IsDocBoundaries()); break;
case FN_VIEW_SECTION_BOUNDARIES:
- aBool.SetValue(SwViewOption::IsSectionBoundaries()); break;
+ aBool.SetValue(pOpt->IsSectionBoundaries()); break;
case FN_VIEW_GRAPHIC:
aBool.SetValue( pOpt->IsGraphic() ); break;
case FN_VIEW_FIELDS:
- aBool.SetValue( SwViewOption::IsFieldShadings() ); break;
+ aBool.SetValue( pOpt->IsFieldShadings() ); break;
case FN_VIEW_FIELDNAME:
aBool.SetValue( pOpt->IsFieldName() ); break;
case FN_VIEW_MARKS:
@@ -267,7 +267,7 @@ void SwView::StateViewOptions(SfxItemSet &rSet)
case FN_VIEW_META_CHARS:
aBool.SetValue( pOpt->IsViewMetaChars() ); break;
case FN_VIEW_TABLEGRID:
- aBool.SetValue( SwViewOption::IsTableBoundaries() ); break;
+ aBool.SetValue( pOpt->IsTableBoundaries() ); break;
case SID_TOGGLE_NOTES:
{
if (!GetPostItMgr()->HasNotes())
@@ -404,20 +404,20 @@ void SwView::ExecViewOptions(SfxRequest &rReq)
case FN_VIEW_FIELDS:
if( STATE_TOGGLE == eState )
- bFlag = !SwViewOption::IsFieldShadings() ;
- SwViewOption::SetAppearanceFlag(ViewOptFlags::FieldShadings, bFlag, true );
+ bFlag = !pOpt->IsFieldShadings() ;
+ pOpt->SetAppearanceFlag(ViewOptFlags::FieldShadings, bFlag, true );
break;
case FN_VIEW_BOUNDS:
if( STATE_TOGGLE == eState )
- bFlag = !SwViewOption::IsDocBoundaries();
- SwViewOption::SetAppearanceFlag(ViewOptFlags::DocBoundaries, bFlag, true );
+ bFlag = !pOpt->IsDocBoundaries();
+ pOpt->SetAppearanceFlag(ViewOptFlags::DocBoundaries, bFlag, true );
break;
case FN_VIEW_SECTION_BOUNDARIES:
if( STATE_TOGGLE == eState )
- bFlag = !SwViewOption::IsSectionBoundaries();
- SwViewOption::SetAppearanceFlag(ViewOptFlags::SectionBoundaries, bFlag, true );
+ bFlag = !pOpt->IsSectionBoundaries();
+ pOpt->SetAppearanceFlag(ViewOptFlags::SectionBoundaries, bFlag, true );
break;
case SID_GRID_VISIBLE:
@@ -531,8 +531,8 @@ void SwView::ExecViewOptions(SfxRequest &rReq)
case FN_VIEW_TABLEGRID:
if( STATE_TOGGLE == eState )
- bFlag = !SwViewOption::IsTableBoundaries();
- SwViewOption::SetAppearanceFlag(ViewOptFlags::TableBoundaries, bFlag, true );
+ bFlag = !pOpt->IsTableBoundaries();
+ pOpt->SetAppearanceFlag(ViewOptFlags::TableBoundaries, bFlag, true );
break;
case FN_VIEW_FIELDNAME:
diff --git a/sw/source/uibase/uiview/viewdraw.cxx b/sw/source/uibase/uiview/viewdraw.cxx
index 35c3c3174f4e..9e718ee379ea 100644
--- a/sw/source/uibase/uiview/viewdraw.cxx
+++ b/sw/source/uibase/uiview/viewdraw.cxx
@@ -524,7 +524,7 @@ bool SwView::BeginTextEdit(SdrObject* pObj, SdrPageView* pPV, vcl::Window* pWin,
const SwViewOption *pOpt = pSh->GetViewOptions();
- if (SwViewOption::IsFieldShadings())
+ if (pOpt->IsFieldShadings())
nCntrl |= EEControlBits::MARKFIELDS;
else
nCntrl &= ~EEControlBits::MARKFIELDS;
diff --git a/sw/source/uibase/uno/unomod.cxx b/sw/source/uibase/uno/unomod.cxx
index 1506d197b850..a4f1def14629 100644
--- a/sw/source/uibase/uno/unomod.cxx
+++ b/sw/source/uibase/uno/unomod.cxx
@@ -575,10 +575,10 @@ void SwXViewSettings::_setSingleValue( const comphelper::PropertyInfo & rInfo, c
case HANDLE_VIEWSET_DRAWINGS : mpViewOption->SetDraw(*o3tl::doAccess<bool>(rValue)); break;
case HANDLE_VIEWSET_FIELD_COMMANDS : mpViewOption->SetFieldName(*o3tl::doAccess<bool>(rValue)); break;
case HANDLE_VIEWSET_ANNOTATIONS : mpViewOption->SetPostIts(*o3tl::doAccess<bool>(rValue)); break;
- case HANDLE_VIEWSET_INDEX_MARK_BACKGROUND : SwViewOption::SetAppearanceFlag(ViewOptFlags::FieldShadings, *o3tl::doAccess<bool>(rValue), true); break;
+ case HANDLE_VIEWSET_INDEX_MARK_BACKGROUND : mpViewOption->SetAppearanceFlag(ViewOptFlags::FieldShadings, *o3tl::doAccess<bool>(rValue), true); break;
case HANDLE_VIEWSET_NONPRINTING_CHARACTERS: mpViewOption->SetViewMetaChars( *o3tl::doAccess<bool>(rValue) ); break;
- case HANDLE_VIEWSET_FOOTNOTE_BACKGROUND : SwViewOption::SetAppearanceFlag(ViewOptFlags::FieldShadings, *o3tl::doAccess<bool>(rValue), true); break;
- case HANDLE_VIEWSET_TEXT_FIELD_BACKGROUND : SwViewOption::SetAppearanceFlag(ViewOptFlags::FieldShadings, *o3tl::doAccess<bool>(rValue), true); break;
+ case HANDLE_VIEWSET_FOOTNOTE_BACKGROUND : mpViewOption->SetAppearanceFlag(ViewOptFlags::FieldShadings, *o3tl::doAccess<bool>(rValue), true); break;
+ case HANDLE_VIEWSET_TEXT_FIELD_BACKGROUND : mpViewOption->SetAppearanceFlag(ViewOptFlags::FieldShadings, *o3tl::doAccess<bool>(rValue), true); break;
case HANDLE_VIEWSET_PARA_BREAKS : mpViewOption->SetParagraph(*o3tl::doAccess<bool>(rValue)); break;
case HANDLE_VIEWSET_SOFT_HYPHENS : mpViewOption->SetSoftHyph(*o3tl::doAccess<bool>(rValue)); break;
case HANDLE_VIEWSET_SPACES : mpViewOption->SetBlank(*o3tl::doAccess<bool>(rValue)); break;
@@ -589,8 +589,8 @@ void SwXViewSettings::_setSingleValue( const comphelper::PropertyInfo & rInfo, c
case HANDLE_VIEWSET_HIDDEN_TEXT : mpViewOption->SetShowHiddenField(*o3tl::doAccess<bool>(rValue)); break;
case HANDLE_VIEWSET_HIDDEN_CHARACTERS : mpViewOption->SetShowHiddenChar(*o3tl::doAccess<bool>(rValue)); break;
case HANDLE_VIEWSET_HIDDEN_PARAGRAPHS : mpViewOption->SetShowHiddenPara(*o3tl::doAccess<bool>(rValue)); break;
- case HANDLE_VIEWSET_TABLE_BOUNDARIES : SwViewOption::SetAppearanceFlag(ViewOptFlags::TableBoundaries, *o3tl::doAccess<bool>(rValue), true); break;
- case HANDLE_VIEWSET_TEXT_BOUNDARIES : SwViewOption::SetDocBoundaries(*o3tl::doAccess<bool>(rValue)); break;
+ case HANDLE_VIEWSET_TABLE_BOUNDARIES : mpViewOption->SetAppearanceFlag(ViewOptFlags::TableBoundaries, *o3tl::doAccess<bool>(rValue), true); break;
+ case HANDLE_VIEWSET_TEXT_BOUNDARIES : mpViewOption->SetDocBoundaries(*o3tl::doAccess<bool>(rValue)); break;
case HANDLE_VIEWSET_SMOOTH_SCROLLING : mpViewOption->SetSmoothScroll(*o3tl::doAccess<bool>(rValue)); break;
case HANDLE_VIEWSET_SHOW_CONTENT_TIPS : mpViewOption->SetShowContentTips(*o3tl::doAccess<bool>(rValue)); break;
case HANDLE_VIEWSET_IS_RASTER_VISIBLE : mpViewOption->SetGridVisible(*o3tl::doAccess<bool>(rValue)); break;
@@ -820,10 +820,10 @@ void SwXViewSettings::_getSingleValue( const comphelper::PropertyInfo & rInfo, u
case HANDLE_VIEWSET_DRAWINGS : bBoolVal = mpConstViewOption->IsDraw(); break;
case HANDLE_VIEWSET_FIELD_COMMANDS : bBoolVal = mpConstViewOption->IsFieldName(); break;
case HANDLE_VIEWSET_ANNOTATIONS : bBoolVal = mpConstViewOption->IsPostIts(); break;
- case HANDLE_VIEWSET_INDEX_MARK_BACKGROUND : bBoolVal = SwViewOption::IsFieldShadings(); break;
+ case HANDLE_VIEWSET_INDEX_MARK_BACKGROUND : bBoolVal = mpConstViewOption->IsFieldShadings(); break;
case HANDLE_VIEWSET_NONPRINTING_CHARACTERS: bBoolVal = mpConstViewOption->IsViewMetaChars(); break;
- case HANDLE_VIEWSET_FOOTNOTE_BACKGROUND : bBoolVal = SwViewOption::IsFieldShadings(); break;
- case HANDLE_VIEWSET_TEXT_FIELD_BACKGROUND : bBoolVal = SwViewOption::IsFieldShadings(); break;
+ case HANDLE_VIEWSET_FOOTNOTE_BACKGROUND : bBoolVal = mpConstViewOption->IsFieldShadings(); break;
+ case HANDLE_VIEWSET_TEXT_FIELD_BACKGROUND : bBoolVal = mpConstViewOption->IsFieldShadings(); break;
case HANDLE_VIEWSET_PARA_BREAKS : bBoolVal = mpConstViewOption->IsParagraph(true); break;
case HANDLE_VIEWSET_SOFT_HYPHENS : bBoolVal = mpConstViewOption->IsSoftHyph(); break;
case HANDLE_VIEWSET_SPACES : bBoolVal = mpConstViewOption->IsBlank(true); break;
@@ -835,8 +835,8 @@ void SwXViewSettings::_getSingleValue( const comphelper::PropertyInfo & rInfo, u
case HANDLE_VIEWSET_HIDDEN_CHARACTERS : bBoolVal = mpConstViewOption->IsShowHiddenChar(true); break;
case HANDLE_VIEWSET_HIDE_WHITESPACE : bBoolVal = mpConstViewOption->IsHideWhitespaceMode(); break;
case HANDLE_VIEWSET_HIDDEN_PARAGRAPHS : bBoolVal = mpConstViewOption->IsShowHiddenPara(); break;
- case HANDLE_VIEWSET_TABLE_BOUNDARIES : bBoolVal = SwViewOption::IsTableBoundaries(); break;
- case HANDLE_VIEWSET_TEXT_BOUNDARIES : bBoolVal = SwViewOption::IsDocBoundaries(); break;
+ case HANDLE_VIEWSET_TABLE_BOUNDARIES : bBoolVal = mpConstViewOption->IsTableBoundaries(); break;
+ case HANDLE_VIEWSET_TEXT_BOUNDARIES : bBoolVal = mpConstViewOption->IsDocBoundaries(); break;
case HANDLE_VIEWSET_SMOOTH_SCROLLING : bBoolVal = mpConstViewOption->IsSmoothScroll(); break;
case HANDLE_VIEWSET_SHOW_CONTENT_TIPS : bBoolVal = mpConstViewOption->IsShowContentTips(); break;
case HANDLE_VIEWSET_INLINECHANGES_TIPS : bBoolVal = mpConstViewOption->IsShowInlineTooltips(); break;
diff --git a/sw/source/uibase/uno/unotxdoc.cxx b/sw/source/uibase/uno/unotxdoc.cxx
index ece205867661..57ed9d0879c6 100644
--- a/sw/source/uibase/uno/unotxdoc.cxx
+++ b/sw/source/uibase/uno/unotxdoc.cxx
@@ -3598,7 +3598,7 @@ void SwXTextDocument::initializeForTiledRendering(const css::uno::Sequence<css::
aViewOption.SetHardBlank(false);
// Disable field shadings: the result would depend on the cursor position.
- SwViewOption::SetAppearanceFlag(ViewOptFlags::FieldShadings, false);
+ aViewOption.SetAppearanceFlag(ViewOptFlags::FieldShadings, false);
OUString sOrigAuthor = SW_MOD()->GetRedlineAuthor(SW_MOD()->GetRedlineAuthor());
OUString sAuthor;
@@ -3608,7 +3608,7 @@ void SwXTextDocument::initializeForTiledRendering(const css::uno::Sequence<css::
if (rValue.Name == ".uno:HideWhitespace" && rValue.Value.has<bool>())
aViewOption.SetHideWhitespaceMode(rValue.Value.get<bool>());
else if (rValue.Name == ".uno:ShowBorderShadow" && rValue.Value.has<bool>())
- SwViewOption::SetAppearanceFlag(ViewOptFlags::Shadow , rValue.Value.get<bool>());
+ aViewOption.SetAppearanceFlag(ViewOptFlags::Shadow , rValue.Value.get<bool>());
else if (rValue.Name == ".uno:Author" && rValue.Value.has<OUString>())
{
sAuthor = rValue.Value.get<OUString>();