This patch does that. There's still hardcoded English in the messages of the 
Advanced widget. This needs some reworking of InsetListingsParams, and I 
leave this to Bo.

OK for this one?

Jürgen
Index: src/frontends/qt4/QDocument.cpp
===================================================================
--- src/frontends/qt4/QDocument.cpp	(Revision 18408)
+++ src/frontends/qt4/QDocument.cpp	(Arbeitskopie)
@@ -214,7 +214,8 @@
 		this, SLOT(change_adaptor()));
 	connect(textLayoutModule->listingsED, SIGNAL(textChanged()),
 		this, SLOT(validate_listings_params()));
-	textLayoutModule->listingsTB->setPlainText("Input listings parameters below. Enter ? for a list of parameters.");
+	textLayoutModule->listingsTB->setPlainText(
+		qt_("Input listings parameters on the right. Enter ? for a list of parameters."));
 	textLayoutModule->lspacingLE->setValidator(new QDoubleValidator(
 		textLayoutModule->lspacingLE));
 	textLayoutModule->skipLE->setValidator(unsignedLengthValidator(
Index: src/frontends/qt4/QInclude.cpp
===================================================================
--- src/frontends/qt4/QInclude.cpp	(Revision 18408)
+++ src/frontends/qt4/QInclude.cpp	(Arbeitskopie)
@@ -91,7 +91,8 @@
 		InsetListingsParams par(fromqstr(listingsED->toPlainText()));
 		if (!isOK) {
 			isOK = true;
-			listingsTB->setPlainText("Input listings parameters on the right. Enter ? for a list of parameters.");
+			listingsTB->setPlainText(
+				qt_("Input listings parameters on the right. Enter ? for a list of parameters."));
 			okPB->setEnabled(true);
 		}
 	} catch (invalidParam & e) {
@@ -206,7 +207,8 @@
 	dialog_->captionLE->clear();
 	dialog_->labelLE->clear();
 	dialog_->listingsED->clear();
-	dialog_->listingsTB->setPlainText("Input listings parameters on the right. Enter ? for a list of parameters.");
+	dialog_->listingsTB->setPlainText(
+		qt_("Input listings parameters on the right. Enter ? for a list of parameters."));
 
 	string cmdname = controller().params().getCmdName();
 	if (cmdname != "include" &&
@@ -246,6 +248,7 @@
 				if (cap[0] == '{' && cap[cap.size()-1] == '}')
 					dialog_->captionLE->setText(toqstr(cap.substr(1, cap.size()-2)));
 				else
+					// FIXME: make this translatable!
 					throw invalidParam("caption parameter is not quoted with braces");
 				*it = "";
 			} else if (prefixIs(*it, "label=")) {
@@ -253,6 +256,7 @@
 				if (lbl[0] == '{' && lbl[lbl.size()-1] == '}')
 					dialog_->labelLE->setText(toqstr(lbl.substr(1, lbl.size()-2)));
 				else
+					// FIXME: make this translatable!
 					throw invalidParam("label parameter is not quoted with braces");
 				*it = "";
 			}
Index: src/frontends/qt4/ui/ListingsUi.ui
===================================================================
--- src/frontends/qt4/ui/ListingsUi.ui	(Revision 18409)
+++ src/frontends/qt4/ui/ListingsUi.ui	(Arbeitskopie)
@@ -258,7 +258,7 @@
                  <string>Choose the Font Size</string>
                 </property>
                 <property name="editable" >
-                 <bool>true</bool>
+                 <bool>false</bool>
                 </property>
                 <property name="autoCompletion" >
                  <bool>true</bool>
@@ -269,7 +269,23 @@
                </widget>
               </item>
               <item row="0" column="1" >
-               <widget class="QComboBox" name="numberSideCO" />
+               <widget class="QComboBox" name="numberSideCO" >
+                <item>
+                 <property name="text" >
+                  <string>None</string>
+                 </property>
+                </item>
+                <item>
+                 <property name="text" >
+                  <string>Left</string>
+                 </property>
+                </item>
+                <item>
+                 <property name="text" >
+                  <string>Right</string>
+                 </property>
+                </item>
+               </widget>
               </item>
              </layout>
             </widget>
@@ -424,7 +440,7 @@
                <string>Choose the Font Style</string>
               </property>
               <property name="editable" >
-               <bool>true</bool>
+               <bool>false</bool>
               </property>
               <property name="autoCompletion" >
                <bool>true</bool>
@@ -461,7 +477,7 @@
                <string>Choose the Font Size</string>
               </property>
               <property name="editable" >
-               <bool>true</bool>
+               <bool>false</bool>
               </property>
               <property name="autoCompletion" >
                <bool>true</bool>
Index: src/frontends/qt4/QListings.cpp
===================================================================
--- src/frontends/qt4/QListings.cpp	(Revision 18409)
+++ src/frontends/qt4/QListings.cpp	(Arbeitskopie)
@@ -30,6 +30,7 @@
 
 using std::string;
 using std::vector;
+using lyx::support::findToken;
 using lyx::support::getVectorFromString;
 using lyx::support::getStringFromVector;
 using lyx::support::prefixIs;
@@ -45,18 +46,38 @@
 /////////////////////////////////////////////////////////////////////
 
 
-string const allowed_languages = 
-	"no language\nBAP\nACSL\nAda\nALGOL\nC\nC++\nCaml\nClean\nCobol\n"
-	"Comal 80\ncsh\nDelphi\nEiffel\nElan\nEuphoria\nFortran\nHaskell\n"
-	"HTML\nIDL\nJava\nLisp\nLogo\nmake\nMathematica\nMatlab\nMercury\n"
-	"Miranda\nML\nModula-2\nOberon-2\nOCL\nPascal\nPerl\nPHP\nPL/I\nPOV\n"
-	"Python\nProlog\nR\nS\nSAS\nSHELXL\nSimula\ntcl\nSQL\nTeX\nVBScript\n"
-	"VHDL\nXML";
-string const allowed_fontsizes = "default\ntiny\nscriptsize\nfootnotesize\nsmall\n"
-	"normalsize\nlarge\nLarge";
-string const allowed_fontstyles = "default\nrmfamily\nttfamily\nsffamily";
-string const allowed_sides = "none\nleft\nright";
+char const * languages[] =
+{ "no language", "BAP", "ACSL", "Ada", "ALGOL", "C", "C++", "Caml", "Clean", "Cobol",
+  "Comal 80", "csh", "Delphi", "Eiffel", "Elan", "Euphoria", "Fortran", "Haskell",
+  "HTML", "IDL", "Java", "Lisp", "Logo", "make", "Mathematica", "Matlab", "Mercury",
+  "Miranda", "ML", "Modula-2", "Oberon-2", "OCL", "Pascal", "Perl", "PHP", "PL/I", "POV",
+  "Python", "Prolog", "R", "S", "SAS", "SHELXL", "Simula", "tcl", "SQL", "TeX", "VBScript",
+  "VHDL", "XML", "" };
 
+char const * languages_gui[] =
+{ N_("No language"), "BAP", "ACSL", "Ada", "ALGOL", "C", "C++", "Caml", "Clean", "Cobol",
+  "Comal 80", "csh", "Delphi", "Eiffel", "Elan", "Euphoria", "Fortran", "Haskell",
+  "HTML", "IDL", "Java", "Lisp", "Logo", "make", "Mathematica", "Matlab", "Mercury",
+  "Miranda", "ML", "Modula-2", "Oberon-2", "OCL", "Pascal", "Perl", "PHP", "PL/I", "POV",
+  "Python", "Prolog", "R", "S", "SAS", "SHELXL", "Simula", "tcl", "SQL", "TeX", "VBScript",
+  "VHDL", "XML", "" };
+
+char const * font_sizes[] =
+{ "default", "tiny", "scriptsize", "footnotesize", "small", "normalsize", "large",
+  "Large", "" };
+
+char const * font_sizes_gui[] =
+{ N_("Default"), N_("Tiny"), N_("Smallest"), N_("Smaller"), N_("Small"), N_("Normal"), N_("Large"),
+  N_("Larger"), "" };
+
+char const * font_styles[] =
+{ "default", "rmfamily", "ttfamily", "sffamily", "" };
+
+char const * font_styles_gui[] =
+{ N_("Default"), N_("Roman"), N_("Typewriter"), N_("Sans Serif"), "" };
+
+
+
 QListingsDialog::QListingsDialog(QListings * form)
 	: form_(form)
 {
@@ -101,19 +122,33 @@
 
 string QListingsDialog::construct_params()
 {
-	string language = fromqstr(languageCO->currentText());
+	string language = languages[languageCO->currentIndex()];
 	
 	bool float_ = floatCB->checkState() == Qt::Checked;
 	string placement = placementLE->isEnabled() ? fromqstr(placementLE->text()) : string();
-	
-	string numberSide = fromqstr(numberSideCO->currentText());
+
+	string numberSide;
+	switch (numberSideCO->currentIndex()) {
+	case 0:
+		numberSide = "none";
+		break;
+	case 1:
+		numberSide = "left";
+		break;
+	case 2:
+		numberSide = "right";
+		break;
+	default:
+		numberSide = "none";
+		break;
+	}
 	string stepnumber = fromqstr(numberStepLE->text());
-	string numberfontsize = fromqstr(numberFontSizeCO->currentText());
+	string numberfontsize = font_sizes[numberFontSizeCO->currentIndex()];
 	string firstline = fromqstr(firstlineLE->text());
 	string lastline = fromqstr(lastlineLE->text());
 	
-	string fontsize = fromqstr(fontsizeCO->currentText());
-	string fontstyle = fromqstr(fontstyleCO->currentText());
+	string fontsize = font_sizes[fontsizeCO->currentIndex()];
+	string fontstyle = font_styles[fontstyleCO->currentIndex()];
 	string basicstyle;
 	if (fontsize != "default")
 		basicstyle = "\\" + fontsize;
@@ -163,7 +198,7 @@
 		if (!isOK) {
 			isOK = true;
 			listingsTB->setPlainText(
-				"Input listings parameters on the right. Enter ? for a list of parameters.");
+				qt_("Input listings parameters on the right. Enter ? for a list of parameters."));
 			okPB->setEnabled(true);
 		}
 	} catch (invalidParam & e) {
@@ -214,7 +249,7 @@
 	bcview().setApply(dialog_->applyPB);
 	bcview().setCancel(dialog_->closePB);
 	dialog_->listingsTB->setPlainText(
-		"Input listings parameters on the right. Enter ? for a list of parameters.");
+		qt_("Input listings parameters on the right. Enter ? for a list of parameters."));
 
 	update_contents();
 }
@@ -231,40 +266,20 @@
 
 void QListings::update_contents()
 {
-	// first prepare all choices
-	vector<string> const languages = 
-		getVectorFromString(allowed_languages, "\n");
-	vector<string> const fontstyles = 
-		getVectorFromString(allowed_fontstyles, "\n");
-	vector<string> const fontsizes = 
-		getVectorFromString(allowed_fontsizes, "\n");
-	vector<string> const sides = 
-		getVectorFromString(allowed_sides, "\n");
+	dialog_->languageCO->clear();
+	for (int n = 0; languages[n][0]; ++n)
+		dialog_->languageCO->addItem(languages_gui[n]);
 
-	dialog_->languageCO->clear();
-	for (vector<string>::const_iterator it = languages.begin();
-	    it != languages.end(); ++it) {
-		dialog_->languageCO->addItem(toqstr(*it));
-	}
-	dialog_->numberSideCO->clear();
-	for (vector<string>::const_iterator it = sides.begin();
-	    it != sides.end(); ++it) {
-		dialog_->numberSideCO->addItem(toqstr(*it));
-	}
 	dialog_->fontstyleCO->clear();
-	dialog_->fontstyleCO->setEditable(false);
-	for (vector<string>::const_iterator it = fontstyles.begin();
-	    it != fontstyles.end(); ++it) {
-		dialog_->fontstyleCO->addItem(toqstr(*it));
-	}
+	for (int n = 0; font_styles[n][0]; ++n)
+		dialog_->fontstyleCO->addItem(font_styles_gui[n]);
+
 	dialog_->fontsizeCO->clear();
-	dialog_->fontsizeCO->setEditable(false);
 	dialog_->numberFontSizeCO->clear();
-	dialog_->numberFontSizeCO->setEditable(false);
-	for (vector<string>::const_iterator it = fontsizes.begin();
-	    it != fontsizes.end(); ++it) {
-		dialog_->fontsizeCO->addItem(toqstr(*it));
-		dialog_->numberFontSizeCO->addItem(toqstr(*it));
+	for (int n = 0; font_sizes[n][0]; ++n) {
+		QString font = toqstr(font_sizes_gui[n]);
+		dialog_->fontsizeCO->addItem(font);
+		dialog_->numberFontSizeCO->addItem(font);
 	}
 
 	// set validators
@@ -274,22 +289,18 @@
 	dialog_->placementLE->setValidator(new QRegExpValidator(QRegExp("[tbph]*"), this));
 
 	// set default values 
-	dialog_->listingsTB->setPlainText("Input listings parameters on the right. Enter ? for a list of parameters.");
-	dialog_->languageCO->setCurrentIndex(
-		dialog_->languageCO->findText(toqstr("no language")));
+	dialog_->listingsTB->setPlainText(
+		qt_("Input listings parameters on the right. Enter ? for a list of parameters."));
+	dialog_->languageCO->setCurrentIndex(findToken(languages, "no language"));
 	dialog_->floatCB->setChecked(false);
 	dialog_->placementLE->clear();
-	dialog_->numberSideCO->setCurrentIndex(
-		dialog_->numberSideCO->findText(toqstr("none")));
+	dialog_->numberSideCO->setCurrentIndex(0);
 	dialog_->numberStepLE->clear();
-	dialog_->numberFontSizeCO->setCurrentIndex(
-		dialog_->numberFontSizeCO->findText(toqstr("default")));
+	dialog_->numberFontSizeCO->setCurrentIndex(findToken(font_sizes, "default"));
 	dialog_->firstlineLE->clear();
 	dialog_->lastlineLE->clear();
-	dialog_->fontstyleCO->setCurrentIndex(
-		dialog_->fontstyleCO->findText(toqstr("default")));
-	dialog_->fontsizeCO->setCurrentIndex(
-		dialog_->fontsizeCO->findText(toqstr("default")));
+	dialog_->fontstyleCO->setCurrentIndex(findToken(font_styles, "default"));
+	dialog_->fontsizeCO->setCurrentIndex(findToken(font_sizes, "default"));
 	dialog_->breaklinesCB->setChecked(false);
 	dialog_->spaceCB->setChecked(false);
 	dialog_->extendedcharsCB->setChecked(false);	
@@ -307,14 +318,8 @@
 	for (vector<string>::iterator it = pars.begin();
 	    it != pars.end(); ++it) {
 		if (prefixIs(*it, "language=")) {
-			for (vector<string>::const_iterator st = languages.begin();
-			    st != languages.end(); ++st) {
-				if (*it == "language=" + *st) {
-					dialog_->languageCO->setCurrentIndex(
-						dialog_->languageCO->findText(toqstr(*st)));
-					*it = "";
-				}			
-			}
+			int n = findToken(languages, it->substr(9));
+			dialog_->languageCO->setCurrentIndex(n);
 		} else if (prefixIs(*it, "floatplacement=")) {
 			dialog_->floatCB->setChecked(true);
 			dialog_->placementLE->setEnabled(true);
@@ -329,21 +334,20 @@
 				dialog_->placementLE->setText(toqstr(it->substr(6)));
 			*it = "";
 		} else if (prefixIs(*it, "numbers=")) {
-			dialog_->numberSideCO->setCurrentIndex(
-				dialog_->numberSideCO->findText(toqstr(it->substr(8))));
+			string s = it->substr(8);
+			int n = 0;
+			if (s == "left")
+				n = 1;
+			else if (s == "right")
+				n = 2;
+			dialog_->numberSideCO->setCurrentIndex(n);
 			*it = "";
 		} else if (prefixIs(*it, "stepnumber=")) {
 			dialog_->numberStepLE->setText(toqstr(it->substr(11)));
 			*it = "";
 		} else if (prefixIs(*it, "numberstyle=")) {
-			for (vector<string>::const_iterator st = fontsizes.begin();
-			    st != fontsizes.end(); ++st) {
-				if (*it == "numberstyle=\\" + *st) {
-					dialog_->numberFontSizeCO->setCurrentIndex(
-						dialog_->numberFontSizeCO->findText(toqstr(*st)));
-					*it = "";
-				}			
-			}
+			int n = findToken(font_sizes, it->substr(13));
+			dialog_->numberFontSizeCO->setCurrentIndex(n);
 		} else if (prefixIs(*it, "firstline=")) {
 			dialog_->firstlineLE->setText(toqstr(it->substr(10)));
 			*it = "";
@@ -353,25 +357,27 @@
 		} else if (prefixIs(*it, "basicstyle=")) {
 			string style;
 			string size;
-			for (vector<string>::const_iterator st = fontstyles.begin();
-			    st != fontstyles.end(); ++st)
-				if (contains(*it, "\\" + *st)) {
-					style = "\\" + *st;
+			for (int n = 0; font_styles[n][0]; ++n) {
+				string const s = font_styles[n];
+				if (contains(*it, "\\" + s)) {
+					style = "\\" + s;
 					break;
 				}
-			for (vector<string>::const_iterator st = fontsizes.begin();
-			    st != fontsizes.end(); ++st)
-				if (contains(*it, "\\" + *st)) {
-					size = "\\" + *st;
+			}
+			for (int n = 0; font_sizes[n][0]; ++n) {
+				string const s = font_sizes[n];
+				if (contains(*it, "\\" + s)) {
+					size = "\\" + s;
 					break;
 				}
+			}
 			if (it->substr(11) == style + size || it->substr(11) == size + style) {
 				if (!style.empty())
 					dialog_->fontstyleCO->setCurrentIndex(
-						dialog_->fontstyleCO->findText(toqstr(style.substr(1))));
+						findToken(font_styles, style.substr(1)));
 				if (!size.empty())
 					dialog_->fontsizeCO->setCurrentIndex(
-						dialog_->fontsizeCO->findText(toqstr(size.substr(1))));
+						findToken(font_sizes, size.substr(1)));
 				*it = "";
 			}
 		} else if (prefixIs(*it, "breaklines=")) {

Reply via email to