commit 788e6529dbd1fa19564d842e03a096ac0b6fb07c
Author: Juergen Spitzmueller <[email protected]>
Date:   Mon Jul 20 09:15:44 2026 +0200

    Some special font UI fixes
---
 src/frontends/qt/GuiDocument.cpp | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/src/frontends/qt/GuiDocument.cpp b/src/frontends/qt/GuiDocument.cpp
index fbfb970b36..5ae667cf9e 100644
--- a/src/frontends/qt/GuiDocument.cpp
+++ b/src/frontends/qt/GuiDocument.cpp
@@ -2905,8 +2905,12 @@ void GuiDocument::setSpecialFontButtons()
                return;
        }
        bool changed = false;
+       bool have_rm = false;
+       bool have_sf = false;
+       bool have_tt = false;
        for (auto const & iit : items) {
                if (iit->data(1, Qt::UserRole).toString() == "rm") {
+                       have_rm = true;
                        if (iit->text(2) != rmfont
                            || iit->checkState(4) != 
fontSpecialModule->fontSpecialRomanOsfCB->checkState()
                            || iit->text(5) != 
fontSpecialModule->fontspecRomanSpecialLE->text()) {
@@ -2914,6 +2918,7 @@ void GuiDocument::setSpecialFontButtons()
                                break;
                        }
                } else if (iit->data(1, Qt::UserRole).toString() == "sf") {
+                       have_sf = true;
                        if (iit->text(2) != sffont
                            || iit->text(3).toInt() != 
fontSpecialModule->scaleSpecialSansSB->value()
                            || iit->checkState(4) != 
fontSpecialModule->fontSpecialSansOsfCB->checkState()
@@ -2922,6 +2927,7 @@ void GuiDocument::setSpecialFontButtons()
                                break;
                        }
                } else if (iit->data(1, Qt::UserRole).toString() == "tt") {
+                       have_tt = true;
                        if (iit->text(2) != ttfont
                            || iit->text(3).toInt() != 
fontSpecialModule->scaleSpecialTypewriterSB->value()
                            || iit->checkState(4) != 
fontSpecialModule->fontSpecialTypewriterOsfCB->checkState()
@@ -2931,6 +2937,9 @@ void GuiDocument::setSpecialFontButtons()
                        }
                }
        }
+       if ((!have_rm && rmfont != "default") || (!have_sf && sffont != 
"default")
+            || (!have_tt && ttfont != "default"))
+               changed = true;
        if (changed)
                fontSpecialModule->applySpecialFontPB->setText(qt_("Mo&dify"));
        else
@@ -2993,6 +3002,7 @@ void GuiDocument::addSpecialFont()
                item->setData(1, Qt::UserRole, "rm");
                item->setText(2, rmfont);
                // no scale here
+               item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
                if (rmosf)
                        item->setCheckState(4, Qt::Checked);
                else
@@ -3032,6 +3042,7 @@ void GuiDocument::addSpecialFont()
                QString sfscl;
                sfscl.setNum(sfscale);
                item->setText(3, sfscl);
+               item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
                if (sfosf)
                        item->setCheckState(4, Qt::Checked);
                else
@@ -3071,6 +3082,7 @@ void GuiDocument::addSpecialFont()
                QString ttscl;
                ttscl.setNum(ttscale);
                item->setText(3, ttscl);
+               item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
                if (ttosf)
                        item->setCheckState(4, Qt::Checked);
                else
-- 
lyx-cvs mailing list
[email protected]
https://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to