]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiIndices.cpp
On Linux show in crash message box the backtrace
[lyx.git] / src / frontends / qt4 / GuiIndices.cpp
index 5ab141c70cd05a376f7e15835510b417515d3204..8694b98cd74184171128ceb621e881138e5a1176 100644 (file)
@@ -52,6 +52,7 @@ GuiIndices::GuiIndices(QWidget * parent)
        indicesTW->headerItem()->setText(1, qt_("Label Color"));
        indicesTW->setSortingEnabled(true);
 
+       // NOTE: we do not provide "custom" here for security reasons!
        indexCO->clear();
        indexCO->addItem(qt_("Default"), QString("default"));
        for (set<string>::const_iterator it = lyxrc.index_alternatives.begin();
@@ -59,6 +60,9 @@ GuiIndices::GuiIndices(QWidget * parent)
                QString const command = toqstr(*it).left(toqstr(*it).indexOf(" "));
                indexCO->addItem(command, command);
        }
+
+       indexOptionsLE->setValidator(new NoNewLineValidator(indexOptionsLE));
+       newIndexLE->setValidator(new NoNewLineValidator(newIndexLE));
 }
 
 void GuiIndices::update(BufferParams const & params)
@@ -81,12 +85,14 @@ void GuiIndices::update(BufferParams const & params)
        int const pos = indexCO->findData(toqstr(command));
        if (pos != -1) {
                indexCO->setCurrentIndex(pos);
-               indexOptionsED->setText(toqstr(options).trimmed());
+               indexOptionsLE->setText(toqstr(options).trimmed());
        } else {
-               indexCO->setCurrentIndex(0);
-               indexOptionsED->clear();
+               // We reset to default if we do not know the specified compiler
+               // This is for security reasons
+               indexCO->setCurrentIndex(indexCO->findData(toqstr("default")));
+               indexOptionsLE->clear();
        }
-       indexOptionsED->setEnabled(
+       indexOptionsLE->setEnabled(
                indexCO->currentIndex() != 0);
 
        updateView();
@@ -123,6 +129,7 @@ void GuiIndices::updateView()
                        indicesTW->setItemSelected(newItem, true);
                }
        }
+       indicesTW->resizeColumnToContents(0);
        bool const have_sel =
                !indicesTW->selectedItems().isEmpty();
        removePB->setEnabled(have_sel);
@@ -141,7 +148,7 @@ void GuiIndices::apply(BufferParams & params) const
        string const index_command =
                fromqstr(indexCO->itemData(
                        indexCO->currentIndex()).toString());
-       string const index_options = fromqstr(indexOptionsED->text());
+       string const index_options = fromqstr(indexOptionsLE->text());
        if (index_command == "default" || index_options.empty())
                params.index_command = index_command;
        else
@@ -151,12 +158,13 @@ void GuiIndices::apply(BufferParams & params) const
 
 void GuiIndices::on_indexCO_activated(int n)
 {
-       indexOptionsED->setEnabled(n != 0);
+       indexOptionsLE->setEnabled(
+               indexCO->itemData(n).toString() != "default");
        changed();
 }
 
 
-void GuiIndices::on_indexOptionsED_textChanged(QString)
+void GuiIndices::on_indexOptionsLE_textChanged(QString)
 {
        changed();
 }
@@ -209,11 +217,11 @@ void GuiIndices::on_renamePB_clicked()
                        success = indiceslist_.rename(qstring_to_ucs4(sel_index), newname);
                        newIndexLE->clear();
                        updateView();
+                       if (!success)
+                               Alert::error(_("Renaming failed"), 
+                                     _("The index could not be renamed. "
+                                       "Check if the new name already exists."));
                }
-               if (!success)
-                       Alert::error(_("Renaming failed"), 
-                             _("The index could not be renamed. "
-                               "Check if the new name already exists."));
        }
 }