[Libreoffice-commits] core.git: offapi/com officecfg/registry sw/inc sw/source sw/uiconfig

Michael Stahl (via logerrit) logerrit at kemper.freedesktop.org
Fri Jan 31 16:23:53 UTC 2020


 offapi/com/sun/star/text/ViewSettings.idl                  |    6 +
 officecfg/registry/schema/org/openoffice/Office/Writer.xcs |    8 ++
 sw/inc/viewopt.hxx                                         |   17 +++-
 sw/source/core/text/inftxt.cxx                             |    2 
 sw/source/core/text/porrst.cxx                             |    2 
 sw/source/ui/config/optpage.cxx                            |    4 +
 sw/source/uibase/app/appopt.cxx                            |    1 
 sw/source/uibase/config/cfgitems.cxx                       |    4 +
 sw/source/uibase/config/usrpref.cxx                        |   47 +++++++------
 sw/source/uibase/inc/cfgitems.hxx                          |    1 
 sw/source/uibase/inc/optpage.hxx                           |    1 
 sw/source/uibase/uiview/pview.cxx                          |    1 
 sw/source/uibase/uiview/view0.cxx                          |    2 
 sw/source/uibase/uno/unomod.cxx                            |    4 +
 sw/source/uibase/uno/unotxdoc.cxx                          |    1 
 sw/uiconfig/swriter/ui/optformataidspage.ui                |   28 +++++++
 16 files changed, 104 insertions(+), 25 deletions(-)

New commits:
commit 04405edc3fac32938b8940bc767656ea6c7820f9
Author:     Michael Stahl <Michael.Stahl at cib.de>
AuthorDate: Fri Jan 31 16:19:21 2020 +0100
Commit:     Michael Stahl <michael.stahl at cib.de>
CommitDate: Fri Jan 31 17:23:19 2020 +0100

    tdf#45589 offapi,officecfg,sw: add option to toggle bookmark display
    
    Create specific option to toggle display of the bookmark positions
    instead of relying on generic IsViewMetaChars().
    
    Add a Bookmarks checkbox to Writer->Formatting Aids page in Options.
    
    Add property ShowBookmarks to com::sun::star::text::ViewSettings.
    
    Add config setting:
    org/openoffice/Office/Writer/Content/NonprintingCharacter/Bookmarks
    
    Change-Id: I998ecdc16d8e4a5baeeb1bbcff0bf5f1f5636692
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87774
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <michael.stahl at cib.de>

diff --git a/offapi/com/sun/star/text/ViewSettings.idl b/offapi/com/sun/star/text/ViewSettings.idl
index 5de3bf8d6dd5..b0afa27c46e8 100644
--- a/offapi/com/sun/star/text/ViewSettings.idl
+++ b/offapi/com/sun/star/text/ViewSettings.idl
@@ -278,6 +278,12 @@ published service ViewSettings
     */
     [optional, property] boolean UseHeaderFooterMenu;
 
+    /** If this property is `TRUE`, bookmark positions are displayed.
+
+        @since LibreOffice 7.0
+     */
+    [optional, property] boolean ShowBookmarks;
+
 };
 
 }; }; }; };
diff --git a/officecfg/registry/schema/org/openoffice/Office/Writer.xcs b/officecfg/registry/schema/org/openoffice/Office/Writer.xcs
index e76bbeef495b..316e2e3aff86 100644
--- a/officecfg/registry/schema/org/openoffice/Office/Writer.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/Writer.xcs
@@ -1172,6 +1172,14 @@
           </info>
           <value>false</value>
         </prop>
+        <prop oor:name="Bookmarks" oor:type="xs:boolean" oor:nillable="false">
+          <!-- UIHints: Tools - Options - Text document  Formatting aids - [Section] Display formatting -->
+          <info>
+            <desc>Specifies whether bookmark positions are displayed on the screen.</desc>
+            <label>Bookmarks</label>
+          </info>
+          <value>true</value>
+        </prop>
       </group>
       <group oor:name="Update">
         <info>
diff --git a/sw/inc/viewopt.hxx b/sw/inc/viewopt.hxx
index c727452685c7..11d2914ed028 100644
--- a/sw/inc/viewopt.hxx
+++ b/sw/inc/viewopt.hxx
@@ -34,7 +34,7 @@ class OutputDevice;
 class SwDocShell;
 namespace svtools{ class ColorConfig;}
 
-enum class ViewOptFlags1 {
+enum class ViewOptFlags1 : sal_uInt32 {
     UseHeaderFooterMenu = 0x00000001,
     Tab           = 0x00000002,
     Blank         = 0x00000004,
@@ -44,6 +44,7 @@ enum class ViewOptFlags1 {
     Pagebreak     = 0x00000040,
     Columnbreak   = 0x00000080,
     SoftHyph      = 0x00000100,
+    Bookmarks     = 0x00000200,
     Ref           = 0x00000400,
     FieldName     = 0x00000800,
     Postits       = 0x00004000,
@@ -60,10 +61,10 @@ enum class ViewOptFlags1 {
     OnlineSpell   = 0x04000000,
     ShowInlineTooltips = 0x10000000, //tooltips on tracked changes
     ViewMetachars = 0x20000000,
-    Pageback      = 0x40000000
+    Pageback      = 0x40000000,
 };
 namespace o3tl {
-    template<> struct typed_flags<ViewOptFlags1> : is_typed_flags<ViewOptFlags1, 0x77dfcdff> {};
+    template<> struct typed_flags<ViewOptFlags1> : is_typed_flags<ViewOptFlags1, 0x77dfcfff> {};
 }
 
 enum class ViewOptCoreFlags2 {
@@ -232,6 +233,16 @@ public:
     void SetParagraph( bool b )
         { SetCoreOption(b, ViewOptFlags1::Paragraph); }
 
+    void SetShowBookmarks(bool const b)
+    {
+        SetCoreOption(b, ViewOptFlags1::Bookmarks);
+    }
+    bool IsShowBookmarks(bool const bHard = false) const
+    {
+        return !m_bReadonly && (m_nCoreOptions & ViewOptFlags1::Bookmarks)
+                && (bHard || (m_nCoreOptions & ViewOptFlags1::ViewMetachars));
+    }
+
     bool IsLineBreak(bool bHard = false) const
                     {   return !m_bReadonly && (m_nCoreOptions & ViewOptFlags1::Linebreak) &&
                             ((m_nCoreOptions & ViewOptFlags1::ViewMetachars)||bHard); }
diff --git a/sw/source/core/text/inftxt.cxx b/sw/source/core/text/inftxt.cxx
index 8538d6ebabd4..b7d80e1d4f97 100644
--- a/sw/source/core/text/inftxt.cxx
+++ b/sw/source/core/text/inftxt.cxx
@@ -1378,7 +1378,7 @@ void SwTextPaintInfo::DrawViewOpt( const SwLinePortion &rPor,
         case PortionType::Bookmark:
             if (!GetOpt().IsPagePreview()
                  && !GetOpt().IsReadonly()
-                 && GetOpt().IsViewMetaChars())
+                 && GetOpt().IsShowBookmarks())
             {
                 bDraw = true;
             }
diff --git a/sw/source/core/text/porrst.cxx b/sw/source/core/text/porrst.cxx
index 44d2288eaf9c..92c471d61e01 100644
--- a/sw/source/core/text/porrst.cxx
+++ b/sw/source/core/text/porrst.cxx
@@ -530,7 +530,7 @@ bool SwControlCharPortion::DoPaint(SwTextPaintInfo const&,
 bool SwBookmarkPortion::DoPaint(SwTextPaintInfo const& rInf,
         OUString & rOutString, SwFont & rTmpFont, int & rDeltaY) const
 {
-    if (!rInf.GetOpt().IsViewMetaChars())
+    if (!rInf.GetOpt().IsShowBookmarks())
     {
         return false;
     }
diff --git a/sw/source/ui/config/optpage.cxx b/sw/source/ui/config/optpage.cxx
index 0ab4db5e5607..fd5f04d57321 100644
--- a/sw/source/ui/config/optpage.cxx
+++ b/sw/source/ui/config/optpage.cxx
@@ -1191,6 +1191,7 @@ SwShdwCursorOptionsTabPage::SwShdwCursorOptionsTabPage(weld::Container* pPage, w
     , m_xTabCB(m_xBuilder->weld_check_button("tabs"))
     , m_xBreakCB(m_xBuilder->weld_check_button("break"))
     , m_xCharHiddenCB(m_xBuilder->weld_check_button("hiddentext"))
+    , m_xBookmarkCB(m_xBuilder->weld_check_button("bookmarks"))
     , m_xDirectCursorFrame(m_xBuilder->weld_frame("directcrsrframe"))
     , m_xOnOffCB(m_xBuilder->weld_check_button("cursoronoff"))
     , m_xDirectCursorFillMode(m_xBuilder->weld_combo_box("cxDirectCursorFillMode"))
@@ -1217,6 +1218,7 @@ SwShdwCursorOptionsTabPage::SwShdwCursorOptionsTabPage(weld::Container* pPage, w
 
     m_xTabCB->hide();
     m_xCharHiddenCB->hide();
+    m_xBookmarkCB->hide();
 
     m_xDirectCursorFrame->hide();
     m_xOnOffCB->hide();
@@ -1282,6 +1284,7 @@ bool SwShdwCursorOptionsTabPage::FillItemSet( SfxItemSet* rSet )
     aDisp.bNonbreakingSpace     = m_xHSpacesCB->get_active();
     aDisp.bSoftHyphen           = m_xSHyphCB->get_active();
     aDisp.bCharHiddenText       = m_xCharHiddenCB->get_active();
+    aDisp.bBookmarks            = m_xBookmarkCB->get_active();
     aDisp.bManualBreak          = m_xBreakCB->get_active();
 
     bRet |= (!pOldAttr || aDisp != *pOldAttr);
@@ -1329,6 +1332,7 @@ void SwShdwCursorOptionsTabPage::Reset( const SfxItemSet* rSet )
         m_xHSpacesCB->set_active( pDocDisplayAttr->bNonbreakingSpace );
         m_xSHyphCB->set_active( pDocDisplayAttr->bSoftHyphen );
         m_xCharHiddenCB->set_active( pDocDisplayAttr->bCharHiddenText );
+        m_xBookmarkCB->set_active(pDocDisplayAttr->bBookmarks);
         m_xBreakCB->set_active( pDocDisplayAttr->bManualBreak );
     }
 }
diff --git a/sw/source/uibase/app/appopt.cxx b/sw/source/uibase/app/appopt.cxx
index 20dd6c34f744..dcc59d8d0c58 100644
--- a/sw/source/uibase/app/appopt.cxx
+++ b/sw/source/uibase/app/appopt.cxx
@@ -239,6 +239,7 @@ void SwModule::ApplyItemSet( sal_uInt16 nId, const SfxItemSet& rSet )
         {
             if(     (!aViewOpt.IsTab( true ) &&  pDocDispItem->bTab) ||
                     (!aViewOpt.IsBlank( true ) && pDocDispItem->bSpace) ||
+                    (!aViewOpt.IsShowBookmarks(true) && pDocDispItem->bBookmarks) ||
                     (!aViewOpt.IsParagraph( true ) && pDocDispItem->bParagraphEnd) ||
                     (!aViewOpt.IsLineBreak( true ) && pDocDispItem->bManualBreak) )
             {
diff --git a/sw/source/uibase/config/cfgitems.cxx b/sw/source/uibase/config/cfgitems.cxx
index 5f283f520d44..0f26565c10d1 100644
--- a/sw/source/uibase/config/cfgitems.cxx
+++ b/sw/source/uibase/config/cfgitems.cxx
@@ -32,6 +32,7 @@ SwDocDisplayItem::SwDocDisplayItem() :
     bNonbreakingSpace   =
     bSoftHyphen         =
     bCharHiddenText     =
+    bBookmarks          =
     bManualBreak        = true;
 };
 
@@ -45,6 +46,7 @@ SwDocDisplayItem::SwDocDisplayItem(const SwViewOption& rVOpt ) :
     bNonbreakingSpace   = rVOpt.IsHardBlank();
     bSoftHyphen         = rVOpt.IsSoftHyph();
     bCharHiddenText     = rVOpt.IsShowHiddenChar(true);
+    bBookmarks          = rVOpt.IsShowBookmarks(true);
     bManualBreak        = rVOpt.IsLineBreak(true);
 }
 
@@ -65,6 +67,7 @@ bool SwDocDisplayItem::operator==( const SfxPoolItem& rAttr ) const
               bNonbreakingSpace     == rItem.bNonbreakingSpace   &&
               bSoftHyphen           == rItem.bSoftHyphen         &&
               bCharHiddenText       == rItem.bCharHiddenText         &&
+              bBookmarks            == rItem.bBookmarks          &&
               bManualBreak          == rItem.bManualBreak );
 }
 
@@ -76,6 +79,7 @@ void SwDocDisplayItem::FillViewOptions( SwViewOption& rVOpt) const
     rVOpt.SetHardBlank  (bNonbreakingSpace  );
     rVOpt.SetSoftHyph   (bSoftHyphen        );
     rVOpt.SetShowHiddenChar(bCharHiddenText );
+    rVOpt.SetShowBookmarks(bBookmarks       );
     rVOpt.SetLineBreak  (bManualBreak       );
 }
 
diff --git a/sw/source/uibase/config/usrpref.cxx b/sw/source/uibase/config/usrpref.cxx
index 3a331e2d43e1..ee63272c5dd8 100644
--- a/sw/source/uibase/config/usrpref.cxx
+++ b/sw/source/uibase/config/usrpref.cxx
@@ -74,9 +74,11 @@ SwMasterUsrPref::~SwMasterUsrPref()
 {
 }
 
+static const auto g_UpdateLinkIndex = 17;
+
 Sequence<OUString> SwContentViewConfig::GetPropertyNames() const
 {
-    static const char* aPropNames[] =
+    static constexpr const char*const aPropNames[] =
     {
         "Display/GraphicObject",                    //  0
         "Display/Table",                            //  1
@@ -94,13 +96,18 @@ Sequence<OUString> SwContentViewConfig::GetPropertyNames() const
         "NonprintingCharacter/HiddenText",      // 13
         "NonprintingCharacter/HiddenParagraph", // 14
         "NonprintingCharacter/HiddenCharacter",      // 15
-        "Update/Link",                          // 16
-        "Update/Field",                         // 17
-        "Update/Chart",                         // 18
-        "Display/ShowInlineTooltips",           // 19
-        "Display/UseHeaderFooterMenu"           // 20
+        "NonprintingCharacter/Bookmarks",       // 16
+        "Update/Link",                          // 17
+        "Update/Field",                         // 18
+        "Update/Chart",                         // 19
+        "Display/ShowInlineTooltips",           // 20
+        "Display/UseHeaderFooterMenu"           // 21
     };
-    const int nCount = bWeb ? 12 : 21;
+#if defined(__GNUC__) && !defined(__clang__)
+    // clang 8.0.0 says strcmp isn't constexpr
+    static_assert(std::strcmp("Update/Link", aPropNames[g_UpdateLinkIndex]) == 0);
+#endif
+    const int nCount = bWeb ? 12 : SAL_N_ELEMENTS(aPropNames);
     Sequence<OUString> aNames(nCount);
     OUString* pNames = aNames.getArray();
     for(int i = 0; i < nCount; i++)
@@ -156,13 +163,14 @@ void SwContentViewConfig::ImplCommit()
             case 13: bVal = rParent.IsShowHiddenField(); break;// "NonprintingCharacter/Fields: HiddenText",
             case 14: bVal = rParent.IsShowHiddenPara(); break;// "NonprintingCharacter/Fields: HiddenParagraph",
             case 15: bVal = rParent.IsShowHiddenChar(true);    break;// "NonprintingCharacter/HiddenCharacter",
-            case 16: pValues[nProp] <<= rParent.GetUpdateLinkMode();    break;// "Update/Link",
-            case 17: bVal = rParent.IsUpdateFields(); break;// "Update/Field",
-            case 18: bVal = rParent.IsUpdateCharts(); break;// "Update/Chart"
-            case 19: bVal = rParent.IsShowInlineTooltips(); break;// "Display/ShowInlineTooltips"
-            case 20: bVal = rParent.IsUseHeaderFooterMenu(); break;// "Display/UseHeaderFooterMenu"
+            case 16: bVal = rParent.IsShowBookmarks(true);    break;// "NonprintingCharacter/Bookmarks",
+            case 17: pValues[nProp] <<= rParent.GetUpdateLinkMode();    break;// "Update/Link",
+            case 18: bVal = rParent.IsUpdateFields(); break;// "Update/Field",
+            case 19: bVal = rParent.IsUpdateCharts(); break;// "Update/Chart"
+            case 20: bVal = rParent.IsShowInlineTooltips(); break;// "Display/ShowInlineTooltips"
+            case 21: bVal = rParent.IsUseHeaderFooterMenu(); break;// "Display/UseHeaderFooterMenu"
         }
-        if(nProp != 16)
+        if (nProp != g_UpdateLinkIndex)
             pValues[nProp] <<= bVal;
     }
     PutProperties(aNames, aValues);
@@ -180,7 +188,7 @@ void SwContentViewConfig::Load()
         {
             if(pValues[nProp].hasValue())
             {
-                bool bSet = nProp != 16 && *o3tl::doAccess<bool>(pValues[nProp]);
+                bool bSet = nProp != g_UpdateLinkIndex && *o3tl::doAccess<bool>(pValues[nProp]);
                 switch(nProp)
                 {
                     case  0: rParent.SetGraphic(bSet);  break;// "Display/GraphicObject",
@@ -199,17 +207,18 @@ void SwContentViewConfig::Load()
                     case 13: rParent.SetShowHiddenField(bSet);   break;// "NonprintingCharacter/Fields: HiddenText",
                     case 14: rParent.SetShowHiddenPara(bSet); break;// "NonprintingCharacter/Fields: HiddenParagraph",
                     case 15: rParent.SetShowHiddenChar(bSet); break;// "NonprintingCharacter/HiddenCharacter",
-                    case 16:
+                    case 16: rParent.SetShowBookmarks(bSet); break;// "NonprintingCharacter/Bookmarks",
+                    case 17:
                     {
                         sal_Int32 nSet = 0;
                         pValues[nProp] >>= nSet;
                         rParent.SetUpdateLinkMode(nSet, true);
                     }
                     break;// "Update/Link",
-                    case 17: rParent.SetUpdateFields(bSet); break;// "Update/Field",
-                    case 18: rParent.SetUpdateCharts(bSet); break;// "Update/Chart"
-                    case 19: rParent.SetShowInlineTooltips(bSet); break;// "Display/ShowInlineTooltips"
-                    case 20: rParent.SetUseHeaderFooterMenu(bSet); break;// "Display/UseHeaderFooterMenu"
+                    case 18: rParent.SetUpdateFields(bSet); break;// "Update/Field",
+                    case 19: rParent.SetUpdateCharts(bSet); break;// "Update/Chart"
+                    case 20: rParent.SetShowInlineTooltips(bSet); break;// "Display/ShowInlineTooltips"
+                    case 21: rParent.SetUseHeaderFooterMenu(bSet); break;// "Display/UseHeaderFooterMenu"
                 }
             }
         }
diff --git a/sw/source/uibase/inc/cfgitems.hxx b/sw/source/uibase/inc/cfgitems.hxx
index a800704e679f..fab7cd59e66e 100644
--- a/sw/source/uibase/inc/cfgitems.hxx
+++ b/sw/source/uibase/inc/cfgitems.hxx
@@ -49,6 +49,7 @@ class SW_DLLPUBLIC SwDocDisplayItem : public SfxPoolItem
     bool bNonbreakingSpace  :1;
     bool bSoftHyphen        :1;
     bool bCharHiddenText    :1;
+    bool bBookmarks         :1;
     bool bManualBreak       :1;
 
 public:
diff --git a/sw/source/uibase/inc/optpage.hxx b/sw/source/uibase/inc/optpage.hxx
index 1f971b2378d3..5670f02b8c9b 100644
--- a/sw/source/uibase/inc/optpage.hxx
+++ b/sw/source/uibase/inc/optpage.hxx
@@ -227,6 +227,7 @@ class SwShdwCursorOptionsTabPage : public SfxTabPage
     std::unique_ptr<weld::CheckButton> m_xTabCB;
     std::unique_ptr<weld::CheckButton> m_xBreakCB;
     std::unique_ptr<weld::CheckButton> m_xCharHiddenCB;
+    std::unique_ptr<weld::CheckButton> m_xBookmarkCB;
 
     std::unique_ptr<weld::Frame> m_xDirectCursorFrame;
     std::unique_ptr<weld::CheckButton> m_xOnOffCB;
diff --git a/sw/source/uibase/uiview/pview.cxx b/sw/source/uibase/uiview/pview.cxx
index c78c40892201..598d275d6089 100644
--- a/sw/source/uibase/uiview/pview.cxx
+++ b/sw/source/uibase/uiview/pview.cxx
@@ -1103,6 +1103,7 @@ void SwPagePreview::Init()
     aOpt.SetSoftHyph( false );
     aOpt.SetFieldName( false );
     aOpt.SetPostIts( false );
+    aOpt.SetShowBookmarks( false );
     aOpt.SetShowHiddenChar( false );
     aOpt.SetShowHiddenField( false );
     aOpt.SetShowHiddenPara( false );
diff --git a/sw/source/uibase/uiview/view0.cxx b/sw/source/uibase/uiview/view0.cxx
index adb084dff5ad..ca7657481c30 100644
--- a/sw/source/uibase/uiview/view0.cxx
+++ b/sw/source/uibase/uiview/view0.cxx
@@ -151,6 +151,7 @@ static void lcl_SetViewMetaChars( SwViewOption& rVOpt, bool bOn)
             rVOpt.IsTab()       ||
             rVOpt.IsLineBreak() ||
             rVOpt.IsShowHiddenChar() ||
+            rVOpt.IsShowBookmarks() ||
             rVOpt.IsBlank()))
     {
         rVOpt.SetParagraph(bOn);
@@ -158,6 +159,7 @@ static void lcl_SetViewMetaChars( SwViewOption& rVOpt, bool bOn)
         rVOpt.SetLineBreak(bOn);
         rVOpt.SetBlank(bOn);
         rVOpt.SetShowHiddenChar(bOn);
+        rVOpt.SetShowBookmarks(bOn);
     }
 }
 
diff --git a/sw/source/uibase/uno/unomod.cxx b/sw/source/uibase/uno/unomod.cxx
index 23e9db501423..48d84b512ce7 100644
--- a/sw/source/uibase/uno/unomod.cxx
+++ b/sw/source/uibase/uno/unomod.cxx
@@ -93,6 +93,7 @@ enum SwViewSettingsPropertyHandles
     HANDLE_VIEWSET_INLINECHANGES_TIPS,
     HANDLE_VIEWSET_HIDE_WHITESPACE,
     HANDLE_VIEWSET_USE_HEADERFOOTERMENU,
+    HANDLE_VIEWSET_BOOKMARKS,
 };
 
 enum SwPrintSettingsPropertyHandles
@@ -136,6 +137,7 @@ static ChainablePropertySetInfo * lcl_createViewSettingsInfo()
         { OUString( "RasterSubdivisionX"),   HANDLE_VIEWSET_RASTER_SUBDIVISION_X,    cppu::UnoType<sal_Int32>::get(),     PROPERTY_NONE},
         { OUString( "RasterSubdivisionY"),   HANDLE_VIEWSET_RASTER_SUBDIVISION_Y,    cppu::UnoType<sal_Int32>::get(),     PROPERTY_NONE},
         { OUString( "ShowAnnotations" ),     HANDLE_VIEWSET_ANNOTATIONS          , cppu::UnoType<bool>::get(), PROPERTY_NONE},
+        { OUString( "ShowBookmarks" ), HANDLE_VIEWSET_BOOKMARKS, cppu::UnoType<bool>::get(), PROPERTY_NONE },
         { OUString( "ShowBreaks"),           HANDLE_VIEWSET_BREAKS               , cppu::UnoType<bool>::get(), PROPERTY_NONE},
         { OUString( "ShowDrawings"),         HANDLE_VIEWSET_DRAWINGS             , cppu::UnoType<bool>::get(), PROPERTY_NONE},
         { OUString( "ShowFieldCommands"),    HANDLE_VIEWSET_FIELD_COMMANDS       , cppu::UnoType<bool>::get(), PROPERTY_NONE},
@@ -579,6 +581,7 @@ void SwXViewSettings::_setSingleValue( const comphelper::PropertyInfo & rInfo, c
         case  HANDLE_VIEWSET_PROTECTED_SPACES      :   mpViewOption->SetHardBlank(*o3tl::doAccess<bool>(rValue));    break;
         case  HANDLE_VIEWSET_TABSTOPS              :   mpViewOption->SetTab(*o3tl::doAccess<bool>(rValue));  break;
         case  HANDLE_VIEWSET_BREAKS                :   mpViewOption->SetLineBreak(*o3tl::doAccess<bool>(rValue)); break;
+        case  HANDLE_VIEWSET_BOOKMARKS             :   mpViewOption->SetShowBookmarks(*o3tl::doAccess<bool>(rValue)); break;
         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;
@@ -820,6 +823,7 @@ void SwXViewSettings::_getSingleValue( const comphelper::PropertyInfo & rInfo, u
         case  HANDLE_VIEWSET_PROTECTED_SPACES      :   bBoolVal = mpConstViewOption->IsHardBlank(); break;
         case  HANDLE_VIEWSET_TABSTOPS              :   bBoolVal = mpConstViewOption->IsTab(true);   break;
         case  HANDLE_VIEWSET_BREAKS                :   bBoolVal = mpConstViewOption->IsLineBreak(true); break;
+        case  HANDLE_VIEWSET_BOOKMARKS             :   bBoolVal = mpConstViewOption->IsShowBookmarks(true); break;
         case  HANDLE_VIEWSET_HIDDEN_TEXT           :   bBoolVal = mpConstViewOption->IsShowHiddenField();   break;
         case  HANDLE_VIEWSET_HIDDEN_CHARACTERS     :   bBoolVal = mpConstViewOption->IsShowHiddenChar(true); break;
         case  HANDLE_VIEWSET_HIDE_WHITESPACE       :   bBoolVal = mpConstViewOption->IsHideWhitespaceMode(); break;
diff --git a/sw/source/uibase/uno/unotxdoc.cxx b/sw/source/uibase/uno/unotxdoc.cxx
index f5eee610dbc2..7e49697290e8 100644
--- a/sw/source/uibase/uno/unotxdoc.cxx
+++ b/sw/source/uibase/uno/unotxdoc.cxx
@@ -4391,6 +4391,7 @@ SwViewOptionAdjust_Impl::AdjustViewOptions(SwPrintData const*const pPrtOptions,
     aRenderViewOptions.SetBlank( false );                 // spaces
     aRenderViewOptions.SetHardBlank( false );             // non-breaking spaces
     aRenderViewOptions.SetTab( false );                   // tabs
+    aRenderViewOptions.SetShowBookmarks( false );         // bookmarks
     aRenderViewOptions.SetLineBreak( false );             // breaks (type 1)
     aRenderViewOptions.SetPageBreak( false );             // breaks (type 2)
     aRenderViewOptions.SetColumnBreak( false );           // breaks (type 3)
diff --git a/sw/uiconfig/swriter/ui/optformataidspage.ui b/sw/uiconfig/swriter/ui/optformataidspage.ui
index 321ea825f91c..bba4dae11076 100644
--- a/sw/uiconfig/swriter/ui/optformataidspage.ui
+++ b/sw/uiconfig/swriter/ui/optformataidspage.ui
@@ -93,7 +93,7 @@
                     </child>
                     <child>
                       <object class="GtkCheckButton" id="tabs">
-                        <property name="label" translatable="yes" context="optformataidspage|tabs">Ta_bs</property>
+                        <property name="label" translatable="yes" context="optformataidspage|tabs">Tabs</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">False</property>
@@ -136,6 +136,21 @@
                         <property name="top_attach">6</property>
                       </packing>
                     </child>
+                    <child>
+                      <object class="GtkCheckButton" id="bookmarks">
+                        <property name="label" translatable="yes" context="optformataidspage|bookmarks">Bookmarks</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <property name="use_underline">True</property>
+                        <property name="xalign">0</property>
+                        <property name="draw_indicator">True</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">7</property>
+                      </packing>
+                    </child>
                     <child>
                       <object class="GtkLabel">
                         <property name="visible">True</property>
@@ -191,6 +206,17 @@
                         <property name="top_attach">5</property>
                       </packing>
                     </child>
+                    <child>
+                      <object class="GtkLabel">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="label">| [ ]</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="top_attach">7</property>
+                      </packing>
+                    </child>
                     <child>
                       <placeholder/>
                     </child>


More information about the Libreoffice-commits mailing list