changeset 19817:2dd6d5bdf11d

avoid warnings about arrays in structure from GCC * shortcut-manager.h (slots::shortcut_t): Provide constructors, destructor, and operator =.
author John W. Eaton <jwe@octave.org>
date Fri, 20 Feb 2015 02:36:03 -0500
parents 98cc7c741c5a
children a3577622952c
files libgui/src/shortcut-manager.h
diffstat 1 files changed, 56 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/libgui/src/shortcut-manager.h	Fri Feb 20 02:06:08 2015 -0500
+++ b/libgui/src/shortcut-manager.h	Fri Feb 20 02:36:03 2015 -0500
@@ -120,13 +120,65 @@
   void shortcut_dialog (int);
   void import_shortcuts (int set, QSettings *settings);
 
-  struct shortcut_t
+  class shortcut_t
   {
+  public:
+
+    shortcut_t (void)
+      : tree_item (0), description (), settings_key (),
+        actual_sc (new QKeySequence[2]), default_sc (new QKeySequence[2])
+    {
+      actual_sc[0] = QKeySequence ();
+      actual_sc[1] = QKeySequence ();
+
+      default_sc[0] = QKeySequence ();
+      default_sc[1] = QKeySequence ();
+    }
+
+    shortcut_t (const shortcut_t& x)
+      : tree_item (x.tree_item), description (x.description),
+        settings_key (x.settings_key), 
+        actual_sc (new QKeySequence[2]), default_sc (new QKeySequence[2])
+    {
+      actual_sc[0] = x.actual_sc[0];
+      actual_sc[1] = x.actual_sc[1];
+
+      default_sc[0] = x.default_sc[0];
+      default_sc[1] = x.default_sc[1];
+    }
+
+    shortcut_t& operator = (const shortcut_t& x)
+    {
+      if (&x != this)
+        {
+          tree_item = x.tree_item;
+          description = x.description;
+          settings_key = x.settings_key;
+
+          actual_sc = new QKeySequence[2];
+          default_sc = new QKeySequence[2];
+
+          actual_sc[0] = x.actual_sc[0];
+          actual_sc[1] = x.actual_sc[1];
+
+          default_sc[0] = x.default_sc[0];
+          default_sc[1] = x.default_sc[1];
+        }
+
+      return *this;
+    }
+
+    ~shortcut_t (void)
+    {
+      delete [] actual_sc;
+      delete [] default_sc;
+    }
+
+    QTreeWidgetItem *tree_item;
     QString description;
     QString settings_key;
-    QKeySequence actual_sc[2];
-    QKeySequence default_sc[2];
-    QTreeWidgetItem *tree_item;
+    QKeySequence *actual_sc;
+    QKeySequence *default_sc;
   };
 
   QList<shortcut_t> _sc;