changeset 24282:a669809df612 stable

update wrong setting keys accidentally introduced into the settings file * octave-dock-widget.cc (handle_settings): check whether wrong settings keys fixed with cset bda0c5b38bda exist in the settings file and update them if so; * resource-manager.cc (do_update_settings_key): new function for testing existence of wrong settings key and copying it to the new one if necessary; * resource-manager.h (update_settings_key): static wrapper for new function do_update_settings_key
author Torsten <mttl@mailbox.org>
date Sun, 19 Nov 2017 21:15:17 +0100
parents bda0c5b38bda
children 1ad2297f8ece
files libgui/src/octave-dock-widget.cc libgui/src/resource-manager.cc libgui/src/resource-manager.h
diffstat 3 files changed, 37 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/libgui/src/octave-dock-widget.cc	Sun Nov 12 22:10:46 2017 +0100
+++ b/libgui/src/octave-dock-widget.cc	Sun Nov 19 21:15:17 2017 +0100
@@ -430,6 +430,20 @@
   _title_3d
     = settings->value ("DockWidgets/widget_title_3d",50).toInt ();
 
+  // TODO: Until cset bda0c5b38bda, the wrong keys "Dockwidget/..." were used
+  // here. This had no effects in Qt4, but in Qt5. In the following, the four
+  // wrong keys are updated if still present in the settings files. The keys
+  // are also used in the settings dialog, but octave_dock_widget::handle_settings
+  // is already called at program start.
+  // These tests can be removed in a future version of octave
+  resource_manager::update_settings_key ("Dockwidgets/title_bg_color",
+                                         "DockWidgets/title_bg_color");
+  resource_manager::update_settings_key ("Dockwidgets/title_bg_color_active",
+                                         "DockWidgets/title_bg_color_active");
+  resource_manager::update_settings_key ("Dockwidgets/title_fg_color",
+                                         "DockWidgets/title_fg_color");
+  resource_manager::update_settings_key ("Dockwidgets/title_fg_color_active",
+                                         "DockWidgets/title_fg_color_active");
   QColor default_var = QColor (0,0,0);
   _fg_color = settings->value ("DockWidgets/title_fg_color",
                                default_var).value<QColor> ();
--- a/libgui/src/resource-manager.cc	Sun Nov 12 22:10:46 2017 +0100
+++ b/libgui/src/resource-manager.cc	Sun Nov 19 21:15:17 2017 +0100
@@ -256,6 +256,21 @@
 }
 
 bool
+resource_manager::do_update_settings_key (const QString& old_key, const QString& new_key)
+{
+  if (settings->contains (old_key))
+    {
+      QVariant preference = settings->value (old_key);
+      settings->setValue (new_key, preference);
+      settings->remove (old_key);
+      return true;
+    }
+
+  return false;
+}
+
+
+bool
 resource_manager::do_is_first_run (void) const
 {
   return ! QFile::exists (settings_file);
--- a/libgui/src/resource-manager.h	Sun Nov 12 22:10:46 2017 +0100
+++ b/libgui/src/resource-manager.h	Sun Nov 19 21:15:17 2017 +0100
@@ -77,6 +77,12 @@
       instance->do_set_settings (file);
   }
 
+  static bool update_settings_key (const QString& new_key, const QString& old_key)
+  {
+    return instance_ok () ?
+           instance->do_update_settings_key (new_key, old_key) : false;
+  }
+
   static void combo_encoding (QComboBox *combo, QString current = QString ())
   {
     if (instance_ok ())
@@ -138,6 +144,8 @@
 
   void do_set_settings (const QString& file);
 
+  bool do_update_settings_key (const QString& new_key, const QString& old_key);
+
   void do_update_network_settings (void);
 
   bool do_is_first_run (void) const;