commit 7f39be86646255711473c7f7d6ab7810b750f667
Author: Juergen Spitzmueller <[email protected]>
Date:   Thu Mar 21 13:40:11 2019 +0100

    GuiLyXFiles: prefill language combo
---
 src/frontends/qt4/GuiLyXFiles.cpp |   25 +++++++++++++++++++++----
 src/frontends/qt4/GuiLyXFiles.h   |    2 ++
 2 files changed, 23 insertions(+), 4 deletions(-)

diff --git a/src/frontends/qt4/GuiLyXFiles.cpp 
b/src/frontends/qt4/GuiLyXFiles.cpp
index adddf64..2e91f32 100644
--- a/src/frontends/qt4/GuiLyXFiles.cpp
+++ b/src/frontends/qt4/GuiLyXFiles.cpp
@@ -123,6 +123,16 @@ void GuiLyXFiles::getFiles(QMap<QString, QString> & in, 
QString const type)
                        break;
                }
        }
+       // pre-fill the language combo (it will be updated once an item 
+       // has been clicked)
+       languageCO->clear();
+       languageCO->addItem(qt_("English"), toqstr("en"));
+       QMap<QString, QString>::const_iterator i 
=available_languages_.constBegin();
+       while (i != available_languages_.constEnd()) {
+               languageCO->addItem(i.value(), i.key());
+               ++i;
+       }
+       setLanguage();
 }
 
 
@@ -247,6 +257,10 @@ void 
GuiLyXFiles::on_filesLW_itemDoubleClicked(QTreeWidgetItem * item, int)
 void GuiLyXFiles::on_filesLW_itemClicked(QTreeWidgetItem * item, int)
 {
        QString const data = item->data(0, Qt::UserRole).toString();
+       if (!data.endsWith(getSuffix()))
+               // not a file (probably a header)
+               return;
+
        languageCO->clear();
        QMap<QString, QString>::const_iterator i 
=available_languages_.constBegin();
        while (i != available_languages_.constEnd()) {
@@ -257,13 +271,18 @@ void GuiLyXFiles::on_filesLW_itemClicked(QTreeWidgetItem 
* item, int)
        }
        languageCO->setToolTip(qt_("All available languages of the selected 
file are displayed here.\n"
                                   "The selected language version will be 
opened."));
-       // Set language combo
+       setLanguage();
+       filesLW->currentItem()->setData(0, Qt::ToolTipRole, getRealPath());
+}
+
+
+void GuiLyXFiles::setLanguage()
+{
        // first try last setting
        if (!savelang_.isEmpty()) {
                int index = languageCO->findData(savelang_);
                if (index != -1) {
                        languageCO->setCurrentIndex(index);
-                       filesLW->currentItem()->setData(0, Qt::ToolTipRole, 
getRealPath());
                        return;
                }
        }
@@ -272,7 +291,6 @@ void GuiLyXFiles::on_filesLW_itemClicked(QTreeWidgetItem * 
item, int)
                int index = languageCO->findData(guilang_);
                if (index != -1) {
                        languageCO->setCurrentIndex(index);
-                       filesLW->currentItem()->setData(0, Qt::ToolTipRole, 
getRealPath());
                        return;
                }
        }
@@ -280,7 +298,6 @@ void GuiLyXFiles::on_filesLW_itemClicked(QTreeWidgetItem * 
item, int)
        int index = languageCO->findData(toqstr("en"));
        if (index != -1) {
                languageCO->setCurrentIndex(index);
-               filesLW->currentItem()->setData(0, Qt::ToolTipRole, 
getRealPath());
        }
 }
 
diff --git a/src/frontends/qt4/GuiLyXFiles.h b/src/frontends/qt4/GuiLyXFiles.h
index 1f2eaa3..e963322 100644
--- a/src/frontends/qt4/GuiLyXFiles.h
+++ b/src/frontends/qt4/GuiLyXFiles.h
@@ -72,6 +72,8 @@ private:
        void getFiles(QMap<QString, QString> &, QString const);
        /// Get the full file path in the selected localization
        QString const getRealPath();
+       ///
+       void setLanguage();
 
 private:
        /// contains the search box

Reply via email to