changeset 27583:315c35e6037c

use symbolic constants for command widget preferences * QTerminal.cc: include new header file for shortcut preferences; (default_colors, color_names): removed obsolete methods; (notice_settings): replace preferences literals by symbolic constants; * QTerminal.h: remove obsolete methods, reorder enum CursorType matching the order in settings dialog * gui-preferences-all.h: add command window related preferences keys and default values as symbolic constants * gui-preferences-cs.h: add command window related preferences keys and default values as symbolic constants * gui-preferences-global.h: add global cursor blinking preferences constants * gui-preferences-sc.h: new header with shortcut related preferences * history-dock-widget.cc (notice_settings): replace font size literals by symbolic constants * file-editor-tab.cc (notice_settings): use cursor blinking pref. constants * main-window.cc (notice_settings): use cursor blinking pref. constants * module.mk: add new header gui-preferences-sc.h with shortcut preferences * resource-manager.cc (terminal_color_names, terminal_default_colors): remove obsolete methods * resource-manager.h: remove obsolete methods * settings-dialog.cc (settings_dialog, write_changed_settings): replace preferences key and default literals by new symbolic constants (read_terminal_colors, write_terminal_colors): use new arrays of symbolic constants and color names instead of literals * terminal-dock-widget.cc (terminal_dock_widget): use symbolic constants for font size preference key and default value * variable-editor.cc (variable_editor::notice_settings): use symbolic constants for font size preference key and default value
author Torsten Lilge <ttl-octave@mailbox.org>
date Tue, 29 Oct 2019 17:23:08 +0100
parents a1907c3fdef4
children 2ab2e289cf84
files libgui/qterminal/libqterminal/QTerminal.cc libgui/qterminal/libqterminal/QTerminal.h libgui/src/gui-preferences-all.h libgui/src/gui-preferences-cs.h libgui/src/gui-preferences-global.h libgui/src/gui-preferences-sc.h libgui/src/history-dock-widget.cc libgui/src/m-editor/file-editor-tab.cc libgui/src/main-window.cc libgui/src/module.mk libgui/src/resource-manager.cc libgui/src/resource-manager.h libgui/src/settings-dialog.cc libgui/src/terminal-dock-widget.cc libgui/src/variable-editor.cc
diffstat 15 files changed, 166 insertions(+), 135 deletions(-) [+]
line wrap: on
line diff
--- a/libgui/qterminal/libqterminal/QTerminal.cc	Tue Oct 29 08:10:02 2019 -0700
+++ b/libgui/qterminal/libqterminal/QTerminal.cc	Tue Oct 29 17:23:08 2019 +0100
@@ -22,6 +22,7 @@
 */
 
 #include "gui-preferences-cs.h"
+#include "gui-preferences-sc.h"
 #include "gui-preferences-global.h"
 
 #include "QTerminal.h"
@@ -41,38 +42,6 @@
 #endif
 }
 
-QList<QColor>
-QTerminal::default_colors (void)
-{
-  static QList<QColor> colors;
-
-  if (colors.isEmpty ())
-    {
-      colors << QColor(0,0,0)
-             << QColor(255,255,255)
-             << QColor(192,192,192)
-             << QColor(128,128,128);
-    }
-
-  return colors;
-}
-
-QStringList
-QTerminal::color_names (void)
-{
-  static QStringList names;
-
-  if (names.isEmpty ())
-    {
-      names << QObject::tr ("foreground")
-            << QObject::tr ("background")
-            << QObject::tr ("selection")
-            << QObject::tr ("cursor");
-    }
-
-  return names;
-}
-
 // slot for disabling the interrupt action when terminal loses focus
 void
 QTerminal::set_global_shortcuts (bool focus_out)
@@ -230,54 +199,55 @@
   QString default_font = settings->value (global_mono_font.key, global_mono_font.def).toString ();
   term_font.setFamily
     (settings->value (cs_font.key, default_font).toString ());
