]> git.lyx.org Git - features.git/commitdiff
Set the appropriate quote style when switching the main language
authorJuergen Spitzmueller <spitz@lyx.org>
Sun, 1 Jul 2012 09:27:42 +0000 (11:27 +0200)
committerJuergen Spitzmueller <spitz@lyx.org>
Sun, 1 Jul 2012 09:27:42 +0000 (11:27 +0200)
src/BufferParams.cpp
src/BufferParams.h
src/frontends/qt4/GuiDocument.cpp

index f89f0b4bd75989f4f17d48fe15ddccd4097aaa89..128b9ecc49e1b941b96b224df9d2b8a3f41f288c 100644 (file)
@@ -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;
index dac9a4aef6c4c9d913710cce9aa2b81ec5a7a290..560ccefbcdb4b6cc628059c0601745ee91ff7962 100644 (file)
@@ -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;
index 91838e7c5f0e5c7769bff4db9be6d1e01fb119a8..dd07083197d158f8dafc0ea18788d506be6b18be 100644 (file)
@@ -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_("<<text>>"));
-       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_("<<text>>"), 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();