X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FGuiListings.cpp;h=9bb8f05dba0cef6f8f7df61ee45ec5722ff725e4;hb=425d092204118ea6c24c28e85fdf03fcf2bb51a4;hp=b8702114d06de3c4317ca1a41a94ed98c0db66f4;hpb=b89cc942eb458284f40f4d4e7db58890c3288979;p=lyx.git diff --git a/src/frontends/qt4/GuiListings.cpp b/src/frontends/qt4/GuiListings.cpp index b8702114d0..9bb8f05dba 100644 --- a/src/frontends/qt4/GuiListings.cpp +++ b/src/frontends/qt4/GuiListings.cpp @@ -4,7 +4,7 @@ * Licence details can be found in the file COPYING. * * \author Bo Peng - * \author Jürgen Spitzmüller + * \author Jürgen Spitzmüller * * Full author contact details are available in file CREDITS. */ @@ -14,15 +14,18 @@ #include "GuiListings.h" #include "qt_helpers.h" + #include "FuncRequest.h" + #include "insets/InsetListings.h" #include "insets/InsetListingsParams.h" -#include "support/debug.h" +#include "support/convert.h" +#include "support/debug.h" +#include "support/gettext.h" #include "support/lstrings.h" #include -#include #include #include #include @@ -158,10 +161,9 @@ char const * font_styles_gui[] = GuiListings::GuiListings(GuiView & lv) - : GuiDialog(lv, "listings") + : GuiDialog(lv, "listings", qt_("Program Listing Settings")) { setupUi(this); - setViewTitle(_("Program Listing Settings")); connect(okPB, SIGNAL(clicked()), this, SLOT(slotOK())); connect(applyPB, SIGNAL(clicked()), this, SLOT(slotApply())); @@ -197,17 +199,19 @@ GuiListings::GuiListings(GuiView & lv) this, SLOT(change_adaptor())); connect(spaceInStringCB, SIGNAL(clicked()), this, SLOT(change_adaptor())); + connect(tabsizeSB, SIGNAL(valueChanged(int)), + this, SLOT(change_adaptor())); connect(extendedcharsCB, SIGNAL(clicked()), this, SLOT(change_adaptor())); connect(listingsED, SIGNAL(textChanged()), this, SLOT(change_adaptor())); connect(listingsED, SIGNAL(textChanged()), - this, SLOT(set_listings_msg())); + this, SLOT(setListingsMsg())); connect(bypassCB, SIGNAL(clicked()), this, SLOT(change_adaptor())); connect(bypassCB, SIGNAL(clicked()), - this, SLOT(set_listings_msg())); + this, SLOT(setListingsMsg())); for (int n = 0; languages[n][0]; ++n) languageCO->addItem(qt_(languages_gui[n])); @@ -227,6 +231,7 @@ GuiListings::GuiListings(GuiView & lv) lastlineLE->setValidator(new QIntValidator(0, 1000000, this)); placementLE->setValidator(new QRegExpValidator(QRegExp("[\\*tbph]*"), this)); + bc().setPolicy(ButtonPolicy::NoRepeatedApplyReadOnlyPolicy); bc().setOK(okPB); bc().setApply(applyPB); bc().setCancel(closePB); @@ -238,13 +243,6 @@ GuiListings::GuiListings(GuiView & lv) } -void GuiListings::closeEvent(QCloseEvent * e) -{ - slotClose(); - e->accept(); -} - - void GuiListings::change_adaptor() { changed(); @@ -253,7 +251,7 @@ void GuiListings::change_adaptor() string GuiListings::construct_params() { - string language = languages[languageCO->currentIndex()]; + string language = languages[qMax(0, languageCO->currentIndex())]; string dialect; string const dialect_gui = fromqstr(dialectCO->currentText()); if (dialectCO->currentIndex() > 0) { @@ -273,7 +271,7 @@ string GuiListings::construct_params() placement = fromqstr(placementLE->text()); string numberSide; - switch (numberSideCO->currentIndex()) { + switch (qMax(0, numberSideCO->currentIndex())) { case 0: numberSide = "none"; break; @@ -288,12 +286,12 @@ string GuiListings::construct_params() break; } string stepnumber = fromqstr(numberStepLE->text()); - string numberfontsize = font_sizes[numberFontSizeCO->currentIndex()]; + string numberfontsize = font_sizes[qMax(0, numberFontSizeCO->currentIndex())]; string firstline = fromqstr(firstlineLE->text()); string lastline = fromqstr(lastlineLE->text()); - string fontsize = font_sizes[fontsizeCO->currentIndex()]; - string fontstyle = font_styles[fontstyleCO->currentIndex()]; + string fontsize = font_sizes[qMax(0, fontsizeCO->currentIndex())]; + string fontstyle = font_styles[qMax(0, fontstyleCO->currentIndex())]; string basicstyle; if (fontsize != "default") basicstyle = "\\" + fontsize; @@ -301,6 +299,7 @@ string GuiListings::construct_params() basicstyle += "\\" + fontstyle; bool breakline = breaklinesCB->isChecked(); bool space = spaceCB->isChecked(); + int tabsize = tabsizeSB->value(); bool spaceInString = spaceInStringCB->isChecked(); bool extendedchars = extendedcharsCB->isChecked(); string extra = fromqstr(listingsED->toPlainText()); @@ -336,6 +335,8 @@ string GuiListings::construct_params() par.addParam("showspaces", "true"); if (!spaceInString) par.addParam("showstringspaces", "false"); + if (tabsize != 8) + par.addParam("tabsize", convert(tabsize)); if (extendedchars) par.addParam("extendedchars", "true"); par.addParams(extra); @@ -362,7 +363,7 @@ docstring GuiListings::validate_listings_params() } -void GuiListings::set_listings_msg() +void GuiListings::setListingsMsg() { static bool isOK = true; docstring msg = validate_listings_params(); @@ -433,7 +434,7 @@ void GuiListings::applyView() } -static string plainParam(std::string const & par) +static string plainParam(string const & par) { // remove enclosing braces if (prefixIs(par, "{") && suffixIs(par, "}")) @@ -461,6 +462,7 @@ void GuiListings::updateContents() breaklinesCB->setChecked(false); spaceCB->setChecked(false); spaceInStringCB->setChecked(true); + tabsizeSB->setValue(8); extendedcharsCB->setChecked(false); // set values from param string @@ -588,6 +590,9 @@ void GuiListings::updateContents() } else if (prefixIs(*it, "showstringspaces=")) { spaceInStringCB->setChecked(contains(*it, "true")); *it = ""; + } else if (prefixIs(*it, "tabsize=")) { + tabsizeSB->setValue(convert(plainParam(it->substr(8)))); + *it = ""; } else if (prefixIs(*it, "extendedchars=")) { extendedcharsCB->setChecked(contains(*it, "true")); *it = ""; @@ -611,7 +616,7 @@ bool GuiListings::isValid() bool GuiListings::initialiseParams(string const & data) { - InsetListingsMailer::string2params(data, params_); + InsetListings::string2params(data, params_); return true; } @@ -624,7 +629,7 @@ void GuiListings::clearParams() void GuiListings::dispatchParams() { - string const lfun = InsetListingsMailer::params2string(params_); + string const lfun = InsetListings::params2string(params_); dispatch(FuncRequest(getLfun(), lfun)); } @@ -642,4 +647,4 @@ Dialog * createGuiListings(GuiView & lv) { return new GuiListings(lv); } } // namespace lyx -#include "GuiListings_moc.cpp" +#include "moc_GuiListings.cpp"