]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiPrefs.cpp
Don't allow newline characters in preference (#5840).
[lyx.git] / src / frontends / qt4 / GuiPrefs.cpp
index cfb380f53d8e7914737dd5d8bf9b3451cc8768a9..be8957889949bf1c630b6487667c39c977d554a8 100644 (file)
@@ -349,6 +349,33 @@ static void setComboxFont(QComboBox * cb, string const & family,
 }
 
 
+/////////////////////////////////////////////////////////////////////
+//
+// NoNewLineValidator
+//
+/////////////////////////////////////////////////////////////////////
+
+class NoNewLineValidator : public QValidator
+{
+public:
+       NoNewLineValidator(QWidget *);
+       QValidator::State validate(QString & input, int & pos) const;
+};
+
+
+NoNewLineValidator::NoNewLineValidator(QWidget * parent)
+       : QValidator(parent)
+{
+}
+
+
+QValidator::State NoNewLineValidator::validate(QString & input, int & /*pos*/) const
+{
+       input.remove(QRegExp("[\\n\\r]"));
+       return QValidator::Acceptable;
+}
+
+
 /////////////////////////////////////////////////////////////////////
 //
 // StrftimeValidator
@@ -388,7 +415,11 @@ PrefOutput::PrefOutput(GuiPreferences * form)
        : PrefModule(qt_(catOutput), qt_("General"), form)
 {
        setupUi(this);
+
        DateED->setValidator(new StrftimeValidator(DateED));
+       dviCB->setValidator(new NoNewLineValidator(dviCB));
+       pdfCB->setValidator(new NoNewLineValidator(pdfCB));
+
        connect(DateED, SIGNAL(textChanged(QString)),
                this, SIGNAL(changed()));
        connect(plaintextLinelengthSB, SIGNAL(valueChanged(int)),
@@ -691,6 +722,16 @@ PrefLatex::PrefLatex(GuiPreferences * form)
        : PrefModule(qt_(catOutput), qt_("LaTeX"), form)
 {
        setupUi(this);
+
+       latexEncodingED->setValidator(new NoNewLineValidator(latexEncodingED));
+       latexDviPaperED->setValidator(new NoNewLineValidator(latexDviPaperED));
+       latexBibtexED->setValidator(new NoNewLineValidator(latexBibtexED));
+       latexJBibtexED->setValidator(new NoNewLineValidator(latexJBibtexED));
+       latexIndexED->setValidator(new NoNewLineValidator(latexIndexED));
+       latexJIndexED->setValidator(new NoNewLineValidator(latexJIndexED));
+       latexNomenclED->setValidator(new NoNewLineValidator(latexNomenclED));
+       latexChecktexED->setValidator(new NoNewLineValidator(latexChecktexED));
+
        connect(latexEncodingCB, SIGNAL(clicked()),
                this, SIGNAL(changed()));
        connect(latexEncodingED, SIGNAL(textChanged(QString)),
@@ -715,6 +756,8 @@ PrefLatex::PrefLatex(GuiPreferences * form)
                this, SIGNAL(changed()));
        connect(latexPaperSizeCO, SIGNAL(activated(int)),
                this, SIGNAL(changed()));
+       connect(latexNomenclED, SIGNAL(textChanged(QString)),
+               this, SIGNAL(changed()));
 
 #if defined(__CYGWIN__) || defined(_WIN32)
        pathCB->setVisible(true);
@@ -1338,6 +1381,9 @@ PrefPaths::PrefPaths(GuiPreferences * form)
 
        connect(texinputsPrefixED, SIGNAL(textChanged(QString)),
                this, SIGNAL(changed()));
+
+       pathPrefixED->setValidator(new NoNewLineValidator(pathPrefixED));
+       texinputsPrefixED->setValidator(new NoNewLineValidator(texinputsPrefixED));
 }
 
 
@@ -1486,6 +1532,9 @@ PrefSpellchecker::PrefSpellchecker(GuiPreferences * form)
                        this, SIGNAL(changed()));
                connect(spellcheckNotesCB, SIGNAL(clicked()),
                        this, SIGNAL(changed()));
+
+               altLanguageED->setValidator(new NoNewLineValidator(altLanguageED));
+               escapeCharactersED->setValidator(new NoNewLineValidator(escapeCharactersED));
        #else
                spellcheckerCB->setEnabled(false);
                altLanguageED->setEnabled(false);
@@ -1569,6 +1618,8 @@ PrefConverters::PrefConverters(GuiPreferences * form)
        connect(maxAgeLE, SIGNAL(textEdited(QString)),
                this, SIGNAL(changed()));
 
+       converterED->setValidator(new NoNewLineValidator(converterED));
+       converterFlagED->setValidator(new NoNewLineValidator(converterFlagED));
        maxAgeLE->setValidator(new QDoubleValidator(maxAgeLE));
        //converterDefGB->setFocusProxy(convertersLW);
 }
@@ -1849,8 +1900,14 @@ PrefFileformats::PrefFileformats(GuiPreferences * form)
        : PrefModule(qt_(catFiles), qt_("File Formats"), form)
 {
        setupUi(this);
+
        formatED->setValidator(new FormatNameValidator(formatsCB, form_->formats()));
        formatsCB->setValidator(new FormatPrettynameValidator(formatsCB, form_->formats()));
+       extensionED->setValidator(new NoNewLineValidator(extensionED));
+       shortcutED->setValidator(new NoNewLineValidator(shortcutED));
+       editorED->setValidator(new NoNewLineValidator(editorED));
+       viewerED->setValidator(new NoNewLineValidator(viewerED));
+       copierED->setValidator(new NoNewLineValidator(copierED));
 
        connect(documentCB, SIGNAL(clicked()),
                this, SLOT(setFlags()));
@@ -1925,6 +1982,7 @@ void PrefFileformats::updateView()
                formatsCB->addItem(qt_(cit->prettyname()),
                                QVariant(form_->formats().getNumber(cit->name())));
                if (form_->converters().isReachable("latex", cit->name())
+                   || form_->converters().isReachable("dviluatex", cit->name())
                    || form_->converters().isReachable("pdflatex", cit->name())
                    || form_->converters().isReachable("luatex", cit->name())
                    || form_->converters().isReachable("xetex", cit->name()))
@@ -2229,6 +2287,10 @@ PrefLanguage::PrefLanguage(GuiPreferences * form)
        connect(defaultDecimalPointLE, SIGNAL(textChanged(QString)),
                this, SIGNAL(changed()));
 
+       languagePackageED->setValidator(new NoNewLineValidator(languagePackageED));
+       startCommandED->setValidator(new NoNewLineValidator(startCommandED));
+       endCommandED->setValidator(new NoNewLineValidator(endCommandED));
+
        uiLanguageCO->clear();
 
        QAbstractItemModel * language_model = guiApp->languageModel();
@@ -2372,6 +2434,24 @@ PrefPrinter::PrefPrinter(GuiPreferences * form)
                this, SIGNAL(changed()));
        connect(printerPaperSizeED, SIGNAL(textChanged(QString)),
                this, SIGNAL(changed()));
+
+       printerNameED->setValidator(new NoNewLineValidator(printerNameED));
+       printerCommandED->setValidator(new NoNewLineValidator(printerCommandED));
+       printerEvenED->setValidator(new NoNewLineValidator(printerEvenED));
+       printerPageRangeED->setValidator(new NoNewLineValidator(printerPageRangeED));
+       printerCopiesED->setValidator(new NoNewLineValidator(printerCopiesED));
+       printerReverseED->setValidator(new NoNewLineValidator(printerReverseED));
+       printerToFileED->setValidator(new NoNewLineValidator(printerToFileED));
+       printerPaperTypeED->setValidator(new NoNewLineValidator(printerPaperTypeED));
+       printerExtraED->setValidator(new NoNewLineValidator(printerExtraED));
+       printerOddED->setValidator(new NoNewLineValidator(printerOddED));
+       printerCollatedED->setValidator(new NoNewLineValidator(printerCollatedED));
+       printerLandscapeED->setValidator(new NoNewLineValidator(printerLandscapeED));
+       printerToPrinterED->setValidator(new NoNewLineValidator(printerToPrinterED));
+       printerExtensionED->setValidator(new NoNewLineValidator(printerExtensionED));
+       printerPaperSizeED->setValidator(new NoNewLineValidator(printerPaperSizeED));
+       printerSpoolCommandED->setValidator(new NoNewLineValidator(printerSpoolCommandED));
+       printerSpoolPrefixED->setValidator(new NoNewLineValidator(printerSpoolPrefixED));
 }
 
 
@@ -3112,6 +3192,9 @@ PrefIdentity::PrefIdentity(GuiPreferences * form)
                this, SIGNAL(changed()));
        connect(emailED, SIGNAL(textChanged(QString)),
                this, SIGNAL(changed()));
+
+       nameED->setValidator(new NoNewLineValidator(nameED));
+       emailED->setValidator(new NoNewLineValidator(emailED));
 }