-  term_font.setPointSize (settings->value ("terminal/fontSize", 10).toInt ());
+  term_font.setPointSize
+    (settings->value (cs_font_size.key, cs_font_size.def).toInt ());
   setTerminalFont (term_font);
 
   QFontMetrics metrics (term_font);
   setMinimumSize (metrics.maxWidth ()*16, metrics.height ()*3);
 
-  QString cursorType
-    = settings->value ("terminal/cursorType", "ibeam").toString ();
+  QString cursor_type
+    = settings->value (cs_cursor.key, cs_cursor.def).toString ();
 
-  bool cursorBlinking;
-  if (settings->contains ("cursor_blinking"))
-    cursorBlinking = settings->value ("cursor_blinking",true).toBool ();
+  bool cursor_blinking;
+  if (settings->contains (global_cursor_blinking.key))
+    cursor_blinking = settings->value (global_cursor_blinking.key,
+                                       global_cursor_blinking.def).toBool ();
   else
-    cursorBlinking = settings->value ("terminal/cursorBlinking",true).toBool ();
+    cursor_blinking = settings->value (cs_cursor_blinking.key,
+                                       cs_cursor_blinking.def).toBool ();
 
-  if (cursorType == "ibeam")
-    setCursorType (QTerminal::IBeamCursor, cursorBlinking);
-  else if (cursorType == "block")
-    setCursorType (QTerminal::BlockCursor, cursorBlinking);
-  else if (cursorType == "underline")
-    setCursorType (QTerminal::UnderlineCursor, cursorBlinking);
+  for (int ct = IBeamCursor; ct <= UnderlineCursor; ct++)
+    {
+      if (cursor_type.toStdString () == cs_cursor_types[ct])
+        {
+          setCursorType ((CursorType) ct, cursor_blinking);
+          break;
+        }
+    }
 
   bool cursorUseForegroundColor
-    = settings->value ("terminal/cursorUseForegroundColor", true).toBool ();
-
-  QList<QColor> colors = default_colors ();
+    = settings->value (cs_cursor_use_fgcol.key, cs_cursor_use_fgcol.def).toBool ();
 
   setForegroundColor
-    (settings->value ("terminal/color_f",
-                      QVariant (colors.at (0))).value<QColor> ());
+    (settings->value (cs_colors[0].key, cs_colors[0].def).value<QColor> ());
 
   setBackgroundColor
-    (settings->value ("terminal/color_b",
-                      QVariant (colors.at (1))).value<QColor> ());
+    (settings->value (cs_colors[1].key, cs_colors[1].def).value<QColor> ());
 
   setSelectionColor
-    (settings->value ("terminal/color_s",
-                      QVariant (colors.at (2))).value<QColor> ());
+    (settings->value (cs_colors[2].key, cs_colors[2].def).value<QColor> ());
 
-  setCursorColor
-    (cursorUseForegroundColor,
-     settings->value ("terminal/color_c",
-                      QVariant (colors.at (3))).value<QColor> ());
-  setScrollBufferSize (settings->value ("terminal/history_buffer",1000).toInt () );
+  setCursorColor (cursorUseForegroundColor,
+     settings->value (cs_colors[3].key, cs_colors[3].def).value<QColor> ());
+
+  setScrollBufferSize (settings->value (cs_hist_buffer.key,
+                                        cs_hist_buffer.def).toInt ());
 
   // check whether Copy shortcut is Ctrl-C
   QKeySequence sc;
-  sc = QKeySequence (settings->value ("shortcuts/main_edit:copy").toString ());
+  sc = QKeySequence (settings->value (sc_main_edit_copy.key,
+                                      sc_main_edit_copy.def).toString ());
 
   // if sc is empty, shortcuts are not yet in the settings (take the default)
   if (sc.isEmpty ())         // QKeySequence::Copy as second argument in
@@ -289,6 +259,6 @@
   has_extra_interrupt (extra_ir_action);
 
   // check whether shortcut Ctrl-D is in use by the main-window
