summaryrefslogtreecommitdiffstats
path: root/doc/src/examples/video-qml-paint-rate.qdocinc
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src/examples/video-qml-paint-rate.qdocinc')
-rw-r--r--doc/src/examples/video-qml-paint-rate.qdocinc64
1 files changed, 64 insertions, 0 deletions
diff --git a/doc/src/examples/video-qml-paint-rate.qdocinc b/doc/src/examples/video-qml-paint-rate.qdocinc
new file mode 100644
index 0000000000..2a645d7f23
--- /dev/null
+++ b/doc/src/examples/video-qml-paint-rate.qdocinc
@@ -0,0 +1,64 @@
+The QML painting rate is calculated by first creating a \l{QObject}-derived
+class called PaintEventMonitor, which allows its client to provide a
+\l{QWidget} to be monitored, and which emits a signal when that widget
+is repainted:
+
+\quotefromfile video/snippets/painteventmonitor/painteventmonitor.h
+\skipto class PaintEventMonitor
+\printuntil targetChanged)
+\dots
+\skipto protected
+\printuntil signals:
+\skipto void targetPainted
+\printuntil ;
+\skipto private
+\printuntil };
+
+The signal is generated by installing an event filter on the target \l{QWidget}:
+
+\quotefromfile video/snippets/painteventmonitor/painteventmonitor.cpp
+\skipto PaintEventMonitor::eventFilter
+\printuntil }
+
+A second class, FrequencyMonitor, is used to turn the stream of targetPainted()
+signals into an instantaneous and an averaged frequency:
+
+\quotefromfile video/snippets/frequencymonitor/frequencymonitor.h
+\skipto class FrequencyMonitor : public QObject
+\printuntil Q_OBJECT
+\skipto Q_PROPERTY(qreal instantaneousFrequency
+\printuntil averageFrequencyChanged)
+\skipto public
+\printuntil :
+\dots
+\skipto static void qmlRegisterType
+\printuntil ;
+\skipto public slots
+\printuntil notify();
+\skipto };
+\printline };
+
+The FrequencyMonitor class is exposed to QML like this
+
+\quotefromfile video/snippets/frequencymonitor/frequencymonitordeclarative.cpp
+\skipto FrequencyMonitor::qmlRegisterType
+\printuntil }
+
+and its data is displayed by defining a QML item called FrequencyItem, like this:
+
+\quotefromfile video/snippets/frequencymonitor/qml/frequencymonitor/FrequencyItem.qml
+\skipto import FrequencyMonitor
+\printuntil id: root
+\dots
+\skipto function notify
+\printuntil id: monitor
+\skipto onAverageFrequencyChanged
+\printuntil {
+\skipto instantaneousFrequencyText
+\printuntil /^\}/
+
+The result looks like this:
+
+\image video-qml-paint-rate.png
+
+