Fix build with Qt4
authorManuel Nickschas <sputnick@quassel-irc.org>
Thu, 4 Feb 2016 21:40:49 +0000 (22:40 +0100)
committerManuel Nickschas <sputnick@quassel-irc.org>
Mon, 8 Feb 2016 21:31:04 +0000 (22:31 +0100)
Qt4 can't serialize lists of things out of the box, in this case
lists of shortcuts. Rather than declaring a new metatype, we just
go back to storing a single shortcut for Qt4 - it's all we internally
support anyway.

src/uisupport/action.cpp

index 216cac8..2758e77 100644 (file)
@@ -99,8 +99,12 @@ QKeySequence Action::shortcut(ShortcutTypes type) const
 {
     Q_ASSERT(type);
     if (type == DefaultShortcut) {
+#if QT_VERSION < 0x050000
+        return property("defaultShortcut").value<QKeySequence>();
+#else
         auto sequence = property("defaultShortcuts").value<QList<QKeySequence>>();
         return sequence.isEmpty() ? QKeySequence() : sequence.first();
+#endif
     }
 
     return shortcuts().isEmpty() ? QKeySequence() : shortcuts().first();
@@ -117,9 +121,13 @@ void Action::setShortcut(const QKeySequence &key, ShortcutTypes type)
 {
     Q_ASSERT(type);
 
-    if (type & DefaultShortcut)
+    if (type & DefaultShortcut) {
+#if QT_VERSION < 0x050000
+        setProperty("defaultShortcut", key);
+#else
         setProperty("defaultShortcuts", QVariant::fromValue(QList<QKeySequence>() << key));
-
+#endif
+    }
     if (type & ActiveShortcut)
         QAction::setShortcut(key);
 }