From: Juergen Spitzmueller Date: Sun, 1 Jul 2012 09:27:42 +0000 (+0200) Subject: Set the appropriate quote style when switching the main language X-Git-Tag: 2.1.0beta1~1691 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=11f7efe2eb000620ad32c3db594d13cf118b6c27;p=features.git Set the appropriate quote style when switching the main language --- diff --git a/src/BufferParams.cpp b/src/BufferParams.cpp index f89f0b4bd7..128b9ecc49 100644 --- a/src/BufferParams.cpp +++ b/src/BufferParams.cpp @@ -2257,6 +2257,12 @@ Font const BufferParams::getFont() const } +InsetQuotes::QuoteLanguage BufferParams::getQuoteStyle(string const qs) const +{ + return quoteslangtranslator().find(qs); +} + + bool BufferParams::isLatex() const { return documentClass().outputType() == LATEX; diff --git a/src/BufferParams.h b/src/BufferParams.h index dac9a4aef6..560ccefbcd 100644 --- a/src/BufferParams.h +++ b/src/BufferParams.h @@ -200,6 +200,9 @@ public: /// returns the main font for the buffer (document) Font const getFont() const; + /// translate quote style string to enum value + InsetQuotes::QuoteLanguage getQuoteStyle(std::string const qs) const; + /* these are for the PaperLayout */ /// the papersize PAPER_SIZE papersize; diff --git a/src/frontends/qt4/GuiDocument.cpp b/src/frontends/qt4/GuiDocument.cpp index 91838e7c5f..dd07083197 100644 --- a/src/frontends/qt4/GuiDocument.cpp +++ b/src/frontends/qt4/GuiDocument.cpp @@ -1097,12 +1097,18 @@ GuiDocument::GuiDocument(GuiView & lv) encodinglist.sort(); langModule->encodingCO->addItems(encodinglist); - langModule->quoteStyleCO->addItem(qt_("``text''")); - langModule->quoteStyleCO->addItem(qt_("''text''")); - langModule->quoteStyleCO->addItem(qt_(",,text``")); - langModule->quoteStyleCO->addItem(qt_(",,text''")); - langModule->quoteStyleCO->addItem(qt_("<>")); - langModule->quoteStyleCO->addItem(qt_(">>text<<")); + langModule->quoteStyleCO->addItem( + qt_("``text''"),InsetQuotes::EnglishQuotes); + langModule->quoteStyleCO->addItem( + qt_("''text''"), InsetQuotes::SwedishQuotes); + langModule->quoteStyleCO->addItem + (qt_(",,text``"), InsetQuotes::GermanQuotes); + langModule->quoteStyleCO->addItem( + qt_(",,text''"), InsetQuotes::PolishQuotes); + langModule->quoteStyleCO->addItem( + qt_("<>"), InsetQuotes::FrenchQuotes); + langModule->quoteStyleCO->addItem( + qt_(">>text<<"), InsetQuotes::DanishQuotes); langModule->languagePackageCO->addItem( qt_("Default"), toqstr("default")); @@ -1770,6 +1776,12 @@ void GuiDocument::languageChanged(int i) } else fontModule->osFontsCB->setEnabled(true); + + // set appropriate quotation mark style + if (!lang->quoteStyle().empty()) { + langModule->quoteStyleCO->setCurrentIndex( + bp_.getQuoteStyle(lang->quoteStyle())); + } } @@ -2450,28 +2462,8 @@ void GuiDocument::applyView() } } - InsetQuotes::QuoteLanguage lga = InsetQuotes::EnglishQuotes; - switch (langModule->quoteStyleCO->currentIndex()) { - case 0: - lga = InsetQuotes::EnglishQuotes; - break; - case 1: - lga = InsetQuotes::SwedishQuotes; - break; - case 2: - lga = InsetQuotes::GermanQuotes; - break; - case 3: - lga = InsetQuotes::PolishQuotes; - break; - case 4: - lga = InsetQuotes::FrenchQuotes; - break; - case 5: - lga = InsetQuotes::DanishQuotes; - break; - } - bp_.quotes_language = lga; + bp_.quotes_language = (InsetQuotes::QuoteLanguage) langModule->quoteStyleCO->itemData( + langModule->quoteStyleCO->currentIndex()).toInt(); QString const lang = langModule->languageCO->itemData( langModule->languageCO->currentIndex()).toString();