diff libgui/src/resource-manager.cc @ 18036:c97ee13f1027 stable

fix build for systems without QFont::Monospace * acinclude.m4 (OCTAVE_CHECK_QFONT_MONOSPACE): New macro. * configure.ac: Use it. * resource-manager.cc (resource_manager::do_reload_settings): Provide fallback for default font family if QFont::Monospace is not available.
author John W. Eaton <jwe@octave.org>
date Mon, 02 Dec 2013 11:29:22 -0500
parents 5d42ffc6850a
children 4197fc428c7d
line wrap: on
line diff
--- a/libgui/src/resource-manager.cc	Sat Nov 30 08:42:24 2013 -0800
+++ b/libgui/src/resource-manager.cc	Mon Dec 02 11:29:22 2013 -0500
@@ -192,18 +192,29 @@
       qt_settings.close ();
 
       // Get the default monospaced font and replace placeholder
-      QFont fixed_font = QFont ();
+#if defined (HAVE_QFONT_MONOSPACE)
+      QFont fixed_font;
       fixed_font.setStyleHint (QFont::Monospace);
-      settings_text.replace("__default_font__",fixed_font.defaultFamily ());
-      settings_text.replace("__default_font_size__","10");
+      QString default_family = fixed_font.defaultFamily ();
+#elif defined (Q_WS_X11) || defined (Q_WS_WIN)
+      QString default_family = "Courier New";
+#elif defined (Q_WS_MAC)
+      QString default_family = "Courier";
+#else
+      QString default_family = "courier";
+#endif
+      settings_text.replace ("__default_font__", default_family);
+      settings_text.replace ("__default_font_size__", "10");
 
       QFile user_settings (settings_file);
-      if (!user_settings.open (QIODevice::WriteOnly))
+
+      if (! user_settings.open (QIODevice::WriteOnly))
         return;
 
       QTextStream out (&user_settings);
+
       out << settings_text;
-      user_settings.flush ();
+
       user_settings.close ();
     }