[LyX/master] Disable language package choice if the class preloads a package

Juergen Spitzmueller spitz at lyx.org
Sat Apr 13 08:07:57 UTC 2024


commit 5477451e36cd9ff4e99aefea2627fbf63e028004
Author: Juergen Spitzmueller <spitz at lyx.org>
Date:   Sat Apr 13 10:07:18 2024 +0200

    Disable language package choice if the class preloads a package
---
 src/frontends/qt/GuiDocument.cpp | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/src/frontends/qt/GuiDocument.cpp b/src/frontends/qt/GuiDocument.cpp
index d4471cff7b..ed20023c93 100644
--- a/src/frontends/qt/GuiDocument.cpp
+++ b/src/frontends/qt/GuiDocument.cpp
@@ -4217,7 +4217,21 @@ void GuiDocument::paramsToDialog()
 
 	// LaTeX input encoding: set after the fonts (see below)
 
-	int p = langModule->languagePackageCO->findData(toqstr(bp_.lang_package));
+    // If the class provides babel or polyglossia, do not allow
+    // to change that
+	bool const extern_babel =
+		documentClass().provides("babel");
+    bool const extern_polyglossia =
+		documentClass().provides("polyglossia");
+
+	int p = -1;
+	if (extern_babel)
+	    p = langModule->languagePackageCO->findData(toqstr("babel"));
+	else if (extern_polyglossia)
+	    p = langModule->languagePackageCO->findData(toqstr("polyglossia"));
+	else
+	    p = langModule->languagePackageCO->findData(toqstr(bp_.lang_package));
+
 	if (p == -1) {
 		langModule->languagePackageCO->setCurrentIndex(
 			  langModule->languagePackageCO->findData("custom"));
@@ -4226,6 +4240,7 @@ void GuiDocument::paramsToDialog()
 		langModule->languagePackageCO->setCurrentIndex(p);
 		langModule->languagePackageLE->clear();
 	}
+	langModule->languagePackageCO->setEnabled(!extern_babel && !extern_polyglossia);
 
 	//color
 	if (bp_.isfontcolor) {


More information about the lyx-cvs mailing list