-  bool ctrld = settings->value ("shortcuts/main_ctrld",false).toBool ();
+  bool ctrld = settings->value (sc_main_ctrld.key, sc_main_ctrld.def).toBool ();
   _nop_action->setEnabled (! ctrld);
 }
--- a/libgui/qterminal/libqterminal/QTerminal.h	Tue Oct 29 08:10:02 2019 -0700
+++ b/libgui/qterminal/libqterminal/QTerminal.h	Tue Oct 29 17:23:08 2019 +0100
@@ -45,10 +45,6 @@
 
   static QTerminal *create (QWidget *xparent = nullptr);
 
-  static QList<QColor> default_colors (void);
-
-  static QStringList color_names (void);
-
   virtual ~QTerminal (void) = default;
 
   virtual void setTerminalFont (const QFont& font) = 0;
@@ -66,9 +62,9 @@
 
   enum CursorType
   {
-    UnderlineCursor,
+    IBeamCursor,
     BlockCursor,
-    IBeamCursor
+    UnderlineCursor
   };
 
   virtual void setCursorType (CursorType type, bool blinking)
--- a/libgui/src/gui-preferences-all.h	Tue Oct 29 08:10:02 2019 -0700
+++ b/libgui/src/gui-preferences-all.h	Tue Oct 29 17:23:08 2019 +0100
@@ -1,6 +1,6 @@
 /*
 
-Copyright (C) 2017-2019 Torsten <mttl@mailbox.de>
+Copyright (C) 2017-2019 Torsten Lilge <ttl-octave@mailbox.de>
 
 This file is part of Octave.
 
@@ -30,6 +30,7 @@
 #include "gui-preferences-mw.h"
 #include "gui-preferences-pd.h"
 #include "gui-preferences-ve.h"
+#include "gui-preferences-sc.h"
 #include "gui-preferences-ws.h"
 
 #endif
--- a/libgui/src/gui-preferences-cs.h	Tue Oct 29 08:10:02 2019 -0700
+++ b/libgui/src/gui-preferences-cs.h	Tue Oct 29 17:23:08 2019 +0100
@@ -1,6 +1,6 @@
 /*
 
-Copyright (C) 2017-2019 Torsten <mttl@mailbox.de>
+Copyright (C) 2017-2019 Torsten Lilge <ttl-octave@mailbox.de>
 
 This file is part of Octave.
 
@@ -30,4 +30,41 @@
 const gui_pref
 cs_font ("terminal/fontName", QVariant ());
 
+const gui_pref
+cs_font_size ("terminal/fontSize", QVariant (10));
+
+const std::vector<std::string> cs_cursor_types =
+{
+  "ibeam",
+  "block",
+  "underline"
+};
+
+const gui_pref
+cs_cursor ("terminal/cursorType", QVariant ("ibeam"));
+
+const gui_pref
+cs_cursor_blinking ("terminal/cursorBlinking", QVariant (true));
+
+const gui_pref
+cs_cursor_use_fgcol ("terminal/cursorUseForegroundColor", QVariant (true));
+
+const gui_pref
+cs_hist_buffer ("terminal/history_buffer", QVariant (1000));
+
+const unsigned int cs_colors_count = 4;
+const gui_pref cs_colors[cs_colors_count] =
+{
+  {"terminal/color_f", QVariant (QColor(0,0,0))},
+  {"terminal/color_b", QVariant (QColor(255,255,255))},
+  {"terminal/color_s", QVariant (QColor(192,192,192))},
+  {"terminal/color_c", QVariant (QColor(128,128,128))}
+};
+const QStringList
+cs_color_names (QStringList ()
+             << QT_TRANSLATE_NOOP ("QTerminal::QTerminal", "foreground")
+             << QT_TRANSLATE_NOOP ("QTerminal::QTerminal", "background")
+             << QT_TRANSLATE_NOOP ("QTerminal::QTerminal", "selection")
+             << QT_TRANSLATE_NOOP ("QTerminal::QTerminal", "cursor"));
+
 #endif
--- a/libgui/src/gui-preferences-global.h	Tue Oct 29 08:10:02 2019 -0700
+++ b/libgui/src/gui-preferences-global.h	Tue Oct 29 17:23:08 2019 +0100
@@ -88,4 +88,7 @@
 const gui_pref
 global_use_native_dialogs ("use_native_file_dialogs", QVariant (true));
 
+const gui_pref
+global_cursor_blinking ("cursor_blinking", QVariant (true));
+
 #endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/gui-preferences-sc.h	Tue Oct 29 17:23:08 2019 +0100
@@ -0,0 +1,35 @@
+/*
+
+Copyright (C) 2017-2019 Torsten Lilge <ttl-octave@mailbox.de>
+
+This file is part of Octave.
+
+Octave is free software: you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Octave is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Octave; see the file COPYING.  If not, see
+<https://www.gnu.org/licenses/>.
+
+*/
+
+#if ! defined (octave_gui_preferences_sc_h)
+#define octave_gui_preferences_sc_h 1
+
+#include "gui-preferences.h"
+
+// Console preferences
+
+const gui_pref
+sc_main_edit_copy ("shortcuts/main_edit:copy", QVariant (QKeySequence::Copy));
+
+const gui_pref
+sc_main_ctrld ("shortcuts/main_ctrld", QVariant (false));
+#endif
--- a/libgui/src/history-dock-widget.cc	Tue Oct 29 08:10:02 2019 -0700
+++ b/libgui/src/history-dock-widget.cc	Tue Oct 29 17:23:08 2019 +0100
@@ -352,7 +352,7 @@
     QString default_font = settings->value (global_mono_font.key, global_mono_font.def).toString ();
 
     font.setFamily (settings->value (cs_font.key, default_font).toString ());
