* \file QDocument.C
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
- *
+ *
* \author Edwin Leuven
*
* Full author contact details are available in file CREDITS
#include <config.h>
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "gettext.h"
-
+#include "qt_helpers.h"
#include "ControlDocument.h"
#include "QDocument.h"
#include "helper_funcs.h" // getSecond()
#include "insets/insetquotes.h"
#include "frnt_lang.h"
+#include "lyxrc.h" // defaultUnit
#include "tex-strings.h" // tex_graphics
-#include "support/lstrings.h" // tostr()
+#include "support/tostr.h"
#include "support/filetools.h" // LibFileSearch()
+#include "support/BoostFormat.h"
#include "lyxtextclasslist.h"
#include "vspace.h"
#include "bufferparams.h"
+#include "qt_helpers.h"
+#include "floatplacement.h"
#include <qpushbutton.h>
#include <qmultilineedit.h>
#include <qradiobutton.h>
#include <qcombobox.h>
#include <qcheckbox.h>
-#include <qspinbox.h>
+#include <qslider.h>
#include <qlineedit.h>
#include <qstringlist.h>
#include "lengthcombo.h"
+#include "QBrowseBox.h"
+
#include <vector>
+using std::vector;
+
typedef Qt2CB<ControlDocument, Qt2DB<QDocumentDialog> > base_class;
+
QDocument::QDocument()
- : base_class(_("Document Settings"))
+ : base_class(_("LyX: Document Settings"))
{
vector<frnt::LanguagePair> const langs = frnt::getLanguageData(false);
lang_ = getSecond(langs);
}
+namespace {
+
+char const * encodings[] = { "LaTeX default", "latin1", "latin2",
+ "latin3", "latin4", "latin5", "latin9",
+ "koi8-r", "koi8-u", "cp866", "cp1251",
+ "iso88595", "pt154", 0
+};
+
+}
+
+
void QDocument::build_dialog()
{
dialog_.reset(new QDocumentDialog(this));
- /* biblio */
- dialog_->biblioModule->citeStyleCO->insertItem(_("Author-year"));
- dialog_->biblioModule->citeStyleCO->insertItem(_("Numerical"));
+ // biblio
+ dialog_->biblioModule->citeStyleCO->insertItem(qt_("Author-year"));
+ dialog_->biblioModule->citeStyleCO->insertItem(qt_("Numerical"));
dialog_->biblioModule->citeStyleCO->setCurrentItem(0);
- /* language & quotes */
+ // language & quotes
vector<frnt::LanguagePair> const langs = frnt::getLanguageData(false);
vector<frnt::LanguagePair>::const_iterator lit = langs.begin();
vector<frnt::LanguagePair>::const_iterator lend = langs.end();
for (; lit != lend; ++lit) {
dialog_->langModule->languageCO->insertItem(
- lit->first.c_str());
+ toqstr(lit->first));
}
-
- dialog_->langModule->quoteStyleCO->insertItem(_("``text''"));
- dialog_->langModule->quoteStyleCO->insertItem(_("''text''"));
- dialog_->langModule->quoteStyleCO->insertItem(_(",,text``"));
- dialog_->langModule->quoteStyleCO->insertItem(_(",,text''"));
- dialog_->langModule->quoteStyleCO->insertItem(_("«text»"));
- dialog_->langModule->quoteStyleCO->insertItem(_("»text«"));
-
- /* packages */
- char const * items[] = {"default","auto","latin1","latin2",
- "latin3","latin4","latin5","latin9",
- "koi8-r","koi8-u","cp866","cp1251",
- "iso88595","pt154",0};
- dialog_->packagesModule->encodingCO->insertStrList(items);
-
- dialog_->packagesModule->lspacingCO->insertItem(
- _("Single"),Spacing::Single);
- dialog_->packagesModule->lspacingCO->insertItem(
- _("OneHalf"),Spacing::Onehalf);
- dialog_->packagesModule->lspacingCO->insertItem(
- _("Double"),Spacing::Double);
- dialog_->packagesModule->lspacingCO->insertItem(
- _("Custom"),Spacing::Other);
-
- int n;
- for (n=0; tex_graphics[n][0]; ++n) {
- QString enc = tex_graphics[n];
- dialog_->packagesModule->psdriverCO->insertItem(enc);
+
+ int i = 0;
+ while (encodings[i]) {
+ dialog_->langModule->encodingCO->insertItem(qt_(encodings[i++]));
}
- /* paper */
- QStringList papersize_;
- papersize_ << _("Default") << _("Custom") << _("US letter") << _("US legal")
- << _("US executive") << _("A3") << _("A4") << _("A5")
- << _("B3") << _("B4") << _("B5");
- dialog_->paperModule->papersizeCO->insertStringList(papersize_);
+ dialog_->langModule->quoteStyleCO->insertItem(qt_("``text''"));
+ dialog_->langModule->quoteStyleCO->insertItem(qt_("''text''"));
+ dialog_->langModule->quoteStyleCO->insertItem(qt_(",,text``"));
+ dialog_->langModule->quoteStyleCO->insertItem(qt_(",,text''"));
+ dialog_->langModule->quoteStyleCO->insertItem(qt_("«text»"));
+ dialog_->langModule->quoteStyleCO->insertItem(qt_("»text«"));
+
+ // packages
+ for (int n = 0; tex_graphics[n][0]; ++n) {
+ QString enc = tex_graphics[n];
+ dialog_->latexModule->psdriverCO->insertItem(enc);
+ }
- /* layout */
+ // paper
+ QComboBox * cb = dialog_->pageLayoutModule->papersizeCO;
+ cb->insertItem(qt_("Default"));
+ cb->insertItem(qt_("Custom"));
+ cb->insertItem(qt_("US letter"));
+ cb->insertItem(qt_("US legal"));
+ cb->insertItem(qt_("US executive"));
+ cb->insertItem(qt_("A3"));
+ cb->insertItem(qt_("A4"));
+ cb->insertItem(qt_("A5"));
+ cb->insertItem(qt_("B3"));
+ cb->insertItem(qt_("B4"));
+ cb->insertItem(qt_("B5"));
+
+ // layout
for (LyXTextClassList::const_iterator cit = textclasslist.begin();
cit != textclasslist.end(); ++cit) {
- dialog_->layoutModule->classCO->insertItem(cit->description().c_str());
+ if (cit->isTeXClassAvailable()) {
+ dialog_->latexModule->classCO->insertItem(toqstr(cit->description()));
+ } else {
+ string item =
+#if USE_BOOST_FORMAT
+ boost::io::str(boost::format(_("Unavailable: %1$s")) % cit->description());
+#else
+ _("Unavailable: ") + cit->description();
+#endif
+ dialog_->latexModule->classCO->insertItem(toqstr(item));
+ }
}
- for (n=0; tex_fonts[n][0]; ++n) {
+ for (int n = 0; tex_fonts[n][0]; ++n) {
QString font = tex_fonts[n];
- dialog_->layoutModule->fontsCO->insertItem(font);
+ dialog_->textLayoutModule->fontsCO->insertItem(font);
}
-
- dialog_->layoutModule->fontsizeCO->insertItem(_("default"));
- dialog_->layoutModule->fontsizeCO->insertItem(_("10"));
- dialog_->layoutModule->fontsizeCO->insertItem(_("11"));
- dialog_->layoutModule->fontsizeCO->insertItem(_("12"));
-
- dialog_->layoutModule->skipCO->insertItem(_("Smallskip"));
- dialog_->layoutModule->skipCO->insertItem(_("Medskip"));
- dialog_->layoutModule->skipCO->insertItem(_("Bigskip"));
- dialog_->layoutModule->skipCO->insertItem(_("Length"));
-
- dialog_->layoutModule->pagestyleCO->insertItem(_("default"));
- dialog_->layoutModule->pagestyleCO->insertItem(_("empty"));
- dialog_->layoutModule->pagestyleCO->insertItem(_("plain"));
- dialog_->layoutModule->pagestyleCO->insertItem(_("headings"));
- dialog_->layoutModule->pagestyleCO->insertItem(_("fancy"));
-
- /* margins */
+
+ dialog_->textLayoutModule->fontsizeCO->insertItem(qt_("default"));
+ dialog_->textLayoutModule->fontsizeCO->insertItem(qt_("10"));
+ dialog_->textLayoutModule->fontsizeCO->insertItem(qt_("11"));
+ dialog_->textLayoutModule->fontsizeCO->insertItem(qt_("12"));
+
+ dialog_->textLayoutModule->skipCO->insertItem(qt_("SmallSkip"));
+ dialog_->textLayoutModule->skipCO->insertItem(qt_("MedSkip"));
+ dialog_->textLayoutModule->skipCO->insertItem(qt_("BigSkip"));
+ dialog_->textLayoutModule->skipCO->insertItem(qt_("Length"));
+
+ dialog_->pageLayoutModule->pagestyleCO->insertItem(qt_("default"));
+ dialog_->pageLayoutModule->pagestyleCO->insertItem(qt_("empty"));
+ dialog_->pageLayoutModule->pagestyleCO->insertItem(qt_("plain"));
+ dialog_->pageLayoutModule->pagestyleCO->insertItem(qt_("headings"));
+ dialog_->pageLayoutModule->pagestyleCO->insertItem(qt_("fancy"));
+
+ dialog_->textLayoutModule->lspacingCO->insertItem(
+ qt_("Single"), Spacing::Single);
+ dialog_->textLayoutModule->lspacingCO->insertItem(
+ qt_("OneHalf"), Spacing::Onehalf);
+ dialog_->textLayoutModule->lspacingCO->insertItem(
+ qt_("Double"), Spacing::Double);
+ dialog_->textLayoutModule->lspacingCO->insertItem(
+ qt_("Custom"), Spacing::Other);
+
+ // margins
dialog_->setMargins(0);
- string const bmtablefile = LibFileSearch("images", "standard", "xpm");
- QString s = bmtablefile.c_str();
- qWarning("%d",s);
-
// Manage the restore, ok, apply, restore and cancel/close buttons
- bc().setOK(dialog_->okPB);
- bc().setApply(dialog_->applyPB);
- bc().setCancel(dialog_->cancelPB);
- bc().setRestore(dialog_->restorePB);
+ bcview().setOK(dialog_->okPB);
+ bcview().setApply(dialog_->applyPB);
+ bcview().setCancel(dialog_->closePB);
+ bcview().setRestore(dialog_->restorePB);
+}
+
+
+void QDocument::showPreamble()
+{
+ dialog_->showPreamble();
}
void QDocument::apply()
{
- /* preamble */
- controller().params().preamble =
- dialog_->preambleModule->preambleMLE->text().latin1();
-
- /* biblio */
- controller().params().use_natbib =
+ BufferParams & params = controller().params();
+
+ // preamble
+ params.preamble =
+ fromqstr(dialog_->preambleModule->preambleMLE->text());
+
+ // biblio
+ params.use_natbib =
dialog_->biblioModule->natbibCB->isChecked();
- controller().params().use_numerical_citations =
+ params.use_numerical_citations =
dialog_->biblioModule->citeStyleCO->currentItem();
- /* language & quotes */
+ // language & quotes
if (dialog_->langModule->singleQuoteRB->isChecked())
- controller().params().quotes_times = InsetQuotes::SingleQ;
+ params.quotes_times = InsetQuotes::SingleQ;
else
- controller().params().quotes_times = InsetQuotes::DoubleQ;
+ params.quotes_times = InsetQuotes::DoubleQ;
+
+ if (dialog_->langModule->defaultencodingCB->isChecked()) {
+ params.inputenc = "auto";
+ } else {
+ int i = dialog_->langModule->encodingCO->currentItem();
+ if (i == 0) {
+ params.inputenc = "default";
+ } else {
+ params.inputenc = encodings[i];
+ }
+ }
-
InsetQuotes::quote_language lga = InsetQuotes::EnglishQ;
switch (dialog_->langModule->quoteStyleCO->currentItem()) {
case 0:
lga = InsetQuotes::DanishQ;
break;
}
- controller().params().quotes_language = lga;
+ params.quotes_language = lga;
int const pos = dialog_->langModule->languageCO->currentItem();
- controller().params().language = languages.getLanguage(lang_[pos]);
+ params.language = languages.getLanguage(lang_[pos]);
+
+ // numbering
+ params.tocdepth = dialog_->numberingModule->tocSL->value();
+ params.secnumdepth = dialog_->numberingModule->depthSL->value();
+
+ // bullets
+ params.user_defined_bullets[0] = dialog_->bulletsModule->getBullet(0);
+ params.user_defined_bullets[1] = dialog_->bulletsModule->getBullet(1);
+ params.user_defined_bullets[2] = dialog_->bulletsModule->getBullet(2);
+ params.user_defined_bullets[3] = dialog_->bulletsModule->getBullet(3);
+
+ // packages
+ params.graphicsDriver =
+ fromqstr(dialog_->latexModule->psdriverCO->currentText());
+
+ if (dialog_->mathsModule->amsautoCB->isChecked()) {
+ params.use_amsmath = BufferParams::AMS_AUTO;
+ } else {
+ if (dialog_->mathsModule->amsCB->isChecked())
+ params.use_amsmath = BufferParams::AMS_ON;
+ else
+ params.use_amsmath = BufferParams::AMS_OFF;
+ }
+
+ // layout
+ params.textclass =
+ dialog_->latexModule->classCO->currentItem();
- /* numbering */
- controller().params().secnumdepth =
- dialog_->numberingModule->tocDepthSB->value();
- controller().params().tocdepth =
- dialog_->numberingModule->sectionnrDepthSB->value();
+ params.fonts =
+ fromqstr(dialog_->textLayoutModule->fontsCO->currentText());
- /* packages */
- switch (dialog_->packagesModule->lspacingCO->currentItem()) {
+ params.fontsize =
+ fromqstr(dialog_->textLayoutModule->fontsizeCO->currentText());
+
+ params.pagestyle =
+ fromqstr(dialog_->pageLayoutModule->pagestyleCO->currentText());
+
+ switch (dialog_->textLayoutModule->lspacingCO->currentItem()) {
case 0:
- controller().params().spacing.set(Spacing::Single);
+ params.spacing.set(Spacing::Single);
break;
case 1:
- controller().params().spacing.set(Spacing::Onehalf);
+ params.spacing.set(Spacing::Onehalf);
break;
case 2:
- controller().params().spacing.set(Spacing::Double);
+ params.spacing.set(Spacing::Double);
break;
case 3:
- controller().params().spacing.set(Spacing::Other,
- dialog_->packagesModule->
+ params.spacing.set(Spacing::Other,
+ dialog_->textLayoutModule->
lspacingLE->text().toFloat()
);
break;
}
-
- controller().params().graphicsDriver =
- dialog_->packagesModule->psdriverCO->currentText().latin1();
-
- controller().params().use_amsmath =
- dialog_->packagesModule->amsCB->isChecked();
-
- controller().params().inputenc =
- dialog_->packagesModule->encodingCO->currentText().latin1();
-
- /* layout */
- controller().params().textclass =
- dialog_->layoutModule->classCO->currentItem();
-
- //bool succes = controller().classApply();
-
- controller().params().fonts =
- dialog_->layoutModule->fontsCO->currentText().latin1();
-
- controller().params().fontsize =
- dialog_->layoutModule->fontsizeCO->currentText().latin1();
-
- controller().params().pagestyle =
- dialog_->layoutModule->pagestyleCO->currentText().latin1();
-
- if (dialog_->layoutModule->indentRB->isChecked())
- controller().params().paragraph_separation = BufferParams::PARSEP_INDENT;
+
+ if (dialog_->textLayoutModule->twoColumnCB->isChecked())
+ params.columns = 2;
else
- controller().params().paragraph_separation = BufferParams::PARSEP_SKIP;
+ params.columns = 1;
- switch (dialog_->layoutModule->skipCO->currentItem()) {
+ if (dialog_->textLayoutModule->indentRB->isChecked())
+ params.paragraph_separation = BufferParams::PARSEP_INDENT;
+ else
+ params.paragraph_separation = BufferParams::PARSEP_SKIP;
+
+ switch (dialog_->textLayoutModule->skipCO->currentItem()) {
case 0:
- controller().params().setDefSkip(VSpace(VSpace::SMALLSKIP));
+ params.setDefSkip(VSpace(VSpace::SMALLSKIP));
break;
case 1:
- controller().params().setDefSkip(VSpace(VSpace::MEDSKIP));
+ params.setDefSkip(VSpace(VSpace::MEDSKIP));
break;
case 2:
- controller().params().setDefSkip(VSpace(VSpace::BIGSKIP));
+ params.setDefSkip(VSpace(VSpace::BIGSKIP));
break;
case 3:
{
LyXLength::UNIT unit =
- dialog_->layoutModule->skipLengthCO->
+ dialog_->textLayoutModule->skipLengthCO->
currentLengthItem();
double length =
- dialog_->layoutModule->skipLE->text().toDouble();
+ dialog_->textLayoutModule->skipLE->text().toDouble();
VSpace vs = VSpace(LyXGlueLength(LyXLength(length,unit)));
- controller().params().setDefSkip(vs);
+ params.setDefSkip(vs);
break;
}
default:
// DocumentDefskipCB assures that this never happens
- controller().params().setDefSkip(VSpace(VSpace::MEDSKIP));
+ // so Assert then !!! - jbl
+ params.setDefSkip(VSpace(VSpace::MEDSKIP));
break;
}
- controller().params().options =
- dialog_->layoutModule->optionsLE->text().latin1();
-
- controller().params().float_placement =
- dialog_->layoutModule->floatPlacementLE->text().latin1();
-
- /* paper */
- controller().params().papersize2 =
- dialog_->paperModule->papersizeCO->currentItem();
-
- controller().params().paperwidth =
- LyXLength(dialog_->paperModule->paperwidthLE->text().toDouble(),
- dialog_->paperModule->paperwidthUnitCO->currentLengthItem()
- ).asString();
-
- controller().params().paperheight =
- LyXLength(dialog_->paperModule->paperheightLE->text().toDouble(),
- dialog_->paperModule->paperheightUnitCO->currentLengthItem()
- ).asString();
-
- if (dialog_->paperModule->twoColumnCB->isChecked())
- controller().params().columns = 2;
- else
- controller().params().columns = 1;
-
- if (dialog_->paperModule->facingPagesCB->isChecked())
- controller().params().sides = LyXTextClass::TwoSides;
+ params.options =
+ fromqstr(dialog_->latexModule->optionsLE->text());
+
+ params.float_placement = dialog_->floatModule->get();
+
+ // paper
+ params.papersize2 = BufferParams::VMARGIN_PAPER_TYPE(
+ dialog_->pageLayoutModule->papersizeCO->currentItem());
+
+ params.paperwidth = widgetsToLength(dialog_->pageLayoutModule->paperwidthLE,
+ dialog_->pageLayoutModule->paperwidthUnitCO);
+
+ params.paperheight = widgetsToLength(dialog_->pageLayoutModule->paperheightLE,
+ dialog_->pageLayoutModule->paperheightUnitCO);
+
+ if (dialog_->pageLayoutModule->facingPagesCB->isChecked())
+ params.sides = LyXTextClass::TwoSides;
else
- controller().params().sides = LyXTextClass::OneSide;
-
- if (dialog_->paperModule->landscapeRB->isChecked())
- controller().params().orientation = BufferParams::ORIENTATION_LANDSCAPE;
+ params.sides = LyXTextClass::OneSide;
+
+ if (dialog_->pageLayoutModule->landscapeRB->isChecked())
+ params.orientation = BufferParams::ORIENTATION_LANDSCAPE;
else
- controller().params().orientation = BufferParams::ORIENTATION_PORTRAIT;
+ params.orientation = BufferParams::ORIENTATION_PORTRAIT;
- /* margins */
- controller().params().use_geometry =
- dialog_->marginsModule->marginCO->currentItem()==1;
+ // margins
+ params.use_geometry =
+ (dialog_->marginsModule->marginCO->currentItem() == 1);
int margin = dialog_->marginsModule->marginCO->currentItem();
- if (margin>0) {
+ if (margin > 0) {
margin = margin - 1;
}
- controller().params().paperpackage = char(margin);
-
- controller().params().leftmargin =
- LyXLength(dialog_->marginsModule->innerLE->text().toDouble(),
- dialog_->marginsModule->innerUnit->currentLengthItem()
- ).asString();
-
- controller().params().topmargin =
- LyXLength(dialog_->marginsModule->topLE->text().toDouble(),
- dialog_->marginsModule->topUnit->currentLengthItem()
- ).asString();
+ params.paperpackage = BufferParams::PAPER_PACKAGES(margin);
+ // set params.papersize from params.papersize2
+ // and params.paperpackage
+ params.setPaperStuff();
- controller().params().rightmargin =
- LyXLength(dialog_->marginsModule->outerLE->text().toDouble(),
- dialog_->marginsModule->outerUnit->currentLengthItem()
- ).asString();
+ MarginsModuleBase const * m(dialog_->marginsModule);
+ params.leftmargin = widgetsToLength(m->innerLE, m->innerUnit);
- controller().params().bottommargin =
- LyXLength(dialog_->marginsModule->bottomLE->text().toDouble(),
- dialog_->marginsModule->bottomUnit->currentLengthItem()
- ).asString();
+ params.topmargin = widgetsToLength(m->topLE, m->topUnit);
+ params.rightmargin = widgetsToLength(m->outerLE, m->outerUnit);
- controller().params().headheight =
- LyXLength(dialog_->marginsModule->headheightLE->text().toDouble(),
- dialog_->marginsModule->headheightUnit->currentLengthItem()
- ).asString();
+ params.bottommargin = widgetsToLength(m->bottomLE, m->bottomUnit);
+ params.headheight = widgetsToLength(m->headheightLE, m->headheightUnit);
- controller().params().headsep =
- LyXLength(dialog_->marginsModule->headsepLE->text().toDouble(),
- dialog_->marginsModule->headsepUnit->currentLengthItem()
- ).asString();
-
-
- controller().params().footskip =
- LyXLength(dialog_->marginsModule->footskipLE->text().toDouble(),
- dialog_->marginsModule->footskipUnit->currentLengthItem()
- ).asString();
+ params.headsep = widgetsToLength(m->headsepLE, m->headsepUnit);
+ params.footskip = widgetsToLength(m->footskipLE, m->footskipUnit);
}
+
namespace {
/** Return the position of val in the vector if found.
} // namespace anom
+
void QDocument::update_contents()
{
if (!dialog_.get())
return;
- /* preamble */
- QString preamble = controller().params().preamble.c_str();
+ BufferParams const & params = controller().params();
+
+ // set the default unit
+ // FIXME: move to controller
+ LyXLength::UNIT defaultUnit = LyXLength::CM;
+ switch (lyxrc.default_papersize) {
+ case BufferParams::PAPER_DEFAULT: break;
+
+ case BufferParams::PAPER_USLETTER:
+ case BufferParams::PAPER_LEGALPAPER:
+ case BufferParams::PAPER_EXECUTIVEPAPER:
+ defaultUnit = LyXLength::IN;
+ break;
+
+ case BufferParams::PAPER_A3PAPER:
+ case BufferParams::PAPER_A4PAPER:
+ case BufferParams::PAPER_A5PAPER:
+ case BufferParams::PAPER_B5PAPER:
+ defaultUnit = LyXLength::CM;
+ break;
+ }
+
+ // preamble
+ QString preamble = toqstr(params.preamble);
dialog_->preambleModule->preambleMLE->setText(preamble);
- /* biblio */
+ // biblio
dialog_->biblioModule->natbibCB->setChecked(
- controller().params().use_natbib);
+ params.use_natbib);
dialog_->biblioModule->citeStyleCO->setCurrentItem(
- controller().params().use_numerical_citations ? 1 : 0);
-
- /* language & quotes */
+ params.use_numerical_citations ? 1 : 0);
+
+ // language & quotes
dialog_->langModule->singleQuoteRB->setChecked(
- controller().params().quotes_times == InsetQuotes::SingleQ);
+ params.quotes_times == InsetQuotes::SingleQ);
dialog_->langModule->doubleQuoteRB->setChecked(
- controller().params().quotes_times == InsetQuotes::DoubleQ);
-
+ params.quotes_times == InsetQuotes::DoubleQ);
+
int const pos = int(findPos(lang_,
- controller().params().language->lang()));
+ params.language->lang()));
dialog_->langModule->languageCO->setCurrentItem(pos);
dialog_->langModule->quoteStyleCO->setCurrentItem(
- controller().params().quotes_language);
-
- /* numbering */
- dialog_->numberingModule->tocDepthSB->setValue(
- controller().params().secnumdepth);
- dialog_->numberingModule->sectionnrDepthSB->setValue(
- controller().params().tocdepth);
-
- /* packages */
- QStringList enc;
- enc << "default" << "auto" << "latin1" << "latin2" << "latin3" <<
- "latin4" << "latin5" << "latin9" << "koi8-r" << "koi8-u" <<
- "cp866" << "cp1251" << "iso88595" << "pt154";
- int pos2 = 0;
- for (QStringList::Iterator it = enc.begin();
- it!=enc.end(); ++it) {
- if (*it==controller().params().inputenc.c_str()) {
- dialog_->packagesModule->encodingCO->setCurrentItem(pos2);
+ params.quotes_language);
+
+ dialog_->langModule->defaultencodingCB->setChecked(true);
+
+ if (params.inputenc != "auto") {
+ dialog_->langModule->defaultencodingCB->setChecked(false);
+ if (params.inputenc == "default") {
+ dialog_->langModule->encodingCO->setCurrentItem(0);
+ } else {
+ int i = 0;
+ while (encodings[i]) {
+ if (encodings[i] == params.inputenc)
+ dialog_->langModule->encodingCO->setCurrentItem(i);
+ ++i;
+ }
}
- ++pos2;
}
-
-
- QString text = controller().params().graphicsDriver.c_str();
- int nitem = dialog_->packagesModule->psdriverCO->count();
- for (int n=0; n<nitem ; ++n) {
+
+ // numbering
+ dialog_->numberingModule->tocSL->setValue(params.tocdepth);
+ dialog_->numberingModule->depthSL->setValue(params.secnumdepth);
+ dialog_->updateNumbering();
+
+ // bullets
+ dialog_->bulletsModule->setBullet(0,params.user_defined_bullets[0]);
+ dialog_->bulletsModule->setBullet(1,params.user_defined_bullets[1]);
+ dialog_->bulletsModule->setBullet(2,params.user_defined_bullets[2]);
+ dialog_->bulletsModule->setBullet(3,params.user_defined_bullets[3]);
+
+ // packages
+ QString text = toqstr(params.graphicsDriver);
+ int nitem = dialog_->latexModule->psdriverCO->count();
+ for (int n = 0; n < nitem ; ++n) {
QString enc = tex_graphics[n];
- if (enc==text) {
- dialog_->packagesModule->psdriverCO->setCurrentItem(n);
+ if (enc == text) {
+ dialog_->latexModule->psdriverCO->setCurrentItem(n);
}
}
-
-
- dialog_->packagesModule->amsCB->setChecked(
- controller().params().use_amsmath);
-
- dialog_->packagesModule->lspacingCO->
- setCurrentItem(controller().params().spacing.getSpace());
- if (controller().params().spacing.getSpace()==
- Spacing::Other) {
- dialog_->packagesModule->lspacingLE->setText(
- tostr(controller().params().spacing.getValue()).c_str());
- dialog_->setLSpacing(3);
- }
- /* layout */
- for (int n = 0; n<dialog_->layoutModule->classCO->count(); ++n) {
- if (dialog_->layoutModule->classCO->text(n)==
- controller().textClass().description().c_str()) {
- dialog_->layoutModule->classCO->setCurrentItem(n);
- break;
- }
+
+ dialog_->mathsModule->amsCB->setChecked(
+ params.use_amsmath == BufferParams::AMS_ON);
+ dialog_->mathsModule->amsautoCB->setChecked(
+ params.use_amsmath == BufferParams::AMS_AUTO);
+
+ switch (params.spacing.getSpace()) {
+ case Spacing::Other: nitem = 3; break;
+ case Spacing::Double: nitem = 2; break;
+ case Spacing::Onehalf: nitem = 1; break;
+ case Spacing::Default: case Spacing::Single: nitem = 0; break;
}
+
+ // layout
+ dialog_->latexModule->classCO->setCurrentItem(params.textclass);
+
dialog_->updateFontsize(controller().textClass().opt_fontsize(),
- controller().params().fontsize);
-
+ params.fontsize);
+
dialog_->updatePagestyle(controller().textClass().opt_pagestyle(),
- controller().params().pagestyle);
-
-
- for (int n=0; tex_fonts[n][0]; ++n) {
- if (tex_fonts[n]==controller().params().fonts) {
- dialog_->layoutModule->fontsCO->setCurrentItem(n);
+ params.pagestyle);
+
+ for (int n = 0; tex_fonts[n][0]; ++n) {
+ if (tex_fonts[n] == params.fonts) {
+ dialog_->textLayoutModule->fontsCO->setCurrentItem(n);
break;
}
}
- if (controller().params().paragraph_separation
+ dialog_->textLayoutModule->lspacingCO->setCurrentItem(nitem);
+ if (params.spacing.getSpace() == Spacing::Other) {
+ dialog_->textLayoutModule->lspacingLE->setText(
+ toqstr(tostr(params.spacing.getValue())));
+ dialog_->setLSpacing(3);
+ }
+
+ if (params.paragraph_separation
== BufferParams::PARSEP_INDENT) {
- dialog_->layoutModule->indentRB->setChecked(true);
+ dialog_->textLayoutModule->indentRB->setChecked(true);
} else {
- dialog_->layoutModule->skipRB->setChecked(true);
+ dialog_->textLayoutModule->skipRB->setChecked(true);
}
-
+
int skip = 0;
- switch (controller().params().getDefSkip().kind()) {
+ switch (params.getDefSkip().kind()) {
case VSpace::SMALLSKIP:
skip = 0;
break;
case VSpace::LENGTH:
{
skip = 3;
- string const length = controller().params().getDefSkip().asLyXCommand();
- dialog_->layoutModule->skipLengthCO->setCurrentItem(LyXLength(length).unit());
- dialog_->layoutModule->skipLE->setText(tostr(LyXLength(length).value()).c_str());
+ string const length = params.getDefSkip().asLyXCommand();
+ dialog_->textLayoutModule->skipLengthCO->setCurrentItem(LyXLength(length).unit());
+ dialog_->textLayoutModule->skipLE->setText(toqstr(tostr(LyXLength(length).value())));
break;
}
default:
skip = 0;
break;
}
- dialog_->layoutModule->skipCO->setCurrentItem(skip);
+ dialog_->textLayoutModule->skipCO->setCurrentItem(skip);
dialog_->setSkip(skip);
- if (!controller().params().options.empty()) {
- dialog_->layoutModule->optionsLE->setText(
- controller().params().options.c_str());
+ dialog_->textLayoutModule->twoColumnCB->setChecked(
+ params.columns == 2);
+
+ if (!params.options.empty()) {
+ dialog_->latexModule->optionsLE->setText(
+ toqstr(params.options));
} else {
- dialog_->layoutModule->optionsLE->setText("");
+ dialog_->latexModule->optionsLE->setText("");
}
-
- /* paper */
- int const psize = controller().params().papersize2;
- dialog_->paperModule->papersizeCO->setCurrentItem(psize);
+
+ dialog_->floatModule->set(params.float_placement);
+
+ // paper
+ int const psize = params.papersize2;
+ dialog_->pageLayoutModule->papersizeCO->setCurrentItem(psize);
dialog_->setMargins(psize);
dialog_->setCustomPapersize(psize);
bool const landscape =
- controller().params().orientation == BufferParams::ORIENTATION_LANDSCAPE;
- dialog_->paperModule->landscapeRB->setChecked(landscape);
- dialog_->paperModule->portraitRB->setChecked(!landscape);
-
- dialog_->paperModule->facingPagesCB->setChecked(
- controller().params().sides == LyXTextClass::TwoSides);
-
- dialog_->paperModule->twoColumnCB->setChecked(
- controller().params().columns == 2);
-
- dialog_->paperModule->paperwidthUnitCO->setCurrentItem(
- LyXLength(controller().params().paperwidth).unit());
-
- dialog_->paperModule->paperwidthLE->setText(
- tostr(LyXLength(controller().params().paperwidth).value()).c_str());
-
- dialog_->paperModule->paperheightUnitCO->setCurrentItem(
- LyXLength(controller().params().paperheight).unit());
-
- dialog_->paperModule->paperheightLE->setText(
- tostr(LyXLength(controller().params().paperheight).value()).c_str());
-
- /* margins */
- int item = controller().params().paperpackage;
- if (controller().params().use_geometry) {
+ params.orientation == BufferParams::ORIENTATION_LANDSCAPE;
+ dialog_->pageLayoutModule->landscapeRB->setChecked(landscape);
+ dialog_->pageLayoutModule->portraitRB->setChecked(!landscape);
+
+ dialog_->pageLayoutModule->facingPagesCB->setChecked(
+ params.sides == LyXTextClass::TwoSides);
+
+
+
+ lengthToWidgets(dialog_->pageLayoutModule->paperwidthLE,
+ dialog_->pageLayoutModule->paperwidthUnitCO, params.paperwidth, defaultUnit);
+
+ lengthToWidgets(dialog_->pageLayoutModule->paperheightLE,
+ dialog_->pageLayoutModule->paperheightUnitCO, params.paperheight, defaultUnit);
+
+ // margins
+
+ MarginsModuleBase * m(dialog_->marginsModule);
+
+ int item = params.paperpackage;
+ if (params.use_geometry) {
item = 1;
- } else if (item>0) {
+ } else if (item > 0) {
item = item + 1;
}
- dialog_->marginsModule->marginCO->setCurrentItem(item);
+ m->marginCO->setCurrentItem(item);
dialog_->setCustomMargins(item);
- dialog_->marginsModule->topUnit->setCurrentItem(
- LyXLength(controller().params().topmargin).unit());
- dialog_->marginsModule->topLE->setText(
- tostr(LyXLength(controller().params().topmargin).value()).c_str());
-
- dialog_->marginsModule->bottomUnit->setCurrentItem(
- LyXLength(controller().params().bottommargin).unit());
- dialog_->marginsModule->bottomLE->setText(
- tostr(LyXLength(controller().params().bottommargin).value()).c_str());
-
- dialog_->marginsModule->innerUnit->setCurrentItem(
- LyXLength(controller().params().leftmargin).unit());
- dialog_->marginsModule->innerLE->setText(
- tostr(LyXLength(controller().params().leftmargin).value()).c_str());
-
- dialog_->marginsModule->outerUnit->setCurrentItem(
- LyXLength(controller().params().rightmargin).unit());
- dialog_->marginsModule->outerLE->setText(
- tostr(LyXLength(controller().params().rightmargin).value()).c_str());
-
- dialog_->marginsModule->headheightUnit->setCurrentItem(
- LyXLength(controller().params().headheight).unit());
- dialog_->marginsModule->headheightLE->setText(
- tostr(LyXLength(controller().params().headheight).value()).c_str());
-
- dialog_->marginsModule->headsepUnit->setCurrentItem(
- LyXLength(controller().params().headsep).unit());
- dialog_->marginsModule->headsepLE->setText(
- tostr(LyXLength(controller().params().headsep).value()).c_str());
-
- dialog_->marginsModule->footskipUnit->setCurrentItem(
- LyXLength(controller().params().footskip).unit());
- dialog_->marginsModule->footskipLE->setText(
- tostr(LyXLength(controller().params().footskip).value()).c_str());
-
-
-}
+ lengthToWidgets(m->topLE, m->topUnit,
+ params.topmargin, defaultUnit);
+
+ lengthToWidgets(m->bottomLE, m->bottomUnit,
+ params.bottommargin, defaultUnit);
+
+ lengthToWidgets(m->innerLE, m->innerUnit,
+ params.leftmargin, defaultUnit);
+
+ lengthToWidgets(m->outerLE, m->outerUnit,
+ params.rightmargin, defaultUnit);
+ lengthToWidgets(m->headheightLE, m->headheightUnit,
+ params.headheight, defaultUnit);
+ lengthToWidgets(m->headsepLE, m->headsepUnit,
+ params.headsep, defaultUnit);
+
+ lengthToWidgets(m->footskipLE, m->footskipUnit,
+ params.footskip, defaultUnit);
+}
+void QDocument::saveDocDefault()
+{
+ // we have to apply the params first
+ apply();
+ controller().saveAsDefault();
+}
+void QDocument::useClassDefaults()
+{
+ BufferParams & params = controller().params();
+ params.textclass = dialog_->latexModule->classCO->currentItem();
+ params.useClassDefaults();
+ update_contents();
+}