[LyX/master] Disable language selector in LyXFiles dialog if no file is selected (#12412)

Juergen Spitzmueller spitz at lyx.org
Fri Oct 29 10:54:24 UTC 2021


commit 61fb295e46dbff2c5fe745d51891dbbce0f231a0
Author: Juergen Spitzmueller <spitz at lyx.org>
Date:   Fri Oct 29 13:16:08 2021 +0200

    Disable language selector in LyXFiles dialog if no file is selected (#12412)
---
 src/frontends/qt/GuiLyXFiles.cpp  |   18 ++++++++++++------
 src/frontends/qt/ui/LyXFilesUi.ui |    2 +-
 2 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/src/frontends/qt/GuiLyXFiles.cpp b/src/frontends/qt/GuiLyXFiles.cpp
index ee02d7b..dedb0bd 100644
--- a/src/frontends/qt/GuiLyXFiles.cpp
+++ b/src/frontends/qt/GuiLyXFiles.cpp
@@ -149,7 +149,6 @@ QMap<QString, QString> GuiLyXFiles::getFiles()
 		++i;
 	}
 	setLanguage();
-	languageLA->setText(qt_("Preferred &Language:"));
 	return result;
 }
 
@@ -310,9 +309,6 @@ void GuiLyXFiles::on_filesLW_itemClicked(QTreeWidgetItem * item, int)
 			languageCO->addItem(i.value(), i.key());
 		++i;
 	}
-	languageLA->setText(qt_("File &Language:"));
-	languageCO->setToolTip(qt_("All available languages of the selected file are displayed here.\n"
-				   "The selected language version will be opened."));
 	setLanguage();
 	QString const realpath = getRealPath();
 	filesLW->currentItem()->setData(0, Qt::ToolTipRole, realpath);
@@ -327,8 +323,18 @@ void GuiLyXFiles::on_filesLW_itemClicked(QTreeWidgetItem * item, int)
 void GuiLyXFiles::setLanguage()
 {
 	// Enable language selection only if there is a selection.
-	languageCO->setEnabled(languageCO->count() > 1);
-	languageLA->setEnabled(languageCO->count() > 1);
+	bool const item_selected =  filesLW->currentItem();
+	bool const language_alternatives = languageCO->count() > 1;
+	languageCO->setEnabled(item_selected && language_alternatives);
+	languageLA->setEnabled(item_selected && language_alternatives);
+	if (item_selected && language_alternatives)
+		languageCO->setToolTip(qt_("All available languages of the selected file are displayed here.\n"
+					   "The selected language version will be opened."));
+	else if (item_selected)
+		languageCO->setToolTip(qt_("No alternative language versions available for the selected file."));
+	else
+		languageCO->setToolTip(qt_("If alternative languages are available for a given file,\n"
+					   "they can be chosen here if a file is selected."));
 	// first try last setting
 	if (!savelang_.isEmpty()) {
 		int index = languageCO->findData(savelang_);
diff --git a/src/frontends/qt/ui/LyXFilesUi.ui b/src/frontends/qt/ui/LyXFilesUi.ui
index 621b9bb..573ac77 100644
--- a/src/frontends/qt/ui/LyXFilesUi.ui
+++ b/src/frontends/qt/ui/LyXFilesUi.ui
@@ -91,7 +91,7 @@
         <string/>
        </property>
        <property name="text">
-        <string>&Language:</string>
+        <string>File &Language:</string>
        </property>
        <property name="buddy">
         <cstring>languageCO</cstring>


More information about the lyx-cvs mailing list