-    font.setPointSize (settings->value ("terminal/fontSize", 10).toInt ());
+    font.setPointSize (settings->value (cs_font_size.key, cs_font_size.def).toInt ());
 
     m_history_list_view->setFont (font);
   }
--- a/libgui/src/m-editor/file-editor-tab.cc	Tue Oct 29 08:10:02 2019 -0700
+++ b/libgui/src/m-editor/file-editor-tab.cc	Tue Oct 29 17:23:08 2019 +0100
@@ -2924,10 +2924,12 @@
     // handling is required
     bool cursor_blinking;
 
-    if (settings->contains ("cursor_blinking"))
-      cursor_blinking = settings->value ("cursor_blinking",true).toBool ();
+    if (settings->contains (global_cursor_blinking.key))
+      cursor_blinking = settings->value (global_cursor_blinking.key,
+                                         global_cursor_blinking.def).toBool ();
     else
-      cursor_blinking = settings->value ("terminal/cursorBlinking",true).toBool ();
+      cursor_blinking = settings->value (cs_cursor_blinking.key,
+                                         cs_cursor_blinking.def).toBool ();
 
     if (cursor_blinking)
       m_edit_area->SendScintilla (QsciScintillaBase::SCI_SETCARETPERIOD,500);
--- a/libgui/src/main-window.cc	Tue Oct 29 08:10:02 2019 -0700
+++ b/libgui/src/main-window.cc	Tue Oct 29 17:23:08 2019 +0100
@@ -885,10 +885,12 @@
     //       getting the cursor blink preferences from all OS environments
     bool cursor_blinking;
 
-    if (settings->contains ("cursor_blinking"))
-      cursor_blinking = settings->value ("cursor_blinking",true).toBool ();
+    if (settings->contains (global_cursor_blinking.key))
+      cursor_blinking = settings->value (global_cursor_blinking.key,
+                                         global_cursor_blinking.def).toBool ();
     else
-      cursor_blinking = settings->value ("terminal/cursorBlinking",true).toBool ();
+      cursor_blinking = settings->value (cs_cursor_blinking.key,
+                                         cs_cursor_blinking.def).toBool ();
 
     if (cursor_blinking)
       QApplication::setCursorFlashTime (1000);  // 1000 ms flash time
