langModule->languageCO->setModel(language_model);
// Always put the default encoding in the first position.
- // It is special because the displayed text is translated.
langModule->encodingCO->addItem(qt_("LaTeX default"));
+ QStringList encodinglist;
Encodings::const_iterator it = encodings.begin();
Encodings::const_iterator const end = encodings.end();
for (; it != end; ++it)
- langModule->encodingCO->addItem(toqstr(it->latexName()));
+ encodinglist.append(qt_(it->guiName()));
+ encodinglist.sort();
+ langModule->encodingCO->addItems(encodinglist);
langModule->quoteStyleCO->addItem(qt_("``text''"));
langModule->quoteStyleCO->addItem(qt_("''text''"));
this, SLOT(change_adaptor()));
connect(latexModule->layoutPB, SIGNAL(clicked()),
this, SLOT(browseLayout()));
+ connect(latexModule->layoutPB, SIGNAL(clicked()),
+ this, SLOT(change_adaptor()));
connect(latexModule->childDocGB, SIGNAL(clicked()),
this, SLOT(change_adaptor()));
connect(latexModule->childDocLE, SIGNAL(textChanged(const QString &)),
FileName layoutFile = support::makeAbsPath(fromqstr(file),
fromqstr(bufferFilepath()));
+ int const ret = Alert::prompt(_("Local layout file"),
+ _("The layout file you have selected is a local layout\n"
+ "file, not one in the system or user directory. Your\n"
+ "document may not work with this layout if you do not\n"
+ "keep the layout file in the document directory."),
+ 1, 1, _("&Set Layout"), _("&Cancel"));
+ if (ret == 1)
+ return;
+
// load the layout file
LayoutFileList & bcl = LayoutFileList::get();
string classname = layoutFile.onlyFileName();
- LayoutFileIndex name = bcl.addLayoutFile(
+ // this will update an existing layout if that layout has been loaded before.
+ LayoutFileIndex name = bcl.addLocalLayout(
classname.substr(0, classname.size() - 7),
- layoutFile.onlyPath().absFilename(),
- LayoutFileList::Local);
+ layoutFile.onlyPath().absFilename());
if (name.empty()) {
Alert::error(_("Error"),
latexModule->classCO->setCurrentIndex(0);
} else
latexModule->classCO->setCurrentIndex(idx);
+
classChanged();
}
if (idx < 0)
return;
string const classname = classes_model_.getIDString(idx);
- // check if this is a local layout file
- if (prefixIs(classname, LayoutFileList::localPrefix)) {
- int const ret = Alert::prompt(_("Local layout file"),
- _("The layout file you have selected is a local layout\n"
- "file, not one in the system or user directory. Your\n"
- "document may not work with this layout if you do not\n"
- "keep the layout file in the same directory."),
- 1, 1, _("&Set Layout"), _("&Cancel"));
- if (ret == 1) {
- // try to reset the layout combo
- setLayoutComboByIDString(bp_.baseClassID());
- return;
- }
- }
+
// FIXME Note that by doing things this way, we load the TextClass
// as soon as it is selected. So, if you use the scroll wheel when
// sitting on the combo box, we'll load a lot of TextClass objects
bp_.useClassDefaults();
paramsToDialog(bp_);
}
+ // FIXME There's a little bug here connected with auto_reset, namely,
+ // that, if the preceding is skipped and the user has changed the
+ // modules before changing the class, those changes will be lost on
+ // update. But maybe that's what we want?
+ updateSelectedModules();
}
int i = langModule->encodingCO->currentIndex();
if (i == 0)
params.inputenc = "default";
- else
- params.inputenc =
- fromqstr(langModule->encodingCO->currentText());
+ else {
+ QString const enc_gui =
+ langModule->encodingCO->currentText();
+ Encodings::const_iterator it = encodings.begin();
+ Encodings::const_iterator const end = encodings.end();
+ bool found = false;
+ for (; it != end; ++it) {
+ if (qt_(it->guiName()) == enc_gui) {
+ params.inputenc = it->latexName();
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ // should not happen
+ lyxerr << "GuiDocument::apply: Unknown encoding! Resetting to default" << endl;
+ params.inputenc = "default";
+ }
+ }
}
InsetQuotes::QuoteLanguage lga = InsetQuotes::EnglishQuotes;
if (params.inputenc == "default") {
langModule->encodingCO->setCurrentIndex(0);
} else {
+ string enc_gui;
+ Encodings::const_iterator it = encodings.begin();
+ Encodings::const_iterator const end = encodings.end();
+ for (; it != end; ++it) {
+ if (it->latexName() == params.inputenc) {
+ enc_gui = it->guiName();
+ break;
+ }
+ }
int const i = langModule->encodingCO->findText(
- toqstr(params.inputenc));
+ qt_(enc_gui));
if (i >= 0)
langModule->encodingCO->setCurrentIndex(i);
else