]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiListings.cpp
header cleanup
[lyx.git] / src / frontends / qt4 / GuiListings.cpp
index 01f671812e40e78403e5e82c763b74c543659fb8..52c03e9508ccb4c6f13f1ab859cbc772bfaffbac 100644 (file)
 
 #include "GuiListings.h"
 
-#include "ControlListings.h"
 #include "qt_helpers.h"
+#include "FuncRequest.h"
+#include "insets/InsetListings.h"
 #include "insets/InsetListingsParams.h"
-#include "debug.h"
+#include "support/debug.h"
 
+#include "support/gettext.h"
 #include "support/lstrings.h"
 
 #include <QLineEdit>
-#include <QCloseEvent>
 #include <QPushButton>
 #include <QValidator>
 #include <QRegExpValidator>
 
-
-using std::string;
-using std::vector;
-using lyx::support::findToken;
-using lyx::support::getVectorFromString;
-using lyx::support::getStringFromVector;
-using lyx::support::prefixIs;
-using lyx::support::suffixIs;
-using lyx::support::contains;
+using namespace std;
+using namespace lyx::support;
 
 namespace lyx {
 namespace frontend {
 
+
 /////////////////////////////////////////////////////////////////////
 //
-// GuiListingsDialog
+// GuiListings
 //
 /////////////////////////////////////////////////////////////////////
 
@@ -49,7 +44,7 @@ namespace frontend {
 char const * languages[] =
 { "no language", "ABAP", "ACSL", "Ada", "ALGOL", "Assembler", "Awk", "bash", "Basic", "C",
   "C++", "Caml", "Clean", "Cobol", "Comal 80", "command.com", "Comsol", "csh", "Delphi",
-  "Eiffel", "Elan", "Euphoria", "Fortran", "Gnuplot", "Haskell", "HTML", "IDL", "inform",
+  "Eiffel", "Elan", "erlang", "Euphoria", "Fortran", "Gnuplot", "Haskell", "HTML", "IDL", "inform",
   "Java", "JVMIS", "ksh", "Lingo", "Lisp", "Logo", "make", "Mathematica", "Matlab", "Mercury",
   "MetaPost", "Miranda", "ML", "Modula-2", "MuPAD", "NASTRAN", "Oberon-2", "OCL", "Octave",
   "Oz", "Pascal", "Perl", "PHP", "PL/I", "Plasm", "PostScript", "POV", "Prolog", "Promela",
@@ -61,7 +56,7 @@ char const * languages[] =
 char const * languages_gui[] =
 { N_("No language"), "ABAP", "ACSL", "Ada", "ALGOL", "Assembler", "Awk", "bash", "Basic",
   "C", "C++", "Caml", "Clean", "Cobol", "Comal 80", "command.com", "Comsol", "csh", "Delphi",
-  "Eiffel", "Elan", "Euphoria", "Fortran", "Gnuplot", "Haskell", "HTML", "IDL", "inform",
+  "Eiffel", "Elan", "Erlang", "Euphoria", "Fortran", "Gnuplot", "Haskell", "HTML", "IDL", "inform",
   "Java", "JVMIS", "ksh", "Lingo", "Lisp", "Logo", "make", "Mathematica", "Matlab", "Mercury",
   "MetaPost", "Miranda", "ML", "Modula-2", "MuPAD", "NASTRAN", "Oberon-2", "OCL", "Octave",
   "Oz", "Pascal", "Perl", "PHP", "PL/I", "Plasm", "PostScript", "POV", "Prolog", "Promela",
@@ -162,12 +157,10 @@ char const * font_styles_gui[] =
 
 
 
-GuiListingsDialog::GuiListingsDialog(LyXView & lv)
-       : GuiDialog(lv, "listings")
+GuiListings::GuiListings(GuiView & lv)
+       : GuiDialog(lv, "listings", qt_("Program Listing Settings"))
 {
        setupUi(this);
-       setViewTitle(_("Program Listing Settings"));
-       setController(new ControlListings(*this));
 
        connect(okPB, SIGNAL(clicked()), this, SLOT(slotOK()));
        connect(applyPB, SIGNAL(clicked()), this, SLOT(slotApply()));
@@ -181,17 +174,17 @@ GuiListingsDialog::GuiListingsDialog(LyXView & lv)
                this, SLOT(change_adaptor()));
        connect(floatCB, SIGNAL(clicked()),
                this, SLOT(change_adaptor()));
-       connect(placementLE, SIGNAL(textChanged(const QString&)),
+       connect(placementLE, SIGNAL(textChanged(QString)),
                this, SLOT(change_adaptor()));
        connect(numberSideCO, SIGNAL(currentIndexChanged(int)),
                this, SLOT(change_adaptor()));
-       connect(numberStepLE, SIGNAL(textChanged(const QString&)),
+       connect(numberStepLE, SIGNAL(textChanged(QString)),
                this, SLOT(change_adaptor()));
        connect(numberFontSizeCO, SIGNAL(currentIndexChanged(int)),
                this, SLOT(change_adaptor()));
-       connect(firstlineLE, SIGNAL(textChanged(const QString&)),
+       connect(firstlineLE, SIGNAL(textChanged(QString)),
                this, SLOT(change_adaptor()));
-       connect(lastlineLE, SIGNAL(textChanged(const QString&)),
+       connect(lastlineLE, SIGNAL(textChanged(QString)),
                this, SLOT(change_adaptor()));
        connect(fontsizeCO, SIGNAL(currentIndexChanged(int)),
                this, SLOT(change_adaptor()));
@@ -244,32 +237,19 @@ GuiListingsDialog::GuiListingsDialog(LyXView & lv)
 }
 
 
-ControlListings & GuiListingsDialog::controller()
-{
-       return static_cast<ControlListings &>(GuiDialog::controller());
-}
-
-
-void GuiListingsDialog::closeEvent(QCloseEvent * e)
-{
-       slotClose();
-       e->accept();
-}
-
-
-void GuiListingsDialog::change_adaptor()
+void GuiListings::change_adaptor()
 {
        changed();
 }
 
 
-string GuiListingsDialog::construct_params()
+string GuiListings::construct_params()
 {
        string language = languages[languageCO->currentIndex()];
        string dialect;
        string const dialect_gui = fromqstr(dialectCO->currentText());
        if (dialectCO->currentIndex() > 0) {
-               for (size_t i = 0; i < nr_dialects; ++i) {
+               for (size_t i = 0; i != nr_dialects; ++i) {
                        if (dialect_gui == dialects[i].gui
                        && dialects[i].language == language
                        && !dialects[i].is_default) {
@@ -355,12 +335,12 @@ string GuiListingsDialog::construct_params()
 }
 
 
-docstring GuiListingsDialog::validate_listings_params()
+docstring GuiListings::validate_listings_params()
 {
        // use a cache here to avoid repeated validation
        // of the same parameters
-       static string param_cache = string();
-       static docstring msg_cache = docstring();
+       static string param_cache;
+       static docstring msg_cache;
        
        if (bypassCB->isChecked())
                return docstring();
@@ -374,7 +354,7 @@ docstring GuiListingsDialog::validate_listings_params()
 }
 
 
-void GuiListingsDialog::set_listings_msg()
+void GuiListings::set_listings_msg()
 {
        static bool isOK = true;
        docstring msg = validate_listings_params();
@@ -391,7 +371,7 @@ void GuiListingsDialog::set_listings_msg()
 }
 
 
-void GuiListingsDialog::on_floatCB_stateChanged(int state)
+void GuiListings::on_floatCB_stateChanged(int state)
 {
        if (state == Qt::Checked) {
                inlineCB->setChecked(false);
@@ -401,7 +381,7 @@ void GuiListingsDialog::on_floatCB_stateChanged(int state)
 }
 
 
-void GuiListingsDialog::on_inlineCB_stateChanged(int state)
+void GuiListings::on_inlineCB_stateChanged(int state)
 {
        if (state == Qt::Checked) {
                floatCB->setChecked(false);
@@ -410,14 +390,14 @@ void GuiListingsDialog::on_inlineCB_stateChanged(int state)
 }
 
 
-void GuiListingsDialog::on_numberSideCO_currentIndexChanged(int index)
+void GuiListings::on_numberSideCO_currentIndexChanged(int index)
 {
        numberStepLE->setEnabled(index > 0);
        numberFontSizeCO->setEnabled(index > 0);
 }
 
 
-void GuiListingsDialog::on_languageCO_currentIndexChanged(int index)
+void GuiListings::on_languageCO_currentIndexChanged(int index)
 {
        dialectCO->clear();
        // 0 is "no dialect"
@@ -425,7 +405,7 @@ void GuiListingsDialog::on_languageCO_currentIndexChanged(int index)
        dialectCO->addItem(qt_("No dialect"));
        string const language = languages[index];
 
-       for (size_t i = 0; i < nr_dialects; ++i) {
+       for (size_t i = 0; i != nr_dialects; ++i) {
                if (language == dialects[i].language) {
                        dialectCO->addItem(qt_(dialects[i].gui));
                        if (dialects[i].is_default)
@@ -438,16 +418,14 @@ void GuiListingsDialog::on_languageCO_currentIndexChanged(int index)
 }
 
 
-void GuiListingsDialog::applyView()
+void GuiListings::applyView()
 {
-       InsetListingsParams & params = controller().params();
-       params.setInline(inlineCB->isChecked());
-       params.setParams(construct_params());
-       controller().setParams(params);
+       params_.setInline(inlineCB->isChecked());
+       params_.setParams(construct_params());
 }
 
 
-static string plainParam(std::string const & par)
+static string plainParam(string const & par)
 {
        // remove enclosing braces
        if (prefixIs(par, "{") && suffixIs(par, "}"))
@@ -456,7 +434,7 @@ static string plainParam(std::string const & par)
 }
 
 
-void GuiListingsDialog::updateContents()
+void GuiListings::updateContents()
 {
        // set default values
        listingsTB->setPlainText(
@@ -478,14 +456,13 @@ void GuiListingsDialog::updateContents()
        extendedcharsCB->setChecked(false);
 
        // set values from param string
-       InsetListingsParams & params = controller().params();
-       inlineCB->setChecked(params.isInline());
-       if (params.isInline()) {
+       inlineCB->setChecked(params_.isInline());
+       if (params_.isInline()) {
                floatCB->setChecked(false);
                placementLE->setEnabled(false);
        }
        // break other parameters and set values
-       vector<string> pars = getVectorFromString(params.separatedParams(), "\n");
+       vector<string> pars = getVectorFromString(params_.separatedParams(), "\n");
        // process each of them
        for (vector<string>::iterator it = pars.begin();
            it != pars.end(); ++it) {
@@ -496,11 +473,12 @@ void GuiListingsDialog::updateContents()
                        string dialect;
                        bool in_gui = false;
                        if (prefixIs(arg, "[") && contains(arg, "]")) {
-                               string::size_type end_dialect = arg.find("]");
+                               size_t end_dialect = arg.find("]");
                                dialect = arg.substr(1, end_dialect - 1);
                                language = arg.substr(end_dialect + 1);
-                       } else
+                       } else {
                                language = arg;
+                       }
                        int n = findToken(languages, language);
                        if (n >= 0) {
                                languageCO->setCurrentIndex(n);
@@ -509,7 +487,7 @@ void GuiListingsDialog::updateContents()
                        // on_languageCO_currentIndexChanged should have set dialects
                        if (!dialect.empty()) {
                                string dialect_gui;
-                               for (size_t i = 0; i < nr_dialects; ++i) {
+                               for (size_t i = 0; i != nr_dialects; ++i) {
                                        if (dialect == dialects[i].dialect
                                            && dialects[i].language == language) {
                                                dialect_gui = dialects[i].gui;
@@ -617,12 +595,41 @@ void GuiListingsDialog::updateContents()
 }
 
 
-bool GuiListingsDialog::isValid()
+bool GuiListings::isValid()
 {
        return validate_listings_params().empty();
 }
 
 
+bool GuiListings::initialiseParams(string const & data)
+{
+       InsetListingsMailer::string2params(data, params_);
+       return true;
+}
+
+
+void GuiListings::clearParams()
+{
+       params_.clear();
+}
+
+
+void GuiListings::dispatchParams()
+{
+       string const lfun = InsetListingsMailer::params2string(params_);
+       dispatch(FuncRequest(getLfun(), lfun));
+}
+
+
+void GuiListings::setParams(InsetListingsParams const & params)
+{
+       params_ = params;
+}
+
+
+Dialog * createGuiListings(GuiView & lv) { return new GuiListings(lv); }
+
+
 } // namespace frontend
 } // namespace lyx