--- a/libgui/src/module.mk	Tue Oct 29 08:10:02 2019 -0700
+++ b/libgui/src/module.mk	Tue Oct 29 17:23:08 2019 +0100
@@ -193,6 +193,7 @@
   %reldir%/gui-preferences-global.h \
   %reldir%/gui-preferences-mw.h \
   %reldir%/gui-preferences-pd.h \
+  %reldir%/gui-preferences-sc.h \
   %reldir%/gui-preferences-ve.h \
   %reldir%/gui-preferences-ws.h \
   %reldir%/gui-preferences.h \
--- a/libgui/src/resource-manager.cc	Tue Oct 29 08:10:02 2019 -0700
+++ b/libgui/src/resource-manager.cc	Tue Oct 29 17:23:08 2019 +0100
@@ -195,16 +195,6 @@
     return workspace_model::storage_class_default_colors ();
   }
 
-  QStringList resource_manager::terminal_color_names (void)
-  {
-    return QTerminal::color_names ();
-  }
-
-  QList<QColor> resource_manager::terminal_default_colors (void)
-  {
-    return QTerminal::default_colors ();
-  }
-
   QList<QColor> resource_manager::varedit_default_colors(void)
   {
     return variable_editor::default_colors ();
--- a/libgui/src/resource-manager.h	Tue Oct 29 08:10:02 2019 -0700
+++ b/libgui/src/resource-manager.h	Tue Oct 29 17:23:08 2019 +0100
@@ -139,10 +139,6 @@
     static QStringList storage_class_names (void);
     static QList<QColor> storage_class_default_colors (void);
 
-    static QString terminal_color_chars (void) { return "fbsc"; }
-    static QStringList terminal_color_names (void);
-    static QList<QColor> terminal_default_colors (void);
-
     static resource_manager *instance;
 
   public slots:
--- a/libgui/src/settings-dialog.cc	Tue Oct 29 08:10:02 2019 -0700
+++ b/libgui/src/settings-dialog.cc	Tue Oct 29 17:23:08 2019 +0100
@@ -217,15 +217,17 @@
     // Cursor blinking: consider old terminal related setting if not yet set
     // FIXME: This pref. can be deprecated / removed if Qt adds support for
     //       getting the cursor blink preferences from all OS environments
-    if (settings->contains ("cursor_blinking"))
+    if (settings->contains (global_cursor_blinking.key))
       {
         // Preference exists, read its value
-        cb_cursor_blinking->setChecked (settings->value ("cursor_blinking", true).toBool ());
+        cb_cursor_blinking->setChecked (settings->value
+            (global_cursor_blinking.key, global_cursor_blinking.def).toBool ());
       }
     else
       {
         // Pref. does not exist, so take old terminal related pref.
-        cb_cursor_blinking->setChecked (settings->value ("terminal/cursorBlinking", true).toBool ());
+        cb_cursor_blinking->setChecked (settings->value
+                    (cs_cursor_blinking.key, cs_cursor_blinking.def).toBool ());
       }
 
     // prompt on exit
@@ -362,14 +364,14 @@
     // terminal
     QString default_font = settings->value (global_mono_font.key, global_mono_font.def).toString ();
     terminal_fontName->setCurrentFont (QFont (settings->value (cs_font.key, default_font).toString ()));
-    terminal_fontSize->setValue (settings->value ("terminal/fontSize", 10).toInt ());
-    terminal_history_buffer->setValue (settings->value ("terminal/history_buffer", 1000).toInt ());
-    terminal_cursorUseForegroundColor->setChecked (settings->value ("terminal/cursorUseForegroundColor", true).toBool ());
+    terminal_fontSize->setValue (settings->value (cs_font_size.key, cs_font_size.def).toInt ());
+    terminal_history_buffer->setValue (settings->value (cs_hist_buffer.key, cs_hist_buffer.def).toInt ());
+    terminal_cursorUseForegroundColor->setChecked (settings->value (cs_cursor_use_fgcol.key, cs_cursor_use_fgcol.def).toBool ());
     terminal_focus_command->setChecked (settings->value ("terminal/focus_after_command", false).toBool ());
     terminal_print_dbg_location->setChecked (settings->value ("terminal/print_debug_location", false).toBool ());
 
-    QString cursorType
-      = settings->value ("terminal/cursorType", "ibeam").toString ();
+    QString cursor_type
+      = settings->value (cs_cursor.key, cs_cursor.def).toString ();
 
     QStringList items;
     items << QString ("0") << QString ("1") << QString ("2");
@@ -378,12 +380,14 @@
     terminal_cursorType->setItemText (1, tr ("Block Cursor"));
     terminal_cursorType->setItemText (2, tr ("Underline Cursor"));
 
-    if (cursorType == "ibeam")
-      terminal_cursorType->setCurrentIndex (0);
-    else if (cursorType == "block")
-      terminal_cursorType->setCurrentIndex (1);
-    else if (cursorType == "underline")
-      terminal_cursorType->setCurrentIndex (2);
+    for (unsigned int i = 0; i < cs_cursor_types.size (); i++)
+      {
+        if (cursor_type.toStdString () == cs_cursor_types[i])
+        {
+          terminal_cursorType->setCurrentIndex (i);
+          break;
+        }
+      }
 
     // file browser
     connect (sync_octave_directory, SIGNAL (toggled (bool)),
@@ -850,7 +854,7 @@
     settings->setValue (global_use_native_dialogs.key, cb_use_native_file_dialogs->isChecked ());
 
     // cursor blinking
-    settings->setValue ("cursor_blinking", cb_cursor_blinking->isChecked ());
+    settings->setValue (global_cursor_blinking.key, cb_cursor_blinking->isChecked ());
 
     // promp to exit
     settings->setValue ("prompt_to_exit", cb_prompt_to_exit->isChecked ());
@@ -931,7 +935,7 @@
     settings->setValue ("editor/always_reload_changed_files", editor_reload_changed_files->isChecked ());
     settings->setValue (ed_show_dbg_file.key, editor_show_dbg_file->isChecked ());
 
-    settings->setValue ("terminal/fontSize", terminal_fontSize->value ());
+    settings->setValue (cs_font_size.key, terminal_fontSize->value ());
     settings->setValue (cs_font.key, terminal_fontName->currentFont ().family ());
 
     // file browser
@@ -947,20 +951,20 @@
     settings->setValue ("proxyPort", proxyPort->text ());
     settings->setValue ("proxyUserName", proxyUserName->text ());
     settings->setValue ("proxyPassword", proxyPassword->text ());
-    settings->setValue ("terminal/cursorUseForegroundColor", terminal_cursorUseForegroundColor->isChecked ());
+    settings->setValue (cs_cursor_use_fgcol.key, terminal_cursorUseForegroundColor->isChecked ());
     settings->setValue ("terminal/focus_after_command", terminal_focus_command->isChecked ());
     settings->setValue ("terminal/print_debug_location", terminal_print_dbg_location->isChecked ());
-    settings->setValue ("terminal/history_buffer", terminal_history_buffer->value ());
+    settings->setValue (cs_hist_buffer.key, terminal_history_buffer->value ());
 
     // the cursor
-    QString cursorType;
-    switch (terminal_cursorType->currentIndex ())
-      {
-      case 0: cursorType = "ibeam"; break;
-      case 1: cursorType = "block"; break;
-      case 2: cursorType = "underline";  break;
-      }
-    settings->setValue ("terminal/cursorType", cursorType);
+    QString cursor_type;
+    unsigned int cursor_int = terminal_cursorType->currentIndex ();
+    if ((cursor_int > 0) && (cursor_int < cs_cursor_types.size ()))
+      cursor_type = QString (cs_cursor_types[cursor_int].data ());
+    else
+      cursor_type = cs_cursor.def.toString ();
+
+    settings->setValue (cs_cursor.key, cursor_type);
 
 #if defined (HAVE_QSCINTILLA)
     // editor styles: create lexer, get dialog contents, and write settings
@@ -1115,26 +1119,20 @@
 
   void settings_dialog::read_terminal_colors (QSettings *settings)
   {
-
-    QList<QColor> default_colors = resource_manager::terminal_default_colors ();
-    QStringList class_names = resource_manager::terminal_color_names ();
-    QString class_chars = resource_manager::terminal_color_chars ();
-    int nr_of_classes = class_chars.length ();
-
     QGridLayout *style_grid = new QGridLayout ();
-    QVector<QLabel*> description (nr_of_classes);
-    QVector<color_picker*> color (nr_of_classes);
+    QVector<QLabel*> description (cs_colors_count);
+    QVector<color_picker*> color (cs_colors_count);
 
     int column = 0;
     int row = 0;
-    for (int i = 0; i < nr_of_classes; i++)
+    for (unsigned int i = 0; i < cs_colors_count; i++)
       {
-        description[i] = new QLabel ("    " + class_names.at (i));
+        description[i] = new QLabel ("    " + cs_color_names.at (i));
         description[i]->setAlignment (Qt::AlignRight);
-        QVariant default_var = default_colors.at (i);
-        QColor setting_color = settings->value ("terminal/color_" + class_chars.mid (i, 1), default_var).value<QColor> ();
+        QVariant default_var = cs_colors[i].def;
+        QColor setting_color = settings->value (cs_colors[i].key, cs_colors[i].def).value<QColor> ();
         color[i] = new color_picker (setting_color);
-        color[i]->setObjectName ("terminal_color_" + class_chars.mid (i, 1));
+        color[i]->setObjectName (cs_colors[i].key);
         color[i]->setMinimumSize (30, 10);
         style_grid->addWidget (description[i], row, 2*column);
         style_grid->addWidget (color[i], row, 2*column+1);
@@ -1152,14 +1150,13 @@
 
   void settings_dialog::write_terminal_colors (QSettings *settings)
   {
-    QString class_chars = resource_manager::terminal_color_chars ();
     color_picker *color;
 
-    for (int i = 0; i < class_chars.length (); i++)
+    for (int i = 0; i < cs_color_names.size (); i++)
       {
-        color = terminal_colors_box->findChild <color_picker *> ("terminal_color_" + class_chars.mid (i, 1));
+        color = terminal_colors_box->findChild <color_picker *> (cs_colors[i].key);
         if (color)
-          settings->setValue ("terminal/color_" + class_chars.mid (i, 1), color->color ());
+          settings->setValue (cs_colors[i].key, color->color ());
       }
 
     settings->sync ();
--- a/libgui/src/terminal-dock-widget.cc	Tue Oct 29 08:10:02 2019 -0700
+++ b/libgui/src/terminal-dock-widget.cc	Tue Oct 29 17:23:08 2019 +0100
@@ -68,7 +68,8 @@
     QString default_font = settings->value (global_mono_font.key, global_mono_font.def).toString ();
     font.setFamily
       (settings->value (cs_font.key, default_font).toString ());
-    font.setPointSize (settings->value ("terminal/fontSize", 10).toInt ());
+    font.setPointSize
+      (settings->value (cs_font_size.key, cs_font_size.def).toInt ());
 
     QFontMetrics metrics(font);
 
--- a/libgui/src/variable-editor.cc	Tue Oct 29 08:10:02 2019 -0700
+++ b/libgui/src/variable-editor.cc	Tue Oct 29 17:23:08 2019 +0100
@@ -1386,7 +1386,7 @@
     if (m_use_terminal_font)
       {
         font_name = settings->value (cs_font.key, default_font).toString ();
-        font_size = settings->value ("terminal/fontSize", 10).toInt ();
+        font_size = settings->value (cs_font_size.key, cs_font_size.def).toInt ();
       }
     else
       {