summaryrefslogtreecommitdiff
path: root/sw/source/uibase/config
diff options
context:
space:
mode:
authorHeiko Tietze <tietze.heiko@gmail.com>2020-12-01 12:21:10 +0100
committerHeiko Tietze <heiko.tietze@documentfoundation.org>2020-12-09 08:50:45 +0100
commitc220d97e22001db116f6f8204922b25a9e61e26f (patch)
treede687cb1ba2d8eb5ef664fe90d356e3b2a576524 /sw/source/uibase/config
parente7ec5cf807fd65dd260e0466a79607edb7675346 (diff)
Resolves tdf#99646 - Make default type of anchoring optional
Option introduced at Tools > Options > Writer > Formatting Aids Change-Id: I8d890f84107647821c39669114b991c301727788 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106970 Tested-by: Jenkins Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Diffstat (limited to 'sw/source/uibase/config')
-rw-r--r--sw/source/uibase/config/cfgitems.cxx8
-rw-r--r--sw/source/uibase/config/usrpref.cxx22
-rw-r--r--sw/source/uibase/config/viewopt.cxx23
3 files changed, 45 insertions, 8 deletions
diff --git a/sw/source/uibase/config/cfgitems.cxx b/sw/source/uibase/config/cfgitems.cxx
index fc163193547f..e7d1fc2a9a11 100644
--- a/sw/source/uibase/config/cfgitems.cxx
+++ b/sw/source/uibase/config/cfgitems.cxx
@@ -34,6 +34,7 @@ SwDocDisplayItem::SwDocDisplayItem() :
m_bCharHiddenText =
m_bBookmarks =
m_bManualBreak = true;
+ m_xDefaultAnchor = 1; //FLY_TO_CHAR
};
// Item for the Settings dialog, page document view
@@ -48,6 +49,7 @@ SwDocDisplayItem::SwDocDisplayItem(const SwViewOption& rVOpt ) :
m_bCharHiddenText = rVOpt.IsShowHiddenChar(true);
m_bBookmarks = rVOpt.IsShowBookmarks(true);
m_bManualBreak = rVOpt.IsLineBreak(true);
+ m_xDefaultAnchor = rVOpt.GetDefaultAnchor();
}
SwDocDisplayItem* SwDocDisplayItem::Clone( SfxItemPool* ) const
@@ -66,9 +68,10 @@ bool SwDocDisplayItem::operator==( const SfxPoolItem& rAttr ) const
m_bSpace == rItem.m_bSpace &&
m_bNonbreakingSpace == rItem.m_bNonbreakingSpace &&
m_bSoftHyphen == rItem.m_bSoftHyphen &&
- m_bCharHiddenText == rItem.m_bCharHiddenText &&
+ m_bCharHiddenText == rItem.m_bCharHiddenText &&
m_bBookmarks == rItem.m_bBookmarks &&
- m_bManualBreak == rItem.m_bManualBreak );
+ m_bManualBreak == rItem.m_bManualBreak &&
+ m_xDefaultAnchor == rItem.m_xDefaultAnchor);
}
void SwDocDisplayItem::FillViewOptions( SwViewOption& rVOpt) const
@@ -81,6 +84,7 @@ void SwDocDisplayItem::FillViewOptions( SwViewOption& rVOpt) const
rVOpt.SetShowHiddenChar(m_bCharHiddenText );
rVOpt.SetShowBookmarks(m_bBookmarks );
rVOpt.SetLineBreak (m_bManualBreak );
+ rVOpt.SetDefaultAnchor( m_xDefaultAnchor );
}
SwElemItem::SwElemItem() :
diff --git a/sw/source/uibase/config/usrpref.cxx b/sw/source/uibase/config/usrpref.cxx
index 6a913b8c7b4f..e2d2336d76ac 100644
--- a/sw/source/uibase/config/usrpref.cxx
+++ b/sw/source/uibase/config/usrpref.cxx
@@ -76,6 +76,7 @@ SwMasterUsrPref::~SwMasterUsrPref()
}
const auto g_UpdateLinkIndex = 17;
+const auto g_DefaultAnchor = 24;
Sequence<OUString> SwContentViewConfig::GetPropertyNames() const
{
@@ -86,8 +87,8 @@ Sequence<OUString> SwContentViewConfig::GetPropertyNames() const
"Display/DrawingControl", // 2
"Display/FieldCode", // 3
"Display/Note", // 4
- "Display/ShowContentTips", // 5
- "NonprintingCharacter/MetaCharacters", // 6
+ "Display/ShowContentTips", // 5
+ "NonprintingCharacter/MetaCharacters", // 6
"NonprintingCharacter/ParagraphEnd", // 7
"NonprintingCharacter/OptionalHyphen", // 8
"NonprintingCharacter/Space", // 9
@@ -104,7 +105,8 @@ Sequence<OUString> SwContentViewConfig::GetPropertyNames() const
"Display/ShowInlineTooltips", // 20
"Display/UseHeaderFooterMenu", // 21
"Display/ShowOutlineContentVisibilityButton", // 22
- "Display/ShowChangesInMargin" // 23
+ "Display/ShowChangesInMargin", // 23
+ "Display/DefaultAnchor" // 24
};
#if defined(__GNUC__) && !defined(__clang__)
// clang 8.0.0 says strcmp isn't constexpr
@@ -174,8 +176,9 @@ void SwContentViewConfig::ImplCommit()
case 21: bVal = m_rParent.IsUseHeaderFooterMenu(); break;// "Display/UseHeaderFooterMenu"
case 22: bVal = m_rParent.IsShowOutlineContentVisibilityButton(); break;// "Display/ShowOutlineContentVisibilityButton"
case 23: bVal = m_rParent.IsShowChangesInMargin(); break;// "Display/ShowChangesInMargin"
+ case 24: pValues[nProp] <<= m_rParent.GetDefaultAnchor(); break;// "Display/DefaultAnchor"
}
- if (nProp != g_UpdateLinkIndex)
+ if ((nProp != g_UpdateLinkIndex) && (nProp != g_DefaultAnchor))
pValues[nProp] <<= bVal;
}
PutProperties(aNames, aValues);
@@ -189,12 +192,12 @@ void SwContentViewConfig::Load()
OSL_ENSURE(aValues.getLength() == aNames.getLength(), "GetProperties failed");
if(aValues.getLength() != aNames.getLength())
return;
-
for(int nProp = 0; nProp < aNames.getLength(); nProp++)
{
if(pValues[nProp].hasValue())
{
- bool bSet = nProp != g_UpdateLinkIndex && *o3tl::doAccess<bool>(pValues[nProp]);
+ bool bSet = ((nProp != g_UpdateLinkIndex) && (nProp != g_DefaultAnchor))
+ && *o3tl::doAccess<bool>(pValues[nProp]);
switch(nProp)
{
case 0: m_rParent.SetGraphic(bSet); break;// "Display/GraphicObject",
@@ -227,6 +230,13 @@ void SwContentViewConfig::Load()
case 21: m_rParent.SetUseHeaderFooterMenu(bSet); break;// "Display/UseHeaderFooterMenu"
case 22: m_rParent.SetShowOutlineContentVisibilityButton(bSet); break;// "Display/ShowOutlineContententVisibilityButton"
case 23: m_rParent.SetShowChangesInMargin(bSet); break;// "Display/ShowChangesInMargin"
+ case 24:
+ {
+ sal_Int32 nSet;
+ pValues[nProp] >>= nSet;
+ m_rParent.SetDefaultAnchor(nSet);
+ }
+ break; // "Display/DefaultAnchor"
}
}
}
diff --git a/sw/source/uibase/config/viewopt.cxx b/sw/source/uibase/config/viewopt.cxx
index 07db7f778d77..3e534f1126d9 100644
--- a/sw/source/uibase/config/viewopt.cxx
+++ b/sw/source/uibase/config/viewopt.cxx
@@ -81,6 +81,7 @@ bool SwViewOption::IsEqualFlags( const SwViewOption &rOpt ) const
&& mbHideWhitespaceMode == rOpt.mbHideWhitespaceMode
&& m_bShowPlaceHolderFields == rOpt.m_bShowPlaceHolderFields
&& m_bIdle == rOpt.m_bIdle
+ && m_nDefaultAnchor == rOpt.m_nDefaultAnchor
#ifdef DBG_UTIL
// correspond to the statements in ui/config/cfgvw.src
&& m_bTest1 == rOpt.IsTest1()
@@ -215,6 +216,8 @@ SwViewOption::SwViewOption() :
m_bIdle = true;
+ m_nDefaultAnchor = 1; //FLY_TO_CHAR
+
#ifdef DBG_UTIL
// correspond to the statements in ui/config/cfgvw.src
m_bTest1 = m_bTest2 = m_bTest3 = m_bTest4 =
@@ -253,6 +256,7 @@ SwViewOption::SwViewOption(const SwViewOption& rVOpt)
mbHideWhitespaceMode = rVOpt.mbHideWhitespaceMode;
m_bShowPlaceHolderFields = rVOpt.m_bShowPlaceHolderFields;
m_bIdle = rVOpt.m_bIdle;
+ m_nDefaultAnchor = rVOpt.m_nDefaultAnchor;
#ifdef DBG_UTIL
m_bTest1 = rVOpt.m_bTest1;
@@ -294,6 +298,7 @@ SwViewOption& SwViewOption::operator=( const SwViewOption &rVOpt )
mbHideWhitespaceMode = rVOpt.mbHideWhitespaceMode;
m_bShowPlaceHolderFields = rVOpt.m_bShowPlaceHolderFields;
m_bIdle = rVOpt.m_bIdle;
+ m_nDefaultAnchor = rVOpt.m_nDefaultAnchor;
#ifdef DBG_UTIL
m_bTest1 = rVOpt.m_bTest1;
@@ -365,6 +370,24 @@ sal_uInt16 GetHtmlMode(const SwDocShell* pShell)
return nRet;
}
+RndStdIds SwViewOption::GetDefaultAnchorType()
+{
+ switch ( m_nDefaultAnchor )
+ {
+ case 0:
+ return RndStdIds::FLY_AT_PARA; //0
+ break;
+ case 1:
+ return RndStdIds::FLY_AT_CHAR; //4
+ break;
+ case 2:
+ return RndStdIds::FLY_AS_CHAR; //1
+ break;
+ default:
+ return RndStdIds::FLY_AT_CHAR; //4
+ }//switch
+}
+
Color& SwViewOption::GetDocColor()
{
return s_aDocColor;