Author: spitz
Date: Wed Dec 29 14:50:22 2010
New Revision: 37035
URL: http://www.lyx.org/trac/changeset/37035

Log:
* GuiPrefs.{cpp,h}: 
        - update screen font sizes in dialog after prefs change, since the 
localization of float values might have changed.
          (fixes bug 6771).

Modified:
   lyx-devel/trunk/src/frontends/qt4/GuiPrefs.cpp
   lyx-devel/trunk/src/frontends/qt4/GuiPrefs.h

Modified: lyx-devel/trunk/src/frontends/qt4/GuiPrefs.cpp
==============================================================================
--- lyx-devel/trunk/src/frontends/qt4/GuiPrefs.cpp      Wed Dec 29 12:22:48 
2010        (r37034)
+++ lyx-devel/trunk/src/frontends/qt4/GuiPrefs.cpp      Wed Dec 29 14:50:22 
2010        (r37035)
@@ -1003,6 +1003,18 @@
        selectTypewriter(screenTypewriterCO->currentText());
 
        screenZoomSB->setValue(rc.zoom);
+       updateScreenFontSizes(rc);
+
+       pixmapCacheCB->setChecked(rc.use_pixmap_cache);
+#if defined(Q_WS_X11)
+       pixmapCacheCB->setEnabled(false);
+#endif
+
+}
+
+
+void PrefScreenFonts::updateScreenFontSizes(LyXRC const & rc)
+{
        doubleToWidget(screenTinyED, rc.font_sizes[FONT_SIZE_TINY]);
        doubleToWidget(screenSmallestED, rc.font_sizes[FONT_SIZE_SCRIPT]);
        doubleToWidget(screenSmallerED, rc.font_sizes[FONT_SIZE_FOOTNOTE]);
@@ -1013,12 +1025,6 @@
        doubleToWidget(screenLargestED, rc.font_sizes[FONT_SIZE_LARGEST]);
        doubleToWidget(screenHugeED, rc.font_sizes[FONT_SIZE_HUGE]);
        doubleToWidget(screenHugerED, rc.font_sizes[FONT_SIZE_HUGER]);
-
-       pixmapCacheCB->setChecked(rc.use_pixmap_cache);
-#if defined(Q_WS_X11)
-       pixmapCacheCB->setEnabled(false);
-#endif
-
 }
 
 
@@ -3077,7 +3083,10 @@
        addModule(new PrefUserInterface(this));
        addModule(new PrefEdit(this));
        addModule(new PrefShortcuts(this));
-       addModule(new PrefScreenFonts(this));
+       PrefScreenFonts * screenfonts = new PrefScreenFonts(this);
+       connect(this, SIGNAL(prefsApplied(LyXRC const &)),
+                       screenfonts, SLOT(updateScreenFontSizes(LyXRC const 
&)));
+       addModule(screenfonts);
        addModule(new PrefColors(this));
        addModule(new PrefDisplay(this));
        addModule(new PrefInput(this));
@@ -3185,6 +3194,9 @@
        ostringstream ss;
        rc_.write(ss, true);
        dispatch(FuncRequest(LFUN_LYXRC_APPLY, ss.str()));
+       // issue prefsApplied signal. This will update the
+       // localized screen font sizes.
+       prefsApplied(rc_);
        // FIXME: these need lfuns
        // FIXME UNICODE
        Author const & author = 

Modified: lyx-devel/trunk/src/frontends/qt4/GuiPrefs.h
==============================================================================
--- lyx-devel/trunk/src/frontends/qt4/GuiPrefs.h        Wed Dec 29 12:22:48 
2010        (r37034)
+++ lyx-devel/trunk/src/frontends/qt4/GuiPrefs.h        Wed Dec 29 14:50:22 
2010        (r37035)
@@ -71,6 +71,9 @@
 public Q_SLOTS:
        void change_adaptor();
 
+Q_SIGNALS:
+       void prefsApplied(LyXRC const & rc);
+
 public:
        /// Apply changes
        void applyView();
@@ -240,6 +243,9 @@
        void selectRoman(const QString&);
        void selectSans(const QString&);
        void selectTypewriter(const QString&);
+
+public Q_SLOTS:
+       void updateScreenFontSizes(LyXRC const & rc);
 };
 
 

Reply via email to