X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FGuiListings.cpp;h=52c03e9508ccb4c6f13f1ab859cbc772bfaffbac;hb=ba76bf5eb85db5a10839fccee3430d906d3f7b70;hp=2ec3b29bc4aa7ac1031b7867b2f91edf063d5972;hpb=34492a9d033aef3d4369d4d758b01f3969ef3af0;p=lyx.git diff --git a/src/frontends/qt4/GuiListings.cpp b/src/frontends/qt4/GuiListings.cpp index 2ec3b29bc4..52c03e9508 100644 --- a/src/frontends/qt4/GuiListings.cpp +++ b/src/frontends/qt4/GuiListings.cpp @@ -13,36 +13,30 @@ #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/convert.h" +#include "support/gettext.h" #include "support/lstrings.h" #include -#include #include #include #include - -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 // ///////////////////////////////////////////////////////////////////// @@ -50,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", @@ -62,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", @@ -163,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())); @@ -182,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())); @@ -240,37 +232,24 @@ GuiListingsDialog::GuiListingsDialog(LyXView & lv) listingsTB->setPlainText( qt_("Input listing parameters on the right. Enter ? for a list of parameters.")); - update_contents(); - -} - + updateContents(); -ControlListings & GuiListingsDialog::controller() const -{ - return static_cast(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) { @@ -356,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(); @@ -375,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(); @@ -392,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); @@ -402,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); @@ -411,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" @@ -426,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) @@ -439,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, "}")) @@ -457,7 +434,7 @@ static string plainParam(std::string const & par) } -void GuiListingsDialog::update_contents() +void GuiListings::updateContents() { // set default values listingsTB->setPlainText( @@ -479,14 +456,13 @@ void GuiListingsDialog::update_contents() 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 pars = getVectorFromString(params.separatedParams(), "\n"); + vector pars = getVectorFromString(params_.separatedParams(), "\n"); // process each of them for (vector::iterator it = pars.begin(); it != pars.end(); ++it) { @@ -497,11 +473,12 @@ void GuiListingsDialog::update_contents() 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); @@ -510,7 +487,7 @@ void GuiListingsDialog::update_contents() // 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; @@ -618,12 +595,41 @@ void GuiListingsDialog::update_contents() } -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