aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMikhail Svetkin <mikhail.svetkin@qt.io>2019-01-22 14:54:05 +0100
committerMikhail Svetkin <mikhail.svetkin@qt.io>2019-02-28 12:56:10 +0000
commit694438066eb88e53e4070630e6b99d0f552d254d (patch)
treeccc687b88081f13d611a893c77c283774c34c96b
parent05eb8127594f0d40247e8c84a4704277dd12d16e (diff)
qtlite: Fix build the source code with -no-feature-shortcut
Change-Id: I7247659b3c9f4634ff57bce1e55187def604e161 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
-rw-r--r--src/quicktemplates2/qquickabstractbutton.cpp2
-rw-r--r--src/quicktemplates2/qquickaction.cpp34
-rw-r--r--src/quicktemplates2/qquickaction_p.h6
-rw-r--r--src/quicktemplates2/qquickaction_p_p.h8
4 files changed, 43 insertions, 7 deletions
diff --git a/src/quicktemplates2/qquickabstractbutton.cpp b/src/quicktemplates2/qquickabstractbutton.cpp
index c2df6dc2..a2992191 100644
--- a/src/quicktemplates2/qquickabstractbutton.cpp
+++ b/src/quicktemplates2/qquickabstractbutton.cpp
@@ -454,7 +454,9 @@ QQuickAbstractButton::~QQuickAbstractButton()
d->removeImplicitSizeListener(d->indicator);
if (d->group)
d->group->removeButton(this);
+#if QT_CONFIG(shortcut)
d->ungrabShortcut();
+#endif
}
/*!
diff --git a/src/quicktemplates2/qquickaction.cpp b/src/quicktemplates2/qquickaction.cpp
index 6ff3a183..e83fd353 100644
--- a/src/quicktemplates2/qquickaction.cpp
+++ b/src/quicktemplates2/qquickaction.cpp
@@ -113,6 +113,7 @@ QT_BEGIN_NAMESPACE
when \l trigger() is called directly.
*/
+#if QT_CONFIG(shortcut)
static QKeySequence variantToKeySequence(const QVariant &var)
{
if (var.type() == QVariant::Int)
@@ -193,6 +194,7 @@ void QQuickActionPrivate::setShortcut(const QVariant &var)
emit q->shortcutChanged(keySequence);
}
+#endif // QT_CONFIG(shortcut)
void QQuickActionPrivate::setEnabled(bool enable)
{
@@ -202,9 +204,11 @@ void QQuickActionPrivate::setEnabled(bool enable)
enabled = enable;
+#if QT_CONFIG(shortcut)
defaultShortcutEntry->setEnabled(enable);
for (QQuickActionPrivate::ShortcutEntry *entry : qAsConst(shortcutEntries))
entry->setEnabled(enable);
+#endif
emit q->enabledChanged(enable);
}
@@ -236,16 +240,19 @@ void QQuickActionPrivate::registerItem(QQuickItem *item)
if (!watchItem(item))
return;
+#if QT_CONFIG(shortcut)
QQuickActionPrivate::ShortcutEntry *entry = new QQuickActionPrivate::ShortcutEntry(item);
if (item->isVisible())
entry->grab(keySequence, enabled);
shortcutEntries += entry;
updateDefaultShortcutEntry();
+#endif
}
void QQuickActionPrivate::unregisterItem(QQuickItem *item)
{
+#if QT_CONFIG(shortcut)
QQuickActionPrivate::ShortcutEntry *entry = findShortcutEntry(item);
if (!entry || !unwatchItem(item))
return;
@@ -254,10 +261,12 @@ void QQuickActionPrivate::unregisterItem(QQuickItem *item)
delete entry;
updateDefaultShortcutEntry();
+#endif
}
void QQuickActionPrivate::itemVisibilityChanged(QQuickItem *item)
{
+#if QT_CONFIG(shortcut)
QQuickActionPrivate::ShortcutEntry *entry = findShortcutEntry(item);
if (!entry)
return;
@@ -268,6 +277,7 @@ void QQuickActionPrivate::itemVisibilityChanged(QQuickItem *item)
entry->ungrab();
updateDefaultShortcutEntry();
+#endif
}
void QQuickActionPrivate::itemDestroyed(QQuickItem *item)
@@ -275,6 +285,7 @@ void QQuickActionPrivate::itemDestroyed(QQuickItem *item)
unregisterItem(item);
}
+#if QT_CONFIG(shortcut)
bool QQuickActionPrivate::handleShortcutEvent(QObject *object, QShortcutEvent *event)
{
Q_Q(QQuickAction);
@@ -316,12 +327,15 @@ void QQuickActionPrivate::updateDefaultShortcutEntry()
else if (!defaultShortcutEntry->shortcutId())
defaultShortcutEntry->grab(keySequence, enabled);
}
+#endif // QT_CONFIG(shortcut)
QQuickAction::QQuickAction(QObject *parent)
: QObject(*(new QQuickActionPrivate), parent)
{
Q_D(QQuickAction);
+#if QT_CONFIG(shortcut)
d->defaultShortcutEntry = new QQuickActionPrivate::ShortcutEntry(this);
+#endif
}
QQuickAction::~QQuickAction()
@@ -330,11 +344,13 @@ QQuickAction::~QQuickAction()
if (d->group)
d->group->removeAction(this);
+#if QT_CONFIG(shortcut)
for (QQuickActionPrivate::ShortcutEntry *entry : qAsConst(d->shortcutEntries))
d->unwatchItem(qobject_cast<QQuickItem *>(entry->target()));
qDeleteAll(d->shortcutEntries);
delete d->defaultShortcutEntry;
+#endif
}
/*!
@@ -460,6 +476,7 @@ void QQuickAction::setCheckable(bool checkable)
emit checkableChanged(checkable);
}
+#if QT_CONFIG(shortcut)
/*!
\qmlproperty keysequence QtQuick.Controls::Action::shortcut
@@ -486,6 +503,7 @@ void QQuickAction::setShortcut(const QKeySequence &shortcut)
Q_D(QQuickAction);
d->setShortcut(shortcut.toString());
}
+#endif // QT_CONFIG(shortcut)
/*!
\qmlmethod void QtQuick.Controls::Action::toggle(QtObject source = null)
@@ -537,17 +555,21 @@ void QQuickActionPrivate::trigger(QObject* source, bool doToggle)
bool QQuickAction::event(QEvent *event)
{
Q_D(QQuickAction);
- if (event->type() != QEvent::Shortcut)
- return QObject::event(event);
- return d->handleShortcutEvent(this, static_cast<QShortcutEvent *>(event));
+#if QT_CONFIG(shortcut)
+ if (event->type() == QEvent::Shortcut)
+ return d->handleShortcutEvent(this, static_cast<QShortcutEvent *>(event));
+#endif
+ return QObject::event(event);
}
bool QQuickAction::eventFilter(QObject *object, QEvent *event)
{
Q_D(QQuickAction);
- if (event->type() != QEvent::Shortcut)
- return false;
- return d->handleShortcutEvent(object, static_cast<QShortcutEvent *>(event));
+#if QT_CONFIG(shortcut)
+ if (event->type() == QEvent::Shortcut)
+ return d->handleShortcutEvent(object, static_cast<QShortcutEvent *>(event));
+#endif
+ return false;
}
QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickaction_p.h b/src/quicktemplates2/qquickaction_p.h
index ce989bed..cbe0d8fe 100644
--- a/src/quicktemplates2/qquickaction_p.h
+++ b/src/quicktemplates2/qquickaction_p.h
@@ -66,7 +66,9 @@ class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickAction : public QObject
Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled NOTIFY enabledChanged RESET resetEnabled FINAL)
Q_PROPERTY(bool checked READ isChecked WRITE setChecked NOTIFY checkedChanged FINAL)
Q_PROPERTY(bool checkable READ isCheckable WRITE setCheckable NOTIFY checkableChanged FINAL)
+#if QT_CONFIG(shortcut)
Q_PRIVATE_PROPERTY(QQuickAction::d_func(), QVariant shortcut READ shortcut WRITE setShortcut NOTIFY shortcutChanged FINAL)
+#endif
public:
explicit QQuickAction(QObject *parent = nullptr);
@@ -88,8 +90,10 @@ public:
bool isCheckable() const;
void setCheckable(bool checkable);
+#if QT_CONFIG(shortcut)
QKeySequence shortcut() const;
void setShortcut(const QKeySequence &shortcut);
+#endif
public Q_SLOTS:
void toggle(QObject *source = nullptr);
@@ -101,7 +105,9 @@ Q_SIGNALS:
void enabledChanged(bool enabled);
void checkedChanged(bool checked);
void checkableChanged(bool checkable);
+#if QT_CONFIG(shortcut)
void shortcutChanged(const QKeySequence &shortcut);
+#endif
void toggled(QObject *source = nullptr);
void triggered(QObject *source = nullptr);
diff --git a/src/quicktemplates2/qquickaction_p_p.h b/src/quicktemplates2/qquickaction_p_p.h
index 98b0973b..7c70bab1 100644
--- a/src/quicktemplates2/qquickaction_p_p.h
+++ b/src/quicktemplates2/qquickaction_p_p.h
@@ -69,8 +69,10 @@ public:
return action->d_func();
}
+#if QT_CONFIG(shortcut)
QVariant shortcut() const;
void setShortcut(const QVariant &shortcut);
+#endif
void setEnabled(bool enable);
@@ -87,6 +89,7 @@ public:
void trigger(QObject*, bool doToggle);
+#if QT_CONFIG(shortcut)
class ShortcutEntry
{
public:
@@ -108,6 +111,7 @@ public:
ShortcutEntry *findShortcutEntry(QObject *target) const;
void updateDefaultShortcutEntry();
+#endif // QT_CONFIG(shortcut)
bool explicitEnabled = false;
bool enabled = true;
@@ -115,10 +119,12 @@ public:
bool checkable = false;
QString text;
QQuickIcon icon;
- QVariant vshortcut;
QKeySequence keySequence;
+#if QT_CONFIG(shortcut)
+ QVariant vshortcut;
ShortcutEntry *defaultShortcutEntry = nullptr;
QVector<ShortcutEntry *> shortcutEntries;
+#endif
QQuickActionGroup *group = nullptr;
};