]> git.lyx.org Git - features.git/commitdiff
Fix part of bug 4836
authorAbdelrazak Younes <younes@lyx.org>
Wed, 7 May 2008 23:33:56 +0000 (23:33 +0000)
committerAbdelrazak Younes <younes@lyx.org>
Wed, 7 May 2008 23:33:56 +0000 (23:33 +0000)
http://bugzilla.lyx.org/show_bug.cgi?id=4836

reset_language was not correctly handled.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@24674 a592a061-630c-0410-9148-cb99ea01b6c8

src/Font.cpp
src/Text2.cpp
src/frontends/qt4/GuiCharacter.cpp

index 12f2f11fe07047fd9cf9f9dde1727586fe07bb4c..76a716da3ac66beff9bf6d24d92fae6b3acf3665 100644 (file)
@@ -146,6 +146,8 @@ void Font::update(Font const & newfont,
                        setLanguage(default_language);
                else
                        setLanguage(document_language);
+       else if (newfont.language() == reset_language)
+               setLanguage(document_language);
        else if (newfont.language() != ignore_language)
                setLanguage(newfont.language());
 }
@@ -642,9 +644,8 @@ int Font::latexWriteEndChanges(odocstream & os, BufferParams const & bparams,
 
 string Font::toString(bool const toggle) const
 {
-       string lang = "ignore";
-       if (language())
-               lang = language()->lang();
+       string const lang = (language() == reset_language)
+               ? "reset" : language()->lang();
 
        ostringstream os;
        os << "family " << bits_.family() << '\n'
@@ -720,10 +721,7 @@ bool Font::fromString(string const & data, bool & toggle)
 
                } else if (token == "language") {
                        string const next = lex.getString();
-                       if (next == "ignore")
-                               setLanguage(ignore_language);
-                       else
-                               setLanguage(languages.getLanguage(next));
+                       setLanguage(languages.getLanguage(next));
 
                } else if (token == "toggleall") {
                        toggle = lex.getBool();
index 1e2a88df5c0117ad70cedccc4914166e2bbc1d94..dba04960533e0ee8a669c1028643b1734952a59e 100644 (file)
@@ -386,8 +386,7 @@ void Text::toggleFree(Cursor & cur, Font const & font, bool toggleall)
 {
        LASSERT(this == cur.text(), /**/);
        // If the mask is completely neutral, tell user
-       if (font.fontInfo() == ignore_font && 
-               (font.language() == 0 || font.language() == ignore_language)) {
+       if (font.fontInfo() == ignore_font && font.language() == ignore_language) {
                // Could only happen with user style
                cur.message(_("No font change defined."));
                return;
index 1fcacd91f9d5c9a80bc417f43db3fb4e96a61cd8..c2c0feedd722992afb1eaeeb82f7972754736c50 100644 (file)
@@ -309,8 +309,9 @@ void GuiCharacter::paramsToDialog(Font const & font)
        miscCO->setCurrentIndex(findPos2nd(bar, getBar(fi)));
        colorCO->setCurrentIndex(findPos2nd(color, fi.color()));
 
-       QString const lang = (font.language() == ignore_language)
-               ? "ignore" : toqstr(font.language()->lang());
+       // reset_language is a null pointer.
+       QString const lang = (font.language() == reset_language)
+               ? "reset" : toqstr(font.language()->lang());
        langCO->setCurrentIndex(findPos2nd(language, lang));
 
        toggleallCB->setChecked(toggleall_);
@@ -336,6 +337,9 @@ void GuiCharacter::applyView()
 
 bool GuiCharacter::initialiseParams(string const &)
 {
+       if (autoapplyCB->isChecked())
+               return true;
+
        FontInfo & fi = font_.fontInfo();
 
        // so that the user can press Ok