Move QGestureEventPrivate's content to the main class
QEvent now checks that the d pointer is unused. Change-Id: Ib0aa97d1692ea55324c4c6f133ffdd5a221f1680 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
This commit is contained in:
parent
d631c31235
commit
f02e1d6d8e
@ -3523,7 +3523,7 @@ bool QApplication::notify(QObject *receiver, QEvent *e)
|
|||||||
ge.t = gestureEvent->t;
|
ge.t = gestureEvent->t;
|
||||||
ge.spont = gestureEvent->spont;
|
ge.spont = gestureEvent->spont;
|
||||||
ge.m_accept = wasAccepted;
|
ge.m_accept = wasAccepted;
|
||||||
ge.d_func()->accepted = gestureEvent->d_func()->accepted;
|
ge.m_accepted = gestureEvent->m_accepted;
|
||||||
res = d->notify_helper(w, &ge);
|
res = d->notify_helper(w, &ge);
|
||||||
gestureEvent->spont = false;
|
gestureEvent->spont = false;
|
||||||
eventAccepted = ge.isAccepted();
|
eventAccepted = ge.isAccepted();
|
||||||
@ -3533,7 +3533,7 @@ bool QApplication::notify(QObject *receiver, QEvent *e)
|
|||||||
// packed into a single QEvent depends on not consuming the event
|
// packed into a single QEvent depends on not consuming the event
|
||||||
if (eventAccepted || ge.isAccepted(g)) {
|
if (eventAccepted || ge.isAccepted(g)) {
|
||||||
// if the gesture was accepted, mark the target widget for it
|
// if the gesture was accepted, mark the target widget for it
|
||||||
gestureEvent->d_func()->targetWidgets[g->gestureType()] = w;
|
gestureEvent->m_targetWidgets[g->gestureType()] = w;
|
||||||
gestureEvent->setAccepted(g, true);
|
gestureEvent->setAccepted(g, true);
|
||||||
} else {
|
} else {
|
||||||
// if the gesture was explicitly ignored by the application,
|
// if the gesture was explicitly ignored by the application,
|
||||||
|
@ -846,9 +846,9 @@ int QTapAndHoldGesturePrivate::Timeout = 700; // in ms
|
|||||||
Creates new QGestureEvent containing a list of \a gestures.
|
Creates new QGestureEvent containing a list of \a gestures.
|
||||||
*/
|
*/
|
||||||
QGestureEvent::QGestureEvent(const QList<QGesture *> &gestures)
|
QGestureEvent::QGestureEvent(const QList<QGesture *> &gestures)
|
||||||
: QEvent(QEvent::Gesture)
|
: QEvent(QEvent::Gesture), m_gestures(gestures), m_widget(0)
|
||||||
|
|
||||||
{
|
{
|
||||||
d = reinterpret_cast<QEventPrivate *>(new QGestureEventPrivate(gestures));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@ -856,7 +856,6 @@ QGestureEvent::QGestureEvent(const QList<QGesture *> &gestures)
|
|||||||
*/
|
*/
|
||||||
QGestureEvent::~QGestureEvent()
|
QGestureEvent::~QGestureEvent()
|
||||||
{
|
{
|
||||||
delete reinterpret_cast<QGestureEventPrivate *>(d);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@ -864,7 +863,7 @@ QGestureEvent::~QGestureEvent()
|
|||||||
*/
|
*/
|
||||||
QList<QGesture *> QGestureEvent::gestures() const
|
QList<QGesture *> QGestureEvent::gestures() const
|
||||||
{
|
{
|
||||||
return d_func()->gestures;
|
return m_gestures;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@ -872,10 +871,9 @@ QList<QGesture *> QGestureEvent::gestures() const
|
|||||||
*/
|
*/
|
||||||
QGesture *QGestureEvent::gesture(Qt::GestureType type) const
|
QGesture *QGestureEvent::gesture(Qt::GestureType type) const
|
||||||
{
|
{
|
||||||
const QGestureEventPrivate *d = d_func();
|
for (int i = 0; i < m_gestures.size(); ++i)
|
||||||
for(int i = 0; i < d->gestures.size(); ++i)
|
if (m_gestures.at(i)->gestureType() == type)
|
||||||
if (d->gestures.at(i)->gestureType() == type)
|
return m_gestures.at(i);
|
||||||
return d->gestures.at(i);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -885,7 +883,7 @@ QGesture *QGestureEvent::gesture(Qt::GestureType type) const
|
|||||||
QList<QGesture *> QGestureEvent::activeGestures() const
|
QList<QGesture *> QGestureEvent::activeGestures() const
|
||||||
{
|
{
|
||||||
QList<QGesture *> gestures;
|
QList<QGesture *> gestures;
|
||||||
foreach (QGesture *gesture, d_func()->gestures) {
|
foreach (QGesture *gesture, m_gestures) {
|
||||||
if (gesture->state() != Qt::GestureCanceled)
|
if (gesture->state() != Qt::GestureCanceled)
|
||||||
gestures.append(gesture);
|
gestures.append(gesture);
|
||||||
}
|
}
|
||||||
@ -898,7 +896,7 @@ QList<QGesture *> QGestureEvent::activeGestures() const
|
|||||||
QList<QGesture *> QGestureEvent::canceledGestures() const
|
QList<QGesture *> QGestureEvent::canceledGestures() const
|
||||||
{
|
{
|
||||||
QList<QGesture *> gestures;
|
QList<QGesture *> gestures;
|
||||||
foreach (QGesture *gesture, d_func()->gestures) {
|
foreach (QGesture *gesture, m_gestures) {
|
||||||
if (gesture->state() == Qt::GestureCanceled)
|
if (gesture->state() == Qt::GestureCanceled)
|
||||||
gestures.append(gesture);
|
gestures.append(gesture);
|
||||||
}
|
}
|
||||||
@ -980,7 +978,7 @@ bool QGestureEvent::isAccepted(QGesture *gesture) const
|
|||||||
void QGestureEvent::setAccepted(Qt::GestureType gestureType, bool value)
|
void QGestureEvent::setAccepted(Qt::GestureType gestureType, bool value)
|
||||||
{
|
{
|
||||||
setAccepted(false);
|
setAccepted(false);
|
||||||
d_func()->accepted[gestureType] = value;
|
m_accepted[gestureType] = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@ -1017,7 +1015,7 @@ void QGestureEvent::ignore(Qt::GestureType gestureType)
|
|||||||
*/
|
*/
|
||||||
bool QGestureEvent::isAccepted(Qt::GestureType gestureType) const
|
bool QGestureEvent::isAccepted(Qt::GestureType gestureType) const
|
||||||
{
|
{
|
||||||
return d_func()->accepted.value(gestureType, true);
|
return m_accepted.value(gestureType, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@ -1027,7 +1025,7 @@ bool QGestureEvent::isAccepted(Qt::GestureType gestureType) const
|
|||||||
*/
|
*/
|
||||||
void QGestureEvent::setWidget(QWidget *widget)
|
void QGestureEvent::setWidget(QWidget *widget)
|
||||||
{
|
{
|
||||||
d_func()->widget = widget;
|
m_widget = widget;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@ -1035,7 +1033,7 @@ void QGestureEvent::setWidget(QWidget *widget)
|
|||||||
*/
|
*/
|
||||||
QWidget *QGestureEvent::widget() const
|
QWidget *QGestureEvent::widget() const
|
||||||
{
|
{
|
||||||
return d_func()->widget;
|
return m_widget;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef QT_NO_GRAPHICSVIEW
|
#ifndef QT_NO_GRAPHICSVIEW
|
||||||
@ -1062,22 +1060,6 @@ QPointF QGestureEvent::mapToGraphicsScene(const QPointF &gesturePoint) const
|
|||||||
}
|
}
|
||||||
#endif //QT_NO_GRAPHICSVIEW
|
#endif //QT_NO_GRAPHICSVIEW
|
||||||
|
|
||||||
/*!
|
|
||||||
\internal
|
|
||||||
*/
|
|
||||||
QGestureEventPrivate *QGestureEvent::d_func()
|
|
||||||
{
|
|
||||||
return reinterpret_cast<QGestureEventPrivate *>(d);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\internal
|
|
||||||
*/
|
|
||||||
const QGestureEventPrivate *QGestureEvent::d_func() const
|
|
||||||
{
|
|
||||||
return reinterpret_cast<const QGestureEventPrivate *>(d);
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef Q_NO_USING_KEYWORD
|
#ifdef Q_NO_USING_KEYWORD
|
||||||
/*!
|
/*!
|
||||||
\fn void QGestureEvent::setAccepted(bool accepted)
|
\fn void QGestureEvent::setAccepted(bool accepted)
|
||||||
|
@ -310,8 +310,10 @@ public:
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QGestureEventPrivate *d_func();
|
QList<QGesture *> m_gestures;
|
||||||
const QGestureEventPrivate *d_func() const;
|
QWidget *m_widget;
|
||||||
|
QMap<Qt::GestureType, bool> m_accepted;
|
||||||
|
QMap<Qt::GestureType, QWidget *> m_targetWidgets;
|
||||||
|
|
||||||
friend class QApplication;
|
friend class QApplication;
|
||||||
friend class QGestureManager;
|
friend class QGestureManager;
|
||||||
|
@ -222,19 +222,6 @@ public:
|
|||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
class QGestureEventPrivate
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
inline QGestureEventPrivate(const QList<QGesture *> &list)
|
|
||||||
: gestures(list), widget(0)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
QList<QGesture *> gestures;
|
|
||||||
QWidget *widget;
|
|
||||||
QMap<Qt::GestureType, bool> accepted;
|
|
||||||
QMap<Qt::GestureType, QWidget *> targetWidgets;
|
|
||||||
};
|
|
||||||
#endif // QT_NO_GESTURES
|
#endif // QT_NO_GESTURES
|
||||||
|
|
||||||
|
|
||||||
|
@ -660,7 +660,7 @@ void QGestureManager::deliverEvents(const QSet<QGesture *> &gestures,
|
|||||||
bool eventAccepted = event.isAccepted();
|
bool eventAccepted = event.isAccepted();
|
||||||
foreach(QGesture *gesture, event.gestures()) {
|
foreach(QGesture *gesture, event.gestures()) {
|
||||||
if (eventAccepted || event.isAccepted(gesture)) {
|
if (eventAccepted || event.isAccepted(gesture)) {
|
||||||
QWidget *w = event.d_func()->targetWidgets.value(gesture->gestureType(), 0);
|
QWidget *w = event.m_targetWidgets.value(gesture->gestureType(), 0);
|
||||||
Q_ASSERT(w);
|
Q_ASSERT(w);
|
||||||
DEBUG() << "override event: gesture was accepted:" << gesture << w;
|
DEBUG() << "override event: gesture was accepted:" << gesture << w;
|
||||||
QList<QGesture *> &gestures = normalStartedGestures[w];
|
QList<QGesture *> &gestures = normalStartedGestures[w];
|
||||||
@ -687,7 +687,7 @@ void QGestureManager::deliverEvents(const QSet<QGesture *> &gestures,
|
|||||||
foreach (QGesture *gesture, event.gestures()) {
|
foreach (QGesture *gesture, event.gestures()) {
|
||||||
if (gesture->state() == Qt::GestureStarted &&
|
if (gesture->state() == Qt::GestureStarted &&
|
||||||
(eventAccepted || event.isAccepted(gesture))) {
|
(eventAccepted || event.isAccepted(gesture))) {
|
||||||
QWidget *w = event.d_func()->targetWidgets.value(gesture->gestureType(), 0);
|
QWidget *w = event.m_targetWidgets.value(gesture->gestureType(), 0);
|
||||||
Q_ASSERT(w);
|
Q_ASSERT(w);
|
||||||
DEBUG() << "started gesture was delivered and accepted by" << w;
|
DEBUG() << "started gesture was delivered and accepted by" << w;
|
||||||
m_gestureTargets[gesture] = w;
|
m_gestureTargets[gesture] = w;
|
||||||
|
Loading…
Reference in New Issue
Block a user