Shortcut: add sequenceString property
authorShawn Rutledge <shawn.rutledge@theqtcompany.com>
Fri, 7 Aug 2015 08:52:36 +0000 (10:52 +0200)
committerShawn Rutledge <shawn.rutledge@theqtcompany.com>
Thu, 3 Sep 2015 08:18:20 +0000 (08:18 +0000)
If you set sequence to a StandardKey, then read back the property,
you will get an int, which is not suitable for display.
Now you can use sequenceString for tooltips, preference dialogs
for setting shortcuts, and such.

[ChangeLog][QtQuick] Added Shortcut.sequenceString property to read
back the key sequence as a displayable string

Change-Id: I63ee46f8a2c2da1b1c803282baa894fb1667fe67
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
src/quick/util/qquickshortcut.cpp
src/quick/util/qquickshortcut_p.h
src/quick/util/qquickutilmodule.cpp

index 36c6933af479de4cf64cc6a61dfc5f230051aa84..9f32b6c18034ca845eabbc6bc39c00e8928d63d0 100644 (file)
@@ -133,6 +133,20 @@ void QQuickShortcut::setSequence(const QVariant &sequence)
     emit sequenceChanged();
 }
 
+/*!
+    \qmlproperty string QtQuick::Shortcut::sequenceString
+    \since 5.6
+
+    This property provides the shortcut's key sequence as a string,
+    for display purposes (tooltips, for example).
+
+    \sa sequence
+*/
+QString QQuickShortcut::sequenceString() const
+{
+    return m_shortcut.toString(QKeySequence::NativeText);
+}
+
 /*!
     \qmlproperty bool QtQuick::Shortcut::enabled
 
index e16ac9df209670136d2380f7b1fec8662dd63112..db02f8afae7d680b31dbae5045af3bc76c427170 100644 (file)
@@ -57,6 +57,7 @@ class QQuickShortcut : public QObject, public QQmlParserStatus
     Q_OBJECT
     Q_INTERFACES(QQmlParserStatus)
     Q_PROPERTY(QVariant sequence READ sequence WRITE setSequence NOTIFY sequenceChanged FINAL)
+    Q_PROPERTY(QString sequenceString READ sequenceString NOTIFY sequenceChanged FINAL REVISION 1)
     Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled NOTIFY enabledChanged FINAL)
     Q_PROPERTY(bool autoRepeat READ autoRepeat WRITE setAutoRepeat NOTIFY autoRepeatChanged FINAL)
     Q_PROPERTY(Qt::ShortcutContext context READ context WRITE setContext NOTIFY contextChanged FINAL)
@@ -68,6 +69,8 @@ public:
     QVariant sequence() const;
     void setSequence(const QVariant &sequence);
 
+    Q_REVISION(1) QString sequenceString() const;
+
     bool isEnabled() const;
     void setEnabled(bool enabled);
 
index 4f6e49fa7aedb5852344eec285a8c62b17c17607..0af2343504035bb6a9099d9ce322fdbd7a8beca4 100644 (file)
@@ -114,4 +114,6 @@ void QQuickUtilModule::defineModule()
     qmlRegisterType<QQuickTextMetrics>("QtQuick", 2, 4, "TextMetrics");
 
     qmlRegisterType<QQuickShortcut>("QtQuick", 2, 5, "Shortcut");
+
+    qmlRegisterType<QQuickShortcut,1>("QtQuick", 2, 6, "Shortcut");
 }