commit 3662e0b4e5d6dba4fd716b69e202d8362d6b2255
Author: Juergen Spitzmueller <[email protected]>
Date:   Wed Jun 11 13:37:13 2025 +0200

    Add UI for bookmarks visibility (#2496)
---
 src/LyXRC.cpp                        |   4 +-
 src/frontends/qt/GuiPrefs.cpp        |  23 +++++
 src/frontends/qt/ui/PrefDisplayUi.ui | 166 +++++++++++++++++++----------------
 3 files changed, 116 insertions(+), 77 deletions(-)

diff --git a/src/LyXRC.cpp b/src/LyXRC.cpp
index 59c6657d10..7dd14fa035 100644
--- a/src/LyXRC.cpp
+++ b/src/LyXRC.cpp
@@ -75,6 +75,7 @@ LexerKeyword lyxrcTags[] = {
        { "\\bibtex_alternatives", LyXRC::RC_BIBTEX_ALTERNATIVES },
        { "\\bibtex_command", LyXRC::RC_BIBTEX_COMMAND },
        { "\\bind_file", LyXRC::RC_BINDFILE },
+       { "\\bookmarks_visibility", LyXRC::RC_BOOKMARKS_VISIBILITY },
        { "\\check_lastfiles", LyXRC::RC_CHECKLASTFILES },
        { "\\chktex_command", LyXRC::RC_CHKTEX_COMMAND },
        { "\\citation_search", LyXRC::RC_CITATION_SEARCH },
@@ -112,7 +113,6 @@ LexerKeyword lyxrcTags[] = {
        { "\\editor_alternatives", LyXRC::RC_EDITOR_ALTERNATIVES },
        { "\\escape_chars", LyXRC::RC_ESC_CHARS },
        { "\\example_path", LyXRC::RC_EXAMPLEPATH },
-       { "\\experimental:bookmarks_visibility", LyXRC::RC_BOOKMARKS_VISIBILITY 
},
        { "\\export_overwrite", LyXRC::RC_EXPORT_OVERWRITE },
        { "\\format", LyXRC::RC_FILEFORMAT },
        { "\\forward_search_dvi", LyXRC::RC_FORWARD_SEARCH_DVI },
@@ -1800,7 +1800,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, 
string const & name) c
                                status = "margin";
                                break;
                        }
-                       os << "\\experimental:bookmarks_visibility " << status 
<< '\n';
+                       os << "\\bookmarks_visibility " << status << '\n';
                }
                if (tag != RC_LAST)
                        break;
diff --git a/src/frontends/qt/GuiPrefs.cpp b/src/frontends/qt/GuiPrefs.cpp
index cc4f372ced..26b76a9bd5 100644
--- a/src/frontends/qt/GuiPrefs.cpp
+++ b/src/frontends/qt/GuiPrefs.cpp
@@ -1941,6 +1941,10 @@ PrefDisplay::PrefDisplay(GuiPreferences * form)
        connect(previewSizeSB, SIGNAL(valueChanged(double)), this, 
SIGNAL(changed()));
        connect(paragraphMarkerCB, SIGNAL(toggled(bool)), this, 
SIGNAL(changed()));
        connect(ctAdditionsUnderlinedCB, SIGNAL(toggled(bool)), this, 
SIGNAL(changed()));
+       connect(bookmarksCO, SIGNAL(activated(int)), this, SIGNAL(changed()));
+       bookmarksCO->addItem(qt_("No[[bookmarks]]"), "none");
+       bookmarksCO->addItem(qt_("Inline"), "inline");
+       bookmarksCO->addItem(qt_("In Margin"), "margin");
 }
 
 
@@ -1968,6 +1972,13 @@ void PrefDisplay::applyRC(LyXRC & rc) const
        rc.preview_scale_factor = previewSizeSB->value();
        rc.paragraph_markers = paragraphMarkerCB->isChecked();
        rc.ct_additions_underlined = ctAdditionsUnderlinedCB->isChecked();
+       QString const bm = 
bookmarksCO->itemData(bookmarksCO->currentIndex()).toString();
+       if (bm == "inline")
+               rc.bookmarks_visibility = LyXRC::BMK_INLINE;
+       else if (bm == "margin")
+               rc.bookmarks_visibility = LyXRC::BMK_MARGIN;
+       else
+               rc.bookmarks_visibility = LyXRC::BMK_NONE;
 
        // FIXME!! The graphics cache no longer has a changeDisplay method.
 #if 0
@@ -1997,6 +2008,18 @@ void PrefDisplay::updateRC(LyXRC const & rc)
        previewSizeSB->setValue(rc.preview_scale_factor);
        paragraphMarkerCB->setChecked(rc.paragraph_markers);
        ctAdditionsUnderlinedCB->setChecked(rc.ct_additions_underlined);
+       bookmarksCO->setCurrentIndex(rc.bookmarks_visibility);
+       switch (rc.bookmarks_visibility) {
+               case LyXRC::BMK_INLINE:
+                       
bookmarksCO->setCurrentIndex(bookmarksCO->findData("inline"));
+                       break;
+               case LyXRC::BMK_MARGIN:
+                       
bookmarksCO->setCurrentIndex(bookmarksCO->findData("margin"));
+                       break;
+               case LyXRC::BMK_NONE:
+                       
bookmarksCO->setCurrentIndex(bookmarksCO->findData("none"));
+                       break;
+       }
        previewSizeSB->setEnabled(
                rc.display_graphics
                && rc.preview != LyXRC::PREVIEW_OFF);
diff --git a/src/frontends/qt/ui/PrefDisplayUi.ui 
b/src/frontends/qt/ui/PrefDisplayUi.ui
index d8a79eb7db..a288a58972 100644
--- a/src/frontends/qt/ui/PrefDisplayUi.ui
+++ b/src/frontends/qt/ui/PrefDisplayUi.ui
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>507</width>
-    <height>206</height>
+    <height>294</height>
    </rect>
   </property>
   <property name="sizePolicy">
@@ -19,58 +19,15 @@
   <property name="windowTitle">
    <string/>
   </property>
-  <layout class="QGridLayout">
-   <property name="leftMargin">
-    <number>9</number>
-   </property>
-   <property name="topMargin">
-    <number>9</number>
-   </property>
-   <property name="rightMargin">
-    <number>9</number>
-   </property>
-   <property name="bottomMargin">
-    <number>9</number>
-   </property>
-   <property name="spacing">
-    <number>6</number>
-   </property>
-   <item row="1" column="3">
-    <widget class="QDoubleSpinBox" name="previewSizeSB">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="toolTip">
-      <string>Factor for the preview size</string>
-     </property>
-     <property name="decimals">
-      <number>1</number>
-     </property>
-     <property name="minimum">
-      <double>0.100000000000000</double>
-     </property>
-     <property name="maximum">
-      <double>10.000000000000000</double>
-     </property>
-     <property name="singleStep">
-      <double>0.100000000000000</double>
-     </property>
-     <property name="value">
-      <double>1.000000000000000</double>
-     </property>
-    </widget>
-   </item>
-   <item row="0" column="0" colspan="2">
+  <layout class="QGridLayout" name="gridLayout">
+   <item row="0" column="0">
     <widget class="QCheckBox" name="displayGraphicsCB">
      <property name="text">
       <string>Display &amp;graphics</string>
      </property>
     </widget>
    </item>
-   <item row="0" column="4" rowspan="5">
+   <item row="0" column="5">
     <spacer>
      <property name="orientation">
       <enum>Qt::Horizontal</enum>
@@ -83,22 +40,6 @@
      </property>
     </spacer>
    </item>
-   <item row="4" column="0">
-    <spacer>
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeType">
-      <enum>QSizePolicy::Expanding</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>0</width>
-       <height>20</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
    <item row="1" column="0">
     <widget class="QLabel" name="instantPreviewLA">
      <property name="text">
@@ -109,7 +50,7 @@
      </property>
     </widget>
    </item>
-   <item row="1" column="1">
+   <item row="1" column="1" colspan="2">
     <widget class="QComboBox" name="instantPreviewCO">
      <item>
       <property name="text">
@@ -128,6 +69,44 @@
      </item>
     </widget>
    </item>
+   <item row="1" column="3">
+    <widget class="QLabel" name="previewSizeLA">
+     <property name="text">
+      <string>Preview si&amp;ze:</string>
+     </property>
+     <property name="buddy">
+      <cstring>instantPreviewCO</cstring>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="4">
+    <widget class="QDoubleSpinBox" name="previewSizeSB">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="toolTip">
+      <string>Factor for the preview size</string>
+     </property>
+     <property name="decimals">
+      <number>1</number>
+     </property>
+     <property name="minimum">
+      <double>0.100000000000000</double>
+     </property>
+     <property name="maximum">
+      <double>10.000000000000000</double>
+     </property>
+     <property name="singleStep">
+      <double>0.100000000000000</double>
+     </property>
+     <property name="value">
+      <double>1.000000000000000</double>
+     </property>
+    </widget>
+   </item>
    <item row="2" column="0" colspan="2">
     <widget class="QCheckBox" name="paragraphMarkerCB">
      <property name="toolTip">
@@ -138,17 +117,7 @@
      </property>
     </widget>
    </item>
-   <item row="1" column="2">
-    <widget class="QLabel" name="previewSizeLA">
-     <property name="text">
-      <string>Preview si&amp;ze:</string>
-     </property>
-     <property name="buddy">
-      <cstring>instantPreviewCO</cstring>
-     </property>
-    </widget>
-   </item>
-   <item row="3" column="0" colspan="2">
+   <item row="3" column="0" colspan="3">
     <widget class="QCheckBox" name="ctAdditionsUnderlinedCB">
      <property name="toolTip">
       <string>If this is checked, additions in change tracking are underlined 
in the workarea</string>
@@ -158,6 +127,53 @@
      </property>
     </widget>
    </item>
+   <item row="4" column="0" colspan="3">
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <item>
+      <widget class="QLabel" name="bookmarksLA">
+       <property name="text">
+        <string>Display &amp;bookmarks:</string>
+       </property>
+       <property name="buddy">
+        <cstring>bookmarksCO</cstring>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QComboBox" name="bookmarksCO">
+       <property name="toolTip">
+        <string>Select whether and how bookmarks should be visualized in the 
workarea</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <spacer name="horizontalSpacer">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>40</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+    </layout>
+   </item>
+   <item row="5" column="2">
+    <spacer name="verticalSpacer">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>121</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
   </layout>
  </widget>
  <tabstops>
-- 
lyx-cvs mailing list
[email protected]
https://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to