X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt2%2FQDocumentDialog.C;h=960167b63edc0278e400cf202e89af3882ace76b;hb=1fcedd4b635807e7046342f324d054c04c37f054;hp=c93c874acf302a90d5e4081920de54f4eec91023;hpb=71a377eab392c24965c69586248fe2220297468a;p=lyx.git diff --git a/src/frontends/qt2/QDocumentDialog.C b/src/frontends/qt2/QDocumentDialog.C index c93c874acf..960167b63e 100644 --- a/src/frontends/qt2/QDocumentDialog.C +++ b/src/frontends/qt2/QDocumentDialog.C @@ -9,14 +9,11 @@ */ #include -#include "gettext.h" +#include "qt_helpers.h" #include "ControlDocument.h" #include "QDocument.h" -#ifdef __GNUG__ -#pragma implementation -#endif #include "QDocumentDialog.h" @@ -31,20 +28,17 @@ #include "ui/MarginsModuleBase.h" #include "ui/PreambleModuleBase.h" -#include "QBrowseBox.h" #include "Spacing.h" -#include "support/filetools.h" #include "support/lstrings.h" -#include "Alert.h" #include "lyxrc.h" #include "buffer.h" -#include "lyx_main.h" // for user_lyxdir #include #include #include #include #include +#include #include #include #include @@ -53,276 +47,251 @@ #include "lengthcombo.h" -/* - * Constructs a DocumentDialog which is a child of 'parent', with the - * name 'name' and widget flags set to 'f' - * - * The dialog will by default be modeless, unless you set 'modal' to - * TRUE to construct a modal dialog. - */ -QDocumentDialog::QDocumentDialog( QDocument * form) - : QDocumentDialogBase( 0, 0, false, 0 ), form_(form) +QDocumentDialog::QDocumentDialog(QDocument * form) + : QDocumentDialogBase(0, 0, false, 0), form_(form) { connect(okPB, SIGNAL(clicked()), form, SLOT(slotOK())); connect(applyPB, SIGNAL(clicked()), form, SLOT(slotApply())); - connect(cancelPB, SIGNAL(clicked()), + connect(closePB, SIGNAL(clicked()), form, SLOT(slotClose())); connect(restorePB, SIGNAL(clicked()), form, SLOT(slotRestore())); moduleLB->clear(); - moduleLB->insertItem( _("Layout"), LAYOUT ); - moduleLB->insertItem( _("Packages"), PACKAGES ); - moduleLB->insertItem( _("Paper"), PAPER ); - moduleLB->insertItem( _("Margins"), MARGINS ); - moduleLB->insertItem( _("Language"), LANGUAGE ); - moduleLB->insertItem( _("Bullets"), BULLETS ); - moduleLB->insertItem( _("Numbering"), NUMBERING ); - moduleLB->insertItem( _("Bibliography"), BIBLIOGRAPHY ); - moduleLB->insertItem( _("Preamble"), PREAMBLE ); + moduleLB->insertItem(qt_("Layout"), LAYOUT); + moduleLB->insertItem(qt_("Paper"), PAPER); + moduleLB->insertItem(qt_("Margins"), MARGINS); + moduleLB->insertItem(qt_("Language"), LANGUAGE); + moduleLB->insertItem(qt_("Bullets"), BULLETS); + moduleLB->insertItem(qt_("Numbering"), NUMBERING); + moduleLB->insertItem(qt_("Bibliography"), BIBLIOGRAPHY); + moduleLB->insertItem(qt_("Packages"), PACKAGES); + moduleLB->insertItem(qt_("Preamble"), PREAMBLE); moduleLB->setCurrentItem(LAYOUT); + moduleLB->setMinimumSize(moduleLB->sizeHint()); layoutModule = new ClassModuleBase(this); paperModule = new PaperModuleBase(this); marginsModule = new MarginsModuleBase(this); - packagesModule = new PackagesModuleBase(this); langModule = new LanguageModuleBase(this); bulletsModule = new BulletsModule(this); numberingModule = new NumberingModuleBase(this); biblioModule = new BiblioModuleBase(this); + packagesModule = new PackagesModuleBase(this); preambleModule = new PreambleModuleBase(this); - moduleStack->addWidget(layoutModule,LAYOUT); - moduleStack->addWidget(paperModule,PAPER); - moduleStack->addWidget(marginsModule,MARGINS); - moduleStack->addWidget(packagesModule,PACKAGES); - moduleStack->addWidget(langModule,LANGUAGE); - moduleStack->addWidget(bulletsModule,BULLETS); - moduleStack->addWidget(numberingModule,NUMBERING); - moduleStack->addWidget(biblioModule,BIBLIOGRAPHY); - moduleStack->addWidget(preambleModule,PREAMBLE); + moduleStack->addWidget(layoutModule, LAYOUT); + moduleStack->addWidget(paperModule, PAPER); + moduleStack->addWidget(marginsModule, MARGINS); + moduleStack->addWidget(langModule, LANGUAGE); + moduleStack->addWidget(bulletsModule, BULLETS); + moduleStack->addWidget(numberingModule, NUMBERING); + moduleStack->addWidget(biblioModule, BIBLIOGRAPHY); + moduleStack->addWidget(packagesModule, PACKAGES); + moduleStack->addWidget(preambleModule, PREAMBLE); moduleStack->raiseWidget(LAYOUT); - - //QPixmap image("standard.xpm"); - //bulletsModule->bulletsBB->insertItem(image); - //bulletsModule->bulletsBB->resize(image.width(),image.height()); + // take care of title QFont f = titleL->font(); - f.setWeight( QFont::Bold ); - titleL->setFont( f ); + f.setWeight(QFont::Bold); + titleL->setFont(f); setTitle(LAYOUT); - /* preamble */ - connect( preambleModule->preambleMLE, SIGNAL( textChanged() ), - this , SLOT( change_adaptor() ) ); - /* biblio */ - connect( biblioModule->natbibCB, SIGNAL( toggled(bool) ), - this , SLOT( change_adaptor() ) ); - connect( biblioModule->citeStyleCO, SIGNAL( activated(int) ), - this , SLOT( change_adaptor() ) ); - /* language & quote */ - connect( langModule->singleQuoteRB, SIGNAL( toggled(bool) ), - this , SLOT( change_adaptor() ) ); - connect( langModule->doubleQuoteRB, SIGNAL( toggled(bool) ), - this , SLOT( change_adaptor() ) ); - connect( langModule->languageCO, SIGNAL( activated(int) ), - this , SLOT( change_adaptor() ) ); - connect( langModule->quoteStyleCO, SIGNAL( activated(int) ), - this , SLOT( change_adaptor() ) ); - /* numbering */ - connect( numberingModule->sectionnrDepthSB, - SIGNAL( valueChanged(int) ), - this , SLOT( change_adaptor() ) ); - connect( numberingModule->tocDepthSB, - SIGNAL( valueChanged(int) ), - this , SLOT( change_adaptor() ) ); - /* packages */ - connect( packagesModule->lspacingCO, SIGNAL( activated(int) ), - this , SLOT( change_adaptor() ) ); - connect( packagesModule->lspacingCO, SIGNAL( activated(int) ), - this , SLOT( setLSpacing(int) ) ); - connect( packagesModule->lspacingLE, - SIGNAL( textChanged(const QString&) ), - this , SLOT( change_adaptor() ) ); - connect( packagesModule->encodingCO, SIGNAL( activated(int) ), - this , SLOT( change_adaptor() ) ); - connect( packagesModule->amsCB, SIGNAL( toggled(bool) ), - this , SLOT( change_adaptor() ) ); - connect( packagesModule->psdriverCO, SIGNAL( activated(int) ), - this , SLOT( change_adaptor() ) ); - /* layout */ - connect( layoutModule->classCO, SIGNAL( activated(int) ), - this , SLOT( change_adaptor() ) ); - connect( layoutModule->optionsLE, - SIGNAL( textChanged(const QString&) ), - this , SLOT( change_adaptor() ) ); - connect( layoutModule->pagestyleCO, SIGNAL( activated(int) ), - this , SLOT( change_adaptor() ) ); - connect( layoutModule->fontsCO, SIGNAL( activated(int) ), - this , SLOT( change_adaptor() ) ); - connect( layoutModule->fontsizeCO, SIGNAL( activated(int) ), - this , SLOT( change_adaptor() ) ); - connect( layoutModule->floatPlacementLE, - SIGNAL( textChanged(const QString&) ), - this , SLOT( change_adaptor() ) ); - connect( layoutModule->skipRB, SIGNAL( toggled(bool) ), - this , SLOT( change_adaptor() ) ); - connect( layoutModule->indentRB, SIGNAL( toggled(bool) ), - this , SLOT( change_adaptor() ) ); - connect( layoutModule->skipCO, SIGNAL( activated(int) ), - this , SLOT( change_adaptor() ) ); - connect( layoutModule->skipLE, - SIGNAL( textChanged(const QString&) ), - this , SLOT( change_adaptor() ) ); - connect( layoutModule->skipLengthCO, SIGNAL( activated(int) ), - this , SLOT( change_adaptor() ) ); - - connect( layoutModule->classCO, SIGNAL( activated(int) ), - this , SLOT( classChanged() ) ); - connect( layoutModule->skipCO, SIGNAL( activated(int) ), - this , SLOT( setSkip(int) ) ); - connect( layoutModule->skipRB, SIGNAL( toggled(bool) ), - this , SLOT( enableSkip(bool) ) ); - - /* margins */ - connect( marginsModule->marginCO, SIGNAL( activated(int) ), - this , SLOT( setCustomMargins(int) ) ); - - connect( marginsModule->marginCO, SIGNAL( activated(int) ), - this , SLOT( change_adaptor() ) ); - connect( marginsModule->topLE, SIGNAL( textChanged(const QString&) ), - this , SLOT( change_adaptor() ) ); - connect( marginsModule->topUnit, SIGNAL( activated(int) ), - this , SLOT( change_adaptor() ) ); - connect( marginsModule->bottomLE, SIGNAL( textChanged(const QString&) ), - this , SLOT( change_adaptor() ) ); - connect( marginsModule->bottomUnit, SIGNAL( activated(int) ), - this , SLOT( change_adaptor() ) ); - connect( marginsModule->innerLE, SIGNAL( textChanged(const QString&) ), - this , SLOT( change_adaptor() ) ); - connect( marginsModule->innerUnit, SIGNAL( activated(int) ), - this , SLOT( change_adaptor() ) ); - connect( marginsModule->outerLE, SIGNAL( textChanged(const QString&) ), - this , SLOT( change_adaptor() ) ); - connect( marginsModule->outerUnit, SIGNAL( activated(int) ), - this , SLOT( change_adaptor() ) ); - connect( marginsModule->headheightLE, SIGNAL( textChanged(const QString&) ), - this , SLOT( change_adaptor() ) ); - connect( marginsModule->headheightUnit, SIGNAL( activated(int) ), - this , SLOT( change_adaptor() ) ); - connect( marginsModule->headsepLE, SIGNAL( textChanged(const QString&) ), - this , SLOT( change_adaptor() ) ); - connect( marginsModule->headsepUnit, SIGNAL( activated(int) ), - this , SLOT( change_adaptor() ) ); - connect( marginsModule->footskipLE, SIGNAL( textChanged(const QString&) ), - this , SLOT( change_adaptor() ) ); - connect( marginsModule->footskipUnit, SIGNAL( activated(int) ), - this , SLOT( change_adaptor() ) ); - - /* paper */ - connect( paperModule->papersizeCO, SIGNAL( activated(int) ), - this , SLOT( setMargins(int) ) ); - connect( paperModule->papersizeCO, SIGNAL( activated(int) ), - this , SLOT( setCustomPapersize(int) ) ); - connect( paperModule->papersizeCO, SIGNAL( activated(int) ), - this , SLOT( setCustomPapersize(int) ) ); - - connect( paperModule->papersizeCO, SIGNAL( activated(int) ), - this , SLOT( change_adaptor() ) ); - connect( paperModule->paperheightLE, SIGNAL( textChanged(const QString&) ), - this , SLOT( change_adaptor() ) ); - connect( paperModule->paperwidthLE, SIGNAL( textChanged(const QString&) ), - this , SLOT( change_adaptor() ) ); - connect( paperModule->paperwidthUnitCO, SIGNAL( activated(int) ), - this , SLOT( change_adaptor() ) ); - connect( paperModule->paperheightUnitCO, SIGNAL( activated(int) ), - this , SLOT( change_adaptor() ) ); - connect( paperModule->portraitRB, SIGNAL( toggled(bool) ), - this , SLOT( change_adaptor() ) ); - connect( paperModule->landscapeRB, SIGNAL( toggled(bool) ), - this , SLOT( change_adaptor() ) ); - connect( paperModule->twoColumnCB, SIGNAL( toggled(bool) ), - this , SLOT( change_adaptor() ) ); - connect( paperModule->facingPagesCB, SIGNAL( toggled(bool) ), - this , SLOT( change_adaptor() ) ); - - /* bullets */ - connect( bulletsModule->bullet1LE, SIGNAL( textChanged(const QString&) ), - this , SLOT( change_adaptor() ) ); - connect( bulletsModule->bulletsize1CO, SIGNAL( activated(int) ), - this , SLOT( change_adaptor() ) ); -/* - connect( bulletsModule->levelSP, SIGNAL( valueChanged(int) ), - this , SLOT( setBullet(int) ) ); - connect( bulletsModule->levelSP, SIGNAL( valueChanged(int) ), - this , SLOT( setBulletSize(int) ) ); -*/ + // preamble + connect(preambleModule->preambleMLE, SIGNAL(textChanged()), + this, SLOT(change_adaptor())); + // biblio + connect(biblioModule->natbibCB, SIGNAL(toggled(bool)), + this, SLOT(change_adaptor())); + connect(biblioModule->citeStyleCO, SIGNAL(activated(int)), + this, SLOT(change_adaptor())); + // language & quote + connect(langModule->singleQuoteRB, SIGNAL(toggled(bool)), + this, SLOT(change_adaptor())); + connect(langModule->doubleQuoteRB, SIGNAL(toggled(bool)), + this, SLOT(change_adaptor())); + connect(langModule->languageCO, SIGNAL(activated(int)), + this, SLOT(change_adaptor())); + connect(langModule->defaultencodingCB, SIGNAL(toggled(bool)), + this, SLOT(change_adaptor())); + connect(langModule->encodingCO, SIGNAL(activated(int)), + this, SLOT(change_adaptor())); + connect(langModule->quoteStyleCO, SIGNAL(activated(int)), + this, SLOT(change_adaptor())); + // numbering + connect(numberingModule->sectionnrDepthSB, + SIGNAL(valueChanged(int)), + this, SLOT(change_adaptor())); + connect(numberingModule->tocDepthSB, + SIGNAL(valueChanged(int)), + this, SLOT(change_adaptor())); + // packages + connect(packagesModule->amsCB, SIGNAL(toggled(bool)), + this, SLOT(change_adaptor())); + connect(packagesModule->psdriverCO, SIGNAL(activated(int)), + this, SLOT(change_adaptor())); + // layout + connect(layoutModule->classCO, SIGNAL(activated(int)), + this, SLOT(change_adaptor())); + connect(layoutModule->optionsLE, + SIGNAL(textChanged(const QString&)), + this, SLOT(change_adaptor())); + connect(layoutModule->pagestyleCO, SIGNAL(activated(int)), + this, SLOT(change_adaptor())); + connect(layoutModule->fontsCO, SIGNAL(activated(int)), + this, SLOT(change_adaptor())); + connect(layoutModule->fontsizeCO, SIGNAL(activated(int)), + this, SLOT(change_adaptor())); + connect(layoutModule->lspacingCO, SIGNAL(activated(int)), + this, SLOT(change_adaptor())); + connect(layoutModule->lspacingCO, SIGNAL(activated(int)), + this, SLOT(setLSpacing(int))); + connect(layoutModule->lspacingLE, + SIGNAL(textChanged(const QString&)), + this, SLOT(change_adaptor())); + connect(layoutModule->floatPlacementLE, + SIGNAL(textChanged(const QString&)), + this, SLOT(change_adaptor())); + connect(layoutModule->skipRB, SIGNAL(toggled(bool)), + this, SLOT(change_adaptor())); + connect(layoutModule->indentRB, SIGNAL(toggled(bool)), + this, SLOT(change_adaptor())); + connect(layoutModule->skipCO, SIGNAL(activated(int)), + this, SLOT(change_adaptor())); + connect(layoutModule->skipLE, + SIGNAL(textChanged(const QString&)), + this, SLOT(change_adaptor())); + connect(layoutModule->skipLengthCO, SIGNAL(activated(int)), + this, SLOT(change_adaptor())); + + connect(layoutModule->classCO, SIGNAL(activated(int)), + this, SLOT(classChanged())); + connect(layoutModule->skipCO, SIGNAL(activated(int)), + this, SLOT(setSkip(int))); + connect(layoutModule->skipRB, SIGNAL(toggled(bool)), + this, SLOT(enableSkip(bool))); + + // margins + connect(marginsModule->marginCO, SIGNAL(activated(int)), + this, SLOT(setCustomMargins(int))); + + connect(marginsModule->marginCO, SIGNAL(activated(int)), + this, SLOT(change_adaptor())); + connect(marginsModule->topLE, SIGNAL(textChanged(const QString&)), + this, SLOT(change_adaptor())); + connect(marginsModule->topUnit, SIGNAL(activated(int)), + this, SLOT(change_adaptor())); + connect(marginsModule->bottomLE, SIGNAL(textChanged(const QString&)), + this, SLOT(change_adaptor())); + connect(marginsModule->bottomUnit, SIGNAL(activated(int)), + this, SLOT(change_adaptor())); + connect(marginsModule->innerLE, SIGNAL(textChanged(const QString&)), + this, SLOT(change_adaptor())); + connect(marginsModule->innerUnit, SIGNAL(activated(int)), + this, SLOT(change_adaptor())); + connect(marginsModule->outerLE, SIGNAL(textChanged(const QString&)), + this, SLOT(change_adaptor())); + connect(marginsModule->outerUnit, SIGNAL(activated(int)), + this, SLOT(change_adaptor())); + connect(marginsModule->headheightLE, SIGNAL(textChanged(const QString&)), + this, SLOT(change_adaptor())); + connect(marginsModule->headheightUnit, SIGNAL(activated(int)), + this, SLOT(change_adaptor())); + connect(marginsModule->headsepLE, SIGNAL(textChanged(const QString&)), + this, SLOT(change_adaptor())); + connect(marginsModule->headsepUnit, SIGNAL(activated(int)), + this, SLOT(change_adaptor())); + connect(marginsModule->footskipLE, SIGNAL(textChanged(const QString&)), + this, SLOT(change_adaptor())); + connect(marginsModule->footskipUnit, SIGNAL(activated(int)), + this, SLOT(change_adaptor())); + + // paper + connect(paperModule->papersizeCO, SIGNAL(activated(int)), + this, SLOT(setMargins(int))); + connect(paperModule->papersizeCO, SIGNAL(activated(int)), + this, SLOT(setCustomPapersize(int))); + connect(paperModule->papersizeCO, SIGNAL(activated(int)), + this, SLOT(setCustomPapersize(int))); + connect(paperModule->portraitRB, SIGNAL(toggled(bool)), + this, SLOT(portraitChanged())); + + connect(paperModule->papersizeCO, SIGNAL(activated(int)), + this, SLOT(change_adaptor())); + connect(paperModule->paperheightLE, SIGNAL(textChanged(const QString&)), + this, SLOT(change_adaptor())); + connect(paperModule->paperwidthLE, SIGNAL(textChanged(const QString&)), + this, SLOT(change_adaptor())); + connect(paperModule->paperwidthUnitCO, SIGNAL(activated(int)), + this, SLOT(change_adaptor())); + connect(paperModule->paperheightUnitCO, SIGNAL(activated(int)), + this, SLOT(change_adaptor())); + connect(paperModule->portraitRB, SIGNAL(toggled(bool)), + this, SLOT(change_adaptor())); + connect(paperModule->landscapeRB, SIGNAL(toggled(bool)), + this, SLOT(change_adaptor())); + connect(paperModule->twoColumnCB, SIGNAL(toggled(bool)), + this, SLOT(change_adaptor())); + connect(paperModule->facingPagesCB, SIGNAL(toggled(bool)), + this, SLOT(change_adaptor())); + + // bullets + connect(bulletsModule->bulletsizeCO, SIGNAL(activated(int)), + this, SLOT(change_adaptor())); + connect(bulletsModule->bulletsLV, SIGNAL(selectionChanged()), + this, SLOT(change_adaptor())); } -/* - * Destroys the object and frees any allocated resources - */ QDocumentDialog::~QDocumentDialog() { - // no need to delete child widgets, Qt does it all for us } -/* - * public slot - */ - void QDocumentDialog::setTitle(int item) { switch(item) { case LAYOUT: - titleL->setText(_("Document Style")); - break; - case PACKAGES: - titleL->setText(_("LaTeX Packages")); + titleL->setText(qt_("Document Style")); break; case PAPER: - titleL->setText(_("Papersize and Orientation")); + titleL->setText(qt_("Papersize and Orientation")); break; case MARGINS: - titleL->setText(_("Margins")); + titleL->setText(qt_("Margins")); break; case LANGUAGE: - titleL->setText(_("Language Settings and Quote Style")); + titleL->setText(qt_("Language Settings and Quote Style")); break; case BULLETS: - titleL->setText(_("Bullet Types")); + titleL->setText(qt_("Bullet Types")); break; case NUMBERING: - titleL->setText(_("Numbering")); + titleL->setText(qt_("Numbering")); break; case BIBLIOGRAPHY: - titleL->setText(_("Bibliography Settings")); + titleL->setText(qt_("Bibliography Settings")); + break; + case PACKAGES: + titleL->setText(qt_("LaTeX Packages and Options")); break; case PREAMBLE: - titleL->setText(_("LaTeX Preamble")); + titleL->setText(qt_("LaTeX Preamble")); break; } } -/* - * public slot - */ void QDocumentDialog::saveDefaultClicked() { form_->saveDocDefault(); } -/* - * public slot - */ void QDocumentDialog::useDefaultsClicked() { form_->useClassDefaults(); @@ -344,13 +313,13 @@ void QDocumentDialog::closeEvent(QCloseEvent * e) void QDocumentDialog::setLSpacing(int item) { - packagesModule->lspacingLE->setEnabled(item == 3); + layoutModule->lspacingLE->setEnabled(item == 3); } void QDocumentDialog::setSkip(int item) { - bool enable = (item == 3); + bool const enable = (item == 3); layoutModule->skipLE->setEnabled(enable); layoutModule->skipLengthCO->setEnabled(enable); } @@ -365,20 +334,25 @@ void QDocumentDialog::enableSkip(bool skip) setSkip(layoutModule->skipCO->currentItem()); } +void QDocumentDialog::portraitChanged() +{ + setMargins(paperModule->papersizeCO->currentItem()); +} void QDocumentDialog::setMargins(int papersize) { - QStringList a4only; - QStringList normal; - a4only << _("Small Margins") << _( "Very small Margins") - << _("Very wide Margins "); - normal << _("Default") << _("Custom"); - int olditem = marginsModule->marginCO->currentItem(); marginsModule->marginCO->clear(); - marginsModule->marginCO->insertStringList(normal); - if (papersize==6) { - marginsModule->marginCO->insertStringList(a4only); + marginsModule->marginCO->insertItem(qt_("Default")); + marginsModule->marginCO->insertItem(qt_("Custom")); + bool a4size = (papersize == 6 || papersize == 0 + && lyxrc.default_papersize == BufferParams::PAPER_A4PAPER); + if (a4size && paperModule->portraitRB->isChecked()) { + marginsModule->marginCO->insertItem(qt_("Small margins")); + marginsModule->marginCO->insertItem(qt_("Very small margins")); + marginsModule->marginCO->insertItem(qt_("Very wide margins")); + } else if (olditem > 1) { + olditem = 0; } marginsModule->marginCO->setCurrentItem(olditem); setCustomMargins(olditem); @@ -441,10 +415,10 @@ void QDocumentDialog::updateFontsize(string const & items, string const & sel) for (int n=0; !token(items,'|',n).empty(); ++n) layoutModule->fontsizeCO-> - insertItem(token(items,'|',n).c_str()); + insertItem(toqstr(token(items,'|',n))); for (int n = 0; nfontsizeCO->count(); ++n) { - if (layoutModule->fontsizeCO->text(n).latin1()==sel) { + if (fromqstr(layoutModule->fontsizeCO->text(n)) == sel) { layoutModule->fontsizeCO->setCurrentItem(n); break; } @@ -459,10 +433,10 @@ void QDocumentDialog::updatePagestyle(string const & items, string const & sel) for (int n=0; !token(items,'|',n).empty(); ++n) layoutModule->pagestyleCO-> - insertItem(token(items,'|',n).c_str()); + insertItem(toqstr(token(items,'|',n))); for (int n = 0; npagestyleCO->count(); ++n) { - if (layoutModule->pagestyleCO->text(n).latin1()==sel) { + if (fromqstr(layoutModule->pagestyleCO->text(n))==sel) { layoutModule->pagestyleCO->setCurrentItem(n); break; } @@ -472,23 +446,31 @@ void QDocumentDialog::updatePagestyle(string const & items, string const & sel) void QDocumentDialog::classChanged() { - unsigned int tc = layoutModule->classCO->currentItem(); + ControlDocument & cntrl = form_->controller(); + BufferParams & params = cntrl.params(); - BufferParams & params = form_->controller().params(); - params.textclass = layoutModule->classCO->currentItem(); + lyx::textclass_type const tc = layoutModule->classCO->currentItem(); - if (lyxrc.auto_reset_options) { + if (form_->controller().loadTextclass(tc)) { params.textclass = tc; - params.useClassDefaults(); - form_->update_contents(); - } else { - // update the params which are needed in any case - // (fontsizes, pagestyle) - params.textclass = tc; - updateFontsize(form_->controller().textClass().opt_fontsize(), - params.fontsize); - updatePagestyle(form_->controller().textClass().opt_pagestyle(), - params.pagestyle); + if (lyxrc.auto_reset_options) { + params.useClassDefaults(); + form_->update_contents(); + } else { + updateFontsize(cntrl.textClass().opt_fontsize(), + params.fontsize); + + updatePagestyle(cntrl.textClass().opt_pagestyle(), + params.pagestyle); + } + } else { + for (int n = 0; nclassCO->count(); ++n) { + if (layoutModule->classCO->text(n) == + toqstr(cntrl.textClass().description())) { + layoutModule->classCO->setCurrentItem(n); + break; + } + } } }