summaryrefslogtreecommitdiffstats
path: root/src/corelib/statemachine
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2010-03-25 10:13:32 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2010-03-25 10:13:32 (GMT)
commit03686225036ebfc5cf78e3fcc66f5810a140c7d2 (patch)
treee35bcaf151edb27b5e48fc989c6727039c397f5b /src/corelib/statemachine
parent194013d9db1b3e4ba6f56a864f3b64f523202948 (diff)
parent72599ca45c416f2f0a9654412c14a148ca3d728c (diff)
downloadQt-03686225036ebfc5cf78e3fcc66f5810a140c7d2.zip
Qt-03686225036ebfc5cf78e3fcc66f5810a140c7d2.tar.gz
Qt-03686225036ebfc5cf78e3fcc66f5810a140c7d2.tar.bz2
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-qml into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-qml: (47 commits) Optimize QML "parent" property access Begin dragging PathView up to the level (quality and functionality) of other views. Rename qdeclarativetime -> qmltime Auto-test fix. Build Fix and port to new width and height properties Port Flickable and Flipable to support QGraphicsObject. Protect the QDeclarativeListProperty used in QGraphicsItem with ifdef Fix the build due to new properties in QGraphicsObject. Remove the children property from QDeclarativeItem. Rename qdeclarativetime -> qmltime Update AnchorChanges to use more natural form for setting anchors. Pen is not a creatable type. Begin dragging PathView up to the level (quality and functionality) of other views. Fix error reporting when symbian file copy fails. Stabilize QGraphicsEffect test on X11 QIODevice::read() and QFile::atEnd() performance improvements Clarified pkg_prerules usage documentation. Updated WebKit from /home/shausman/src/webkit/trunk to qtwebkit/qtwebkit-4.6 ( aa40cdb9595eb15a68e7be03322f973aa613a8f9 ) Made it possible to define more than one language using pkg_prerules Symbian QAudioOutput::suspend() was resetting processedUSecs() to zero ...
Diffstat (limited to 'src/corelib/statemachine')
-rw-r--r--src/corelib/statemachine/qstatemachine.cpp11
-rw-r--r--src/corelib/statemachine/qstatemachine_p.h2
2 files changed, 13 insertions, 0 deletions
diff --git a/src/corelib/statemachine/qstatemachine.cpp b/src/corelib/statemachine/qstatemachine.cpp
index bd7e626..9d5c49f 100644
--- a/src/corelib/statemachine/qstatemachine.cpp
+++ b/src/corelib/statemachine/qstatemachine.cpp
@@ -1175,6 +1175,16 @@ void QStateMachinePrivate::removeStartState()
_startState = 0;
}
+void QStateMachinePrivate::clearHistory()
+{
+ Q_Q(QStateMachine);
+ QList<QHistoryState*> historyStates = qFindChildren<QHistoryState*>(q);
+ for (int i = 0; i < historyStates.size(); ++i) {
+ QHistoryState *h = historyStates.at(i);
+ QHistoryStatePrivate::get(h)->configuration.clear();
+ }
+}
+
void QStateMachinePrivate::_q_start()
{
Q_Q(QStateMachine);
@@ -1186,6 +1196,7 @@ void QStateMachinePrivate::_q_start()
internalEventQueue.clear();
qDeleteAll(externalEventQueue);
externalEventQueue.clear();
+ clearHistory();
#ifdef QSTATEMACHINE_DEBUG
qDebug() << q << ": starting";
diff --git a/src/corelib/statemachine/qstatemachine_p.h b/src/corelib/statemachine/qstatemachine_p.h
index 0fead5d..5e1015f 100644
--- a/src/corelib/statemachine/qstatemachine_p.h
+++ b/src/corelib/statemachine/qstatemachine_p.h
@@ -126,6 +126,8 @@ public:
QState *startState();
void removeStartState();
+ void clearHistory();
+
void microstep(QEvent *event, const QList<QAbstractTransition*> &transitionList);
bool isPreempted(const QAbstractState *s, const QSet<QAbstractTransition*> &transitions) const;
QSet<QAbstractTransition*> selectTransitions(QEvent *event) const;