]> git.lyx.org Git - features.git/commitdiff
InsetListings: Enhanced listings dialog, more than 10 widgets are added to handle...
authorBo Peng <bpeng@lyx.org>
Sun, 13 May 2007 04:06:37 +0000 (04:06 +0000)
committerBo Peng <bpeng@lyx.org>
Sun, 13 May 2007 04:06:37 +0000 (04:06 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18282 a592a061-630c-0410-9148-cb99ea01b6c8

src/frontends/qt4/QListings.cpp
src/frontends/qt4/QListings.h
src/frontends/qt4/ui/ListingsUi.ui

index 55ec96071335bde90b840377ccbc9c64fef73d7f..66cc3235573004f9e10891e8b8855dae57bc435c 100644 (file)
 #include <QLineEdit>
 #include <QCloseEvent>
 #include <QPushButton>
+#include <QValidator>
+#include <QRegExpValidator>
 
 
 using std::string;
+using std::vector;
+using lyx::support::getVectorFromString;
+using lyx::support::getStringFromVector;
+using lyx::support::prefixIs;
+using lyx::support::contains;
 
 namespace lyx {
 namespace frontend {
@@ -37,6 +44,17 @@ namespace frontend {
 /////////////////////////////////////////////////////////////////////
 
 
+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";
+
 QListingsDialog::QListingsDialog(QListings * form)
        : form_(form)
 {
@@ -44,7 +62,25 @@ QListingsDialog::QListingsDialog(QListings * form)
        
        connect(okPB, SIGNAL(clicked()), form, SLOT(slotOK()));
        connect(closePB, SIGNAL(clicked()), form, SLOT(slotClose()));
+       
+       connect(languageCO, SIGNAL(currentIndexChanged(int)), this, SLOT(change_adaptor()));
        connect(inlineCB, SIGNAL(clicked()), this, SLOT(change_adaptor()));
+       connect(floatCB, SIGNAL(clicked()), this, SLOT(change_adaptor()));
+       connect(placementLE, SIGNAL(textChanged(const QString&)), this, SLOT(change_adaptor()));
+       connect(numberLeftCB, SIGNAL(clicked()), this, SLOT(change_adaptor()));
+       connect(numberRightCB, SIGNAL(clicked()), this, SLOT(change_adaptor()));
+       connect(numberStepLE, SIGNAL(textChanged(const QString&)), this, SLOT(change_adaptor()));
+       connect(numberFontSizeCO, SIGNAL(currentIndexChanged(int)), this, SLOT(change_adaptor()));
+       connect(firstlineLE, SIGNAL(textChanged(const QString&)), this, SLOT(change_adaptor()));
+       connect(lastlineLE, SIGNAL(textChanged(const QString&)), this, SLOT(change_adaptor()));
+       connect(fontsizeCO, SIGNAL(currentIndexChanged(int)), this, SLOT(change_adaptor()));
+       connect(fontstyleCO, SIGNAL(currentIndexChanged(int)), this, SLOT(change_adaptor()));
+       connect(breaklinesCB, SIGNAL(clicked()), this, SLOT(change_adaptor()));
+       connect(spaceCB, SIGNAL(clicked()), this, SLOT(change_adaptor()));
+       connect(extendedcharsCB, SIGNAL(clicked()), this, SLOT(change_adaptor()));
+       connect(captionLE, SIGNAL(textChanged(const QString&)), this, SLOT(change_adaptor()));
+       connect(labelLE, SIGNAL(textChanged(const QString&)), this, SLOT(change_adaptor()));
+       
        connect(listingsED,  SIGNAL(textChanged()), this, SLOT(change_adaptor()));
        connect(listingsED,  SIGNAL(textChanged()), this, SLOT(validate_listings_params()));
 }
@@ -63,11 +99,76 @@ void QListingsDialog::change_adaptor()
 }
 
 
+string QListingsDialog::construct_params()
+{
+       string language = fromqstr(languageCO->currentText());
+       
+       bool float_ = floatCB->checkState() == Qt::Checked;
+       string placement = fromqstr(placementLE->text());
+       
+       bool left = numberLeftCB->checkState() == Qt::Checked;
+       bool right = numberRightCB->checkState() == Qt::Checked;
+       string step = fromqstr(numberStepLE->text());
+       string numberfontsize = fromqstr(numberFontSizeCO->currentText());
+       string firstline = fromqstr(firstlineLE->text());
+       string lastline = fromqstr(lastlineLE->text());
+       
+       string fontsize = fromqstr(fontsizeCO->currentText());
+       string fontstyle = fromqstr(fontstyleCO->currentText());
+       string basicstyle;
+       if (fontsize != "default")
+               basicstyle = "\\" + fontsize;
+       if (fontstyle != "default")
+               basicstyle += "\\" + fontstyle;
+       bool breakline = breaklinesCB->checkState() == Qt::Checked;
+       bool space = spaceCB->checkState() == Qt::Checked;
+       bool extendedchar = extendedcharsCB->checkState() == Qt::Checked;
+       
+       string caption = fromqstr(captionLE->text());
+       string label = fromqstr(labelLE->text());
+       
+       string extra = fromqstr(listingsED->toPlainText());
+
+       // compose a string
+       InsetListingsParams par;
+       if (language != "no language")
+               par.addParam("language", language);
+       if (float_)
+               par.addParam("float", "");
+       if (!placement.empty())
+               par.addParam("floatplacement", placement);
+       if (left)
+               par.addParam("numbers", "left");
+       else if (right)
+               par.addParam("numbers", "right");
+       if (numberfontsize != "default")
+               par.addParam("numberstyle", "\\" + numberfontsize);
+       if (!firstline.empty())
+               par.addParam("firstline", firstline);
+       if (!lastline.empty())
+               par.addParam("lastline", lastline);
+       if (basicstyle != "")
+               par.addParam("basicstyle", basicstyle);
+       if (breakline)
+               par.addParam("breaklines", "true");
+       if (space)
+               par.addParam("showspaces", "true");
+       if (extendedchar)
+               par.addParam("extendedchars", "true");
+       if (!caption.empty())
+               par.addParam("caption", "{" + caption + "}");
+       if (!label.empty())
+               par.addParam("label", "{" + label + "}");
+       par.addParams(extra);
+       return par.params();
+}
+
+
 void QListingsDialog::validate_listings_params()
 {
        static bool isOK = true;
        try {
-               InsetListingsParams par(fromqstr(listingsED->toPlainText()));
+               InsetListingsParams par(construct_params());
                if (!isOK) {
                        isOK = true;
                        // listingsTB->setTextColor("black");
@@ -113,20 +214,159 @@ void QListings::apply()
 {
        InsetListingsParams & params = controller().params();
        params.setInline(dialog_->inlineCB->isChecked());
-       params.setParams(fromqstr(dialog_->listingsED->toPlainText()));
+       params.setParams(dialog_->construct_params());
        controller().setParams(params);
 }
 
 
 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");
+
+       dialog_->languageCO->clear();
+       for (vector<string>::const_iterator it = languages.begin();
+           it != languages.end(); ++it) {
+               dialog_->languageCO->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));
+       }
+       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));
+       }
+
+       // set validators
+       dialog_->numberStepLE->setValidator(new QIntValidator(0, 1000000, this));
+       dialog_->firstlineLE->setValidator(new QIntValidator(0, 1000000, this));
+       dialog_->lastlineLE->setValidator(new QIntValidator(0, 1000000, this));
+       dialog_->placementLE->setValidator(new QRegExpValidator(QRegExp("[tbph]*"), this));
+
+       //
+       dialog_->listingsTB->setPlainText("Input listings parameters below. Enter ? for a list of parameters.");
+
+       // set values from param string
        InsetListingsParams & params = controller().params();
-       dialog_->listingsED->setPlainText(toqstr(params.separatedParams()));
-       
        if (params.isInline())
                dialog_->inlineCB->setChecked(true);
        else
                dialog_->inlineCB->setChecked(false);
+       // break other parameters and set values
+       vector<string> pars = getVectorFromString(params.separatedParams(), "\n");
+       // process each of them
+       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 = "";
+                               }                       
+                       }
+               } else if (prefixIs(*it, "float")) {
+                       if (prefixIs(*it, "float="))
+                               dialog_->placementLE->setText(toqstr(it->substr(6)));
+                       else
+                               dialog_->floatCB->setChecked(true);
+                       *it = "";
+               } else if (prefixIs(*it, "floatplacement=")) {
+                       dialog_->placementLE->setText(toqstr(it->substr(15)));
+                       *it = "";
+               } else if (prefixIs(*it, "numbers=")) {
+                       if (contains(*it, "left") != string::npos)
+                               dialog_->numberLeftCB->setChecked(true);
+                       else if (contains(*it, "right") != string::npos)
+                               dialog_->numberRightCB->setChecked(true);
+                       *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 = "";
+                               }                       
+                       }
+               } else if (prefixIs(*it, "firstline=")) {
+                       dialog_->firstlineLE->setText(toqstr(it->substr(10)));
+                       *it = "";
+               } else if (prefixIs(*it, "lastline=")) {
+                       dialog_->lastlineLE->setText(toqstr(it->substr(9)));
+                       *it = "";
+               } 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;
+                                       break;
+                               }
+                       for (vector<string>::const_iterator st = fontsizes.begin();
+                           st != fontsizes.end(); ++st)
+                               if (contains(*it, "\\" + *st)) {
+                                       size = "\\" + *st;
+                                       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))));
+                               if (!size.empty())
+                                       dialog_->fontsizeCO->setCurrentIndex(
+                                               dialog_->fontsizeCO->findText(toqstr(size.substr(1))));
+                               *it = "";
+                       }
+               } else if (prefixIs(*it, "breaklines=")) {
+                       dialog_->breaklinesCB->setChecked(prefixIs(*it, "true") != string::npos);
+                       *it = "";
+               } else if (prefixIs(*it, "showspaces=")) {
+                       dialog_->spaceCB->setChecked(prefixIs(*it, "true") != string::npos);
+                       *it = "";
+               } else if (prefixIs(*it, "extendedchars=")) {
+                       dialog_->extendedcharsCB->setChecked(prefixIs(*it, "true") != string::npos);
+                       *it = "";
+               } else if (prefixIs(*it, "caption=")) {
+                       string cap = it->substr(8);
+                       if ((cap[0] == '{' && cap[cap.size()-1] == '}') ||
+                               (cap[0] == '"' && cap[cap.size()-1] == '"') )
+                               dialog_->captionLE->setText(toqstr(cap.substr(1, cap.size()-2)));
+                       else
+                               dialog_->captionLE->setText(toqstr(cap));               
+                       *it = "";
+               } else if (prefixIs(*it, "label=")) {
+                       string lbl = it->substr(6);
+                       if ((lbl[0] == '{' && lbl[lbl.size()-1] == '}') ||
+                               (lbl[0] == '"' && lbl[lbl.size()-1] == '"') )
+                               dialog_->labelLE->setText(toqstr(lbl.substr(1, lbl.size()-2)));
+                       else
+                               dialog_->labelLE->setText(toqstr(lbl));                 
+                       *it = "";
+               }
+       }
+       // parameters that can be handled by widgets are cleared
+       // the rest is put to the extra edit box.
+       string extra = getStringFromVector(pars);
+       dialog_->listingsED->setPlainText(toqstr(InsetListingsParams(extra).separatedParams()));
 }
 
 
index 6d0edfcc1b7a4e84486d3e59c649a17e152c6826..e3a0966f18ce9c0f627ee4c1b6e5db99c6c6e873 100644 (file)
@@ -27,6 +27,8 @@ class QListingsDialog : public QDialog, public Ui::QListingsUi {
        Q_OBJECT
 public:
        QListingsDialog(QListings * form);
+       /// get values from all the widgets and form a string
+       std::string construct_params();
 protected Q_SLOTS:
        virtual void change_adaptor();
        /// AFAIK, QValidator only works for QLineEdit so 
index 6a9a36477ae03db1667f2dc2f73ed7b24552e150..584e49b829d3225c08840495dcc1ecf45febce1e 100644 (file)
@@ -8,8 +8,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>239</width>
-    <height>382</height>
+    <width>548</width>
+    <height>462</height>
    </rect>
   </property>
   <property name="windowTitle" >
     <number>6</number>
    </property>
    <item>
-    <widget class="QCheckBox" name="inlineCB" >
-     <property name="text" >
-      <string>Inline listing</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="listingsGB" >
-     <property name="sizePolicy" >
-      <sizepolicy>
-       <hsizetype>7</hsizetype>
-       <vsizetype>7</vsizetype>
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
+    <layout class="QHBoxLayout" >
+     <property name="margin" >
+      <number>0</number>
      </property>
-     <property name="title" >
-      <string>Parameters</string>
+     <property name="spacing" >
+      <number>6</number>
      </property>
-     <layout class="QVBoxLayout" >
-      <property name="margin" >
-       <number>9</number>
-      </property>
-      <property name="spacing" >
-       <number>6</number>
-      </property>
-      <item>
-       <widget class="QTextBrowser" name="listingsTB" >
-        <property name="sizePolicy" >
-         <sizepolicy>
-          <hsizetype>7</hsizetype>
-          <vsizetype>0</vsizetype>
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
+     <item>
+      <layout class="QVBoxLayout" >
+       <property name="margin" >
+        <number>0</number>
+       </property>
+       <property name="spacing" >
+        <number>6</number>
+       </property>
+       <item>
+        <widget class="QGroupBox" name="groupBox" >
+         <property name="title" >
+          <string>Language</string>
+         </property>
+         <layout class="QVBoxLayout" >
+          <property name="margin" >
+           <number>9</number>
+          </property>
+          <property name="spacing" >
+           <number>6</number>
+          </property>
+          <item>
+           <widget class="QComboBox" name="languageCO" />
+          </item>
+         </layout>
+        </widget>
+       </item>
+       <item>
+        <widget class="QGroupBox" name="groupBox_2" >
+         <property name="title" >
+          <string>Placement</string>
+         </property>
+         <layout class="QVBoxLayout" >
+          <property name="margin" >
+           <number>9</number>
+          </property>
+          <property name="spacing" >
+           <number>6</number>
+          </property>
+          <item>
+           <widget class="QCheckBox" name="inlineCB" >
+            <property name="text" >
+             <string>Inline listing</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QCheckBox" name="floatCB" >
+            <property name="text" >
+             <string>Float</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <layout class="QHBoxLayout" >
+            <property name="margin" >
+             <number>0</number>
+            </property>
+            <property name="spacing" >
+             <number>6</number>
+            </property>
+            <item>
+             <spacer>
+              <property name="orientation" >
+               <enum>Qt::Horizontal</enum>
+              </property>
+              <property name="sizeHint" >
+               <size>
+                <width>40</width>
+                <height>20</height>
+               </size>
+              </property>
+             </spacer>
+            </item>
+            <item>
+             <layout class="QVBoxLayout" >
+              <property name="margin" >
+               <number>0</number>
+              </property>
+              <property name="spacing" >
+               <number>6</number>
+              </property>
+              <item>
+               <widget class="QLabel" name="captionL_5" >
+                <property name="text" >
+                 <string>Placement</string>
+                </property>
+                <property name="wordWrap" >
+                 <bool>false</bool>
+                </property>
+                <property name="buddy" >
+                 <cstring>captionLE</cstring>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QLineEdit" name="placementLE" />
+              </item>
+             </layout>
+            </item>
+           </layout>
+          </item>
+         </layout>
+        </widget>
+       </item>
+      </layout>
+     </item>
+     <item>
+      <spacer>
+       <property name="orientation" >
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" >
+        <size>
+         <width>16</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+     <item>
+      <widget class="QGroupBox" name="numberstyleGB" >
+       <property name="title" >
+        <string>Number style</string>
+       </property>
+       <layout class="QVBoxLayout" >
+        <property name="margin" >
+         <number>9</number>
         </property>
-        <property name="maximumSize" >
-         <size>
-          <width>16777215</width>
-          <height>50</height>
-         </size>
+        <property name="spacing" >
+         <number>6</number>
         </property>
-        <property name="cursor" >
-         <cursor>0</cursor>
+        <item>
+         <layout class="QHBoxLayout" >
+          <property name="margin" >
+           <number>0</number>
+          </property>
+          <property name="spacing" >
+           <number>6</number>
+          </property>
+          <item>
+           <widget class="QCheckBox" name="numberLeftCB" >
+            <property name="toolTip" >
+             <string>enable for numbers on the leftside</string>
+            </property>
+            <property name="text" >
+             <string>&amp;Left</string>
+            </property>
+            <property name="checked" >
+             <bool>false</bool>
+            </property>
+            <property name="autoRepeat" >
+             <bool>false</bool>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QCheckBox" name="numberRightCB" >
+            <property name="toolTip" >
+             <string>enable for numbers on the right side</string>
+            </property>
+            <property name="text" >
+             <string>&amp;Right</string>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </item>
+        <item>
+         <layout class="QHBoxLayout" >
+          <property name="margin" >
+           <number>0</number>
+          </property>
+          <property name="spacing" >
+           <number>6</number>
+          </property>
+          <item>
+           <widget class="QLabel" name="stepnumberL" >
+            <property name="toolTip" >
+             <string>File name of image</string>
+            </property>
+            <property name="text" >
+             <string>Step</string>
+            </property>
+            <property name="wordWrap" >
+             <bool>false</bool>
+            </property>
+            <property name="buddy" >
+             <cstring>numberStepLE</cstring>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QLineEdit" name="numberStepLE" >
+            <property name="toolTip" >
+             <string>Differenz between two numbered lines</string>
+            </property>
+            <property name="text" >
+             <string/>
+            </property>
+            <property name="alignment" >
+             <set>Qt::AlignLeading</set>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </item>
+        <item>
+         <layout class="QHBoxLayout" >
+          <property name="margin" >
+           <number>0</number>
+          </property>
+          <property name="spacing" >
+           <number>6</number>
+          </property>
+          <item>
+           <widget class="QLabel" name="numberfontsizeL" >
+            <property name="text" >
+             <string>Font size</string>
+            </property>
+            <property name="wordWrap" >
+             <bool>false</bool>
+            </property>
+            <property name="buddy" >
+             <cstring>numberFontSizeCO</cstring>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QComboBox" name="numberFontSizeCO" >
+            <property name="toolTip" >
+             <string>Choose the Font Size</string>
+            </property>
+            <property name="editable" >
+             <bool>true</bool>
+            </property>
+            <property name="autoCompletion" >
+             <bool>true</bool>
+            </property>
+            <property name="duplicatesEnabled" >
+             <bool>false</bool>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </item>
+        <item>
+         <spacer>
+          <property name="orientation" >
+           <enum>Qt::Vertical</enum>
+          </property>
+          <property name="sizeHint" >
+           <size>
+            <width>142</width>
+            <height>31</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+        <item>
+         <layout class="QHBoxLayout" >
+          <property name="margin" >
+           <number>0</number>
+          </property>
+          <property name="spacing" >
+           <number>6</number>
+          </property>
+          <item>
+           <widget class="QLabel" name="numberfontsizeL_3" >
+            <property name="text" >
+             <string>First line</string>
+            </property>
+            <property name="wordWrap" >
+             <bool>false</bool>
+            </property>
+            <property name="buddy" >
+             <cstring>numberFontSizeCO</cstring>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QLineEdit" name="firstlineLE" >
+            <property name="toolTip" >
+             <string>Differenz between two numbered lines</string>
+            </property>
+            <property name="text" >
+             <string/>
+            </property>
+            <property name="alignment" >
+             <set>Qt::AlignLeading</set>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </item>
+        <item>
+         <layout class="QHBoxLayout" >
+          <property name="margin" >
+           <number>0</number>
+          </property>
+          <property name="spacing" >
+           <number>6</number>
+          </property>
+          <item>
+           <widget class="QLabel" name="numberfontsizeL_2" >
+            <property name="text" >
+             <string>Last line</string>
+            </property>
+            <property name="wordWrap" >
+             <bool>false</bool>
+            </property>
+            <property name="buddy" >
+             <cstring>numberFontSizeCO</cstring>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QLineEdit" name="lastlineLE" >
+            <property name="toolTip" >
+             <string>Differenz between two numbered lines</string>
+            </property>
+            <property name="text" >
+             <string/>
+            </property>
+            <property name="alignment" >
+             <set>Qt::AlignLeading</set>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </item>
+        <item>
+         <spacer>
+          <property name="orientation" >
+           <enum>Qt::Vertical</enum>
+          </property>
+          <property name="sizeHint" >
+           <size>
+            <width>142</width>
+            <height>31</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+       </layout>
+      </widget>
+     </item>
+     <item>
+      <spacer>
+       <property name="orientation" >
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" >
+        <size>
+         <width>16</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+     <item>
+      <widget class="QGroupBox" name="basicstyleGB" >
+       <property name="font" >
+        <font>
+         <pointsize>10</pointsize>
+        </font>
+       </property>
+       <property name="title" >
+        <string>Style</string>
+       </property>
+       <layout class="QVBoxLayout" >
+        <property name="margin" >
+         <number>9</number>
         </property>
-        <property name="acceptDrops" >
-         <bool>false</bool>
+        <property name="spacing" >
+         <number>6</number>
         </property>
-        <property name="frameShape" >
-         <enum>QFrame::NoFrame</enum>
+        <item>
+         <widget class="QLabel" name="label_6" >
+          <property name="text" >
+           <string>Basic style</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <layout class="QHBoxLayout" >
+          <property name="margin" >
+           <number>0</number>
+          </property>
+          <property name="spacing" >
+           <number>6</number>
+          </property>
+          <item>
+           <widget class="QLabel" name="fontsize_label_3" >
+            <property name="text" >
+             <string>Font size</string>
+            </property>
+            <property name="wordWrap" >
+             <bool>false</bool>
+            </property>
+            <property name="buddy" >
+             <cstring>fontsizeCO</cstring>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QComboBox" name="fontsizeCO" >
+            <property name="toolTip" >
+             <string>Choose the Font Size</string>
+            </property>
+            <property name="editable" >
+             <bool>true</bool>
+            </property>
+            <property name="autoCompletion" >
+             <bool>true</bool>
+            </property>
+            <property name="duplicatesEnabled" >
+             <bool>false</bool>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </item>
+        <item>
+         <layout class="QHBoxLayout" >
+          <property name="margin" >
+           <number>0</number>
+          </property>
+          <property name="spacing" >
+           <number>6</number>
+          </property>
+          <item>
+           <widget class="QLabel" name="fontstyle_label_3" >
+            <property name="text" >
+             <string>Font style</string>
+            </property>
+            <property name="wordWrap" >
+             <bool>false</bool>
+            </property>
+            <property name="buddy" >
+             <cstring>fontstyleCO</cstring>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QComboBox" name="fontstyleCO" >
+            <property name="toolTip" >
+             <string>Choose the Font Style</string>
+            </property>
+            <property name="editable" >
+             <bool>true</bool>
+            </property>
+            <property name="autoCompletion" >
+             <bool>true</bool>
+            </property>
+            <property name="duplicatesEnabled" >
+             <bool>false</bool>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </item>
+        <item>
+         <spacer>
+          <property name="orientation" >
+           <enum>Qt::Vertical</enum>
+          </property>
+          <property name="sizeHint" >
+           <size>
+            <width>158</width>
+            <height>21</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+        <item>
+         <widget class="QCheckBox" name="breaklinesCB" >
+          <property name="toolTip" >
+           <string>Breaking lines longer than the linewidth</string>
+          </property>
+          <property name="text" >
+           <string>&amp;Break long lines</string>
+          </property>
+          <property name="shortcut" >
+           <number>276824130</number>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QCheckBox" name="spaceCB" >
+          <property name="toolTip" >
+           <string>Insert a special symbol for a space</string>
+          </property>
+          <property name="text" >
+           <string>&amp;Space as Symbol</string>
+          </property>
+          <property name="shortcut" >
+           <number>276824147</number>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QCheckBox" name="extendedcharsCB" >
+          <property name="enabled" >
+           <bool>true</bool>
+          </property>
+          <property name="toolTip" >
+           <string>Use extended character table</string>
+          </property>
+          <property name="text" >
+           <string>&amp;Extended Chars</string>
+          </property>
+          <property name="shortcut" >
+           <number>276824133</number>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <spacer>
+          <property name="orientation" >
+           <enum>Qt::Vertical</enum>
+          </property>
+          <property name="sizeHint" >
+           <size>
+            <width>158</width>
+            <height>21</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+       </layout>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <layout class="QHBoxLayout" >
+     <property name="margin" >
+      <number>0</number>
+     </property>
+     <property name="spacing" >
+      <number>6</number>
+     </property>
+     <item>
+      <widget class="QGroupBox" name="captionGB_3" >
+       <property name="title" >
+        <string>Display</string>
+       </property>
+       <layout class="QVBoxLayout" >
+        <property name="margin" >
+         <number>9</number>
         </property>
-        <property name="frameShadow" >
-         <enum>QFrame::Plain</enum>
+        <property name="spacing" >
+         <number>6</number>
         </property>
-        <property name="lineWidth" >
-         <number>0</number>
+        <item>
+         <widget class="QLabel" name="captionL_4" >
+          <property name="text" >
+           <string>&amp;Caption</string>
+          </property>
+          <property name="wordWrap" >
+           <bool>false</bool>
+          </property>
+          <property name="buddy" >
+           <cstring>captionLE</cstring>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <layout class="QHBoxLayout" >
+          <property name="margin" >
+           <number>0</number>
+          </property>
+          <property name="spacing" >
+           <number>6</number>
+          </property>
+          <item>
+           <widget class="QLineEdit" name="captionLE" >
+            <property name="minimumSize" >
+             <size>
+              <width>150</width>
+              <height>0</height>
+             </size>
+            </property>
+            <property name="toolTip" >
+             <string>A caption for the List of Listings</string>
+            </property>
+            <property name="text" >
+             <string/>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <spacer>
+            <property name="orientation" >
+             <enum>Qt::Horizontal</enum>
+            </property>
+            <property name="sizeHint" >
+             <size>
+              <width>20</width>
+              <height>20</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+         </layout>
+        </item>
+        <item>
+         <widget class="QLabel" name="labelL_4" >
+          <property name="text" >
+           <string>&amp;Label</string>
+          </property>
+          <property name="wordWrap" >
+           <bool>false</bool>
+          </property>
+          <property name="buddy" >
+           <cstring>labelLE</cstring>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <layout class="QHBoxLayout" >
+          <property name="margin" >
+           <number>0</number>
+          </property>
+          <property name="spacing" >
+           <number>6</number>
+          </property>
+          <item>
+           <widget class="QLineEdit" name="labelLE" >
+            <property name="minimumSize" >
+             <size>
+              <width>150</width>
+              <height>0</height>
+             </size>
+            </property>
+            <property name="toolTip" >
+             <string>A Label for the caption</string>
+            </property>
+            <property name="text" >
+             <string/>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <spacer>
+            <property name="orientation" >
+             <enum>Qt::Horizontal</enum>
+            </property>
+            <property name="sizeHint" >
+             <size>
+              <width>20</width>
+              <height>20</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+         </layout>
+        </item>
+        <item>
+         <spacer>
+          <property name="orientation" >
+           <enum>Qt::Vertical</enum>
+          </property>
+          <property name="sizeHint" >
+           <size>
+            <width>20</width>
+            <height>21</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+       </layout>
+      </widget>
+     </item>
+     <item>
+      <spacer>
+       <property name="orientation" >
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" >
+        <size>
+         <width>16</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+     <item>
+      <widget class="QGroupBox" name="listingsGB" >
+       <property name="sizePolicy" >
+        <sizepolicy>
+         <hsizetype>7</hsizetype>
+         <vsizetype>7</vsizetype>
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="title" >
+        <string>More Parameters</string>
+       </property>
+       <layout class="QVBoxLayout" >
+        <property name="margin" >
+         <number>9</number>
         </property>
-        <property name="acceptRichText" >
-         <bool>false</bool>
+        <property name="spacing" >
+         <number>6</number>
         </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QTextEdit" name="listingsED" />
-      </item>
-     </layout>
-    </widget>
+        <item>
+         <widget class="QSplitter" name="splitter" >
+          <property name="orientation" >
+           <enum>Qt::Horizontal</enum>
+          </property>
+          <widget class="QTextBrowser" name="listingsTB" >
+           <property name="maximumSize" >
+            <size>
+             <width>16777215</width>
+             <height>16777215</height>
+            </size>
+           </property>
+           <property name="cursor" >
+            <cursor>0</cursor>
+           </property>
+           <property name="acceptDrops" >
+            <bool>false</bool>
+           </property>
+           <property name="frameShape" >
+            <enum>QFrame::NoFrame</enum>
+           </property>
+           <property name="frameShadow" >
+            <enum>QFrame::Plain</enum>
+           </property>
+           <property name="lineWidth" >
+            <number>0</number>
+           </property>
+           <property name="acceptRichText" >
+            <bool>false</bool>
+           </property>
+          </widget>
+          <widget class="QTextEdit" name="listingsED" />
+         </widget>
+        </item>
+       </layout>
+      </widget>
+     </item>
+    </layout>
    </item>
    <item>
     <layout class="QHBoxLayout" >
  <tabstops>
   <tabstop>okPB</tabstop>
   <tabstop>closePB</tabstop>
+  <tabstop>languageCO</tabstop>
   <tabstop>inlineCB</tabstop>
+  <tabstop>floatCB</tabstop>
+  <tabstop>placementLE</tabstop>
+  <tabstop>numberLeftCB</tabstop>
+  <tabstop>numberRightCB</tabstop>
+  <tabstop>numberStepLE</tabstop>
+  <tabstop>numberFontSizeCO</tabstop>
+  <tabstop>firstlineLE</tabstop>
+  <tabstop>lastlineLE</tabstop>
+  <tabstop>fontsizeCO</tabstop>
+  <tabstop>fontstyleCO</tabstop>
+  <tabstop>breaklinesCB</tabstop>
+  <tabstop>spaceCB</tabstop>
+  <tabstop>extendedcharsCB</tabstop>
+  <tabstop>captionLE</tabstop>
+  <tabstop>labelLE</tabstop>
   <tabstop>listingsTB</tabstop>
   <tabstop>listingsED</tabstop>
  </tabstops>