diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2010-10-30 16:06:30 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2010-10-30 16:06:30 (GMT) |
commit | 4a6386b0b75f97c6d53efbeb5cd51fb4247c4c11 (patch) | |
tree | f19b0091967ea0211f45ffe23838fff40dbc9ea6 | |
parent | 967afc717ffd411e22ce94de77cf54284815b27e (diff) | |
parent | e8c01ab0e5fb6134617a69d88ed0cbce24a33da5 (diff) | |
download | Qt-4a6386b0b75f97c6d53efbeb5cd51fb4247c4c11.zip Qt-4a6386b0b75f97c6d53efbeb5cd51fb4247c4c11.tar.gz Qt-4a6386b0b75f97c6d53efbeb5cd51fb4247c4c11.tar.bz2 |
Merge branch 4.7 into qt-master-from-4.7
104 files changed, 20740 insertions, 566 deletions
diff --git a/demos/declarative/samegame/SamegameCore/Button.qml b/demos/declarative/samegame/SamegameCore/Button.qml index 7fb7b65..140b196 100644 --- a/demos/declarative/samegame/SamegameCore/Button.qml +++ b/demos/declarative/samegame/SamegameCore/Button.qml @@ -48,7 +48,7 @@ Rectangle { signal clicked - width: buttonLabel.width + 20; height: buttonLabel.height + 6 + width: buttonLabel.width + 20; height: buttonLabel.height + 20 smooth: true border { width: 1; color: Qt.darker(activePalette.button) } radius: 8 @@ -70,6 +70,6 @@ Rectangle { MouseArea { id: mouseArea; anchors.fill: parent; onClicked: container.clicked() } Text { - id: buttonLabel; text: container.text; anchors.centerIn: container; color: activePalette.buttonText + id: buttonLabel; text: container.text; anchors.centerIn: container; color: activePalette.buttonText; font.pixelSize: 24 } } diff --git a/demos/declarative/samegame/samegame.qml b/demos/declarative/samegame/samegame.qml index f66c40e..b66c5a6 100644 --- a/demos/declarative/samegame/samegame.qml +++ b/demos/declarative/samegame/samegame.qml @@ -133,7 +133,7 @@ Rectangle { Rectangle { id: toolBar - width: parent.width; height: 32 + width: parent.width; height: 58 color: activePalette.window anchors.bottom: screen.bottom @@ -156,6 +156,7 @@ Rectangle { anchors { right: parent.right; rightMargin: 3; verticalCenter: parent.verticalCenter } text: "Score: " + gameCanvas.score font.bold: true + font.pixelSize: 24 color: activePalette.windowText } } diff --git a/demos/spectrum/app/engine.cpp b/demos/spectrum/app/engine.cpp index 119a0e3..cd847fe 100644 --- a/demos/spectrum/app/engine.cpp +++ b/demos/spectrum/app/engine.cpp @@ -85,6 +85,7 @@ Engine::Engine(QObject *parent) , m_state(QAudio::StoppedState) , m_generateTone(false) , m_file(0) + , m_analysisFile(0) , m_availableAudioInputDevices (QAudioDeviceInfo::availableDevices(QAudio::AudioInput)) , m_audioInputDevice(QAudioDeviceInfo::defaultInputDevice()) @@ -96,15 +97,19 @@ Engine::Engine(QObject *parent) , m_audioOutputDevice(QAudioDeviceInfo::defaultOutputDevice()) , m_audioOutput(0) , m_playPosition(0) + , m_bufferPosition(0) + , m_bufferLength(0) , m_dataLength(0) + , m_levelBufferLength(0) , m_rmsLevel(0.0) , m_peakLevel(0.0) - , m_spectrumLengthBytes(0) + , m_spectrumBufferLength(0) , m_spectrumAnalyser() , m_spectrumPosition(0) , m_count(0) { qRegisterMetaType<FrequencySpectrum>("FrequencySpectrum"); + qRegisterMetaType<WindowFunction>("WindowFunction"); CHECKED_CONNECT(&m_spectrumAnalyser, SIGNAL(spectrumChanged(FrequencySpectrum)), this, @@ -132,34 +137,33 @@ Engine::~Engine() bool Engine::loadFile(const QString &fileName) { + reset(); bool result = false; - m_generateTone = false; - - Q_ASSERT(!fileName.isEmpty()); + Q_ASSERT(!m_generateTone); Q_ASSERT(!m_file); - m_file = new QFile(fileName, this); - m_file->setFileName(fileName); - Q_ASSERT(m_file->exists()); - if (m_file->open(QFile::ReadOnly)) { - m_wavFile.readHeader(*m_file); - if (isPCMS16LE(m_wavFile.format())) { + Q_ASSERT(!fileName.isEmpty()); + m_file = new WavFile(this); + if (m_file->open(fileName)) { + if (isPCMS16LE(m_file->fileFormat())) { result = initialize(); } else { emit errorMessage(tr("Audio format not supported"), - formatToString(m_wavFile.format())); + formatToString(m_file->fileFormat())); } } else { emit errorMessage(tr("Could not open file"), fileName); } - - delete m_file; - m_file = 0; - + if (result) { + m_analysisFile = new WavFile(this); + m_analysisFile->open(fileName); + } return result; } bool Engine::generateTone(const Tone &tone) { + reset(); + Q_ASSERT(!m_generateTone); Q_ASSERT(!m_file); m_generateTone = true; m_tone = tone; @@ -172,6 +176,7 @@ bool Engine::generateTone(const Tone &tone) bool Engine::generateSweptTone(qreal amplitude) { + Q_ASSERT(!m_generateTone); Q_ASSERT(!m_file); m_generateTone = true; m_tone.startFreq = 1; @@ -185,41 +190,18 @@ bool Engine::generateSweptTone(qreal amplitude) bool Engine::initializeRecord() { + reset(); ENGINE_DEBUG << "Engine::initializeRecord"; + Q_ASSERT(!m_generateTone); Q_ASSERT(!m_file); m_generateTone = false; m_tone = SweptTone(); return initialize(); } -qint64 Engine::bufferDuration() const -{ - return BufferDurationUs; -} - -qint64 Engine::dataDuration() const +qint64 Engine::bufferLength() const { - qint64 result = 0; - if (QAudioFormat() != m_format) - result = audioDuration(m_format, m_dataLength); - return result; -} - -qint64 Engine::audioBufferLength() const -{ - qint64 length = 0; - if (QAudio::ActiveState == m_state || QAudio::IdleState == m_state) { - Q_ASSERT(QAudioFormat() != m_format); - switch (m_mode) { - case QAudio::AudioInput: - length = m_audioInput->bufferSize(); - break; - case QAudio::AudioOutput: - length = m_audioOutput->bufferSize(); - break; - } - } - return length; + return m_file ? m_file->size() : m_bufferLength; } void Engine::setWindowFunction(WindowFunction type) @@ -252,7 +234,7 @@ void Engine::startRecording() this, SLOT(audioNotify())); m_count = 0; m_dataLength = 0; - emit dataDurationChanged(0); + emit dataLengthChanged(0); m_audioInputIODevice = m_audioInput->start(); CHECKED_CONNECT(m_audioInputIODevice, SIGNAL(readyRead()), this, SLOT(audioDataReady())); @@ -275,7 +257,6 @@ void Engine::startPlayback() } else { m_spectrumAnalyser.cancelCalculation(); spectrumChanged(0, 0, FrequencySpectrum()); - setPlayPosition(0, true); stopRecording(); m_mode = QAudio::AudioOutput; @@ -284,10 +265,17 @@ void Engine::startPlayback() CHECKED_CONNECT(m_audioOutput, SIGNAL(notify()), this, SLOT(audioNotify())); m_count = 0; - m_audioOutputIODevice.close(); - m_audioOutputIODevice.setBuffer(&m_buffer); - m_audioOutputIODevice.open(QIODevice::ReadOnly); - m_audioOutput->start(&m_audioOutputIODevice); + if (m_file) { + m_file->seek(0); + m_bufferPosition = 0; + m_dataLength = 0; + m_audioOutput->start(m_file); + } else { + m_audioOutputIODevice.close(); + m_audioOutputIODevice.setBuffer(&m_buffer); + m_audioOutputIODevice.open(QIODevice::ReadOnly); + m_audioOutput->start(&m_audioOutputIODevice); + } } } } @@ -332,40 +320,55 @@ void Engine::audioNotify() { switch (m_mode) { case QAudio::AudioInput: { - const qint64 recordPosition = - qMin(BufferDurationUs, m_audioInput->processedUSecs()); + const qint64 recordPosition = qMin(m_bufferLength, audioLength(m_format, m_audioInput->processedUSecs())); setRecordPosition(recordPosition); - - // Calculate level of most recently captured data - qint64 levelLength = audioLength(m_format, LevelWindowUs); - levelLength = qMin(m_dataLength, levelLength); - const qint64 levelPosition = m_dataLength - levelLength; - calculateLevel(levelPosition, levelLength); - - // Calculate spectrum of most recently captured data - if (m_dataLength >= m_spectrumLengthBytes) { - const qint64 spectrumPosition = m_dataLength - m_spectrumLengthBytes; + const qint64 levelPosition = m_dataLength - m_levelBufferLength; + if (levelPosition >= 0) + calculateLevel(levelPosition, m_levelBufferLength); + if (m_dataLength >= m_spectrumBufferLength) { + const qint64 spectrumPosition = m_dataLength - m_spectrumBufferLength; calculateSpectrum(spectrumPosition); } + emit bufferChanged(0, m_dataLength, m_buffer); } break; case QAudio::AudioOutput: { - const qint64 playPosition = - qMin(dataDuration(), m_audioOutput->processedUSecs()); - setPlayPosition(playPosition); - - qint64 analysisPosition = audioLength(m_format, playPosition); - - // Calculate level of data starting at current playback position - const qint64 levelLength = audioLength(m_format, LevelWindowUs); - if (analysisPosition + levelLength < m_dataLength) - calculateLevel(analysisPosition, levelLength); - - if (analysisPosition + m_spectrumLengthBytes < m_dataLength) - calculateSpectrum(analysisPosition); - - if (dataDuration() == playPosition) - stopPlayback(); + const qint64 playPosition = audioLength(m_format, m_audioOutput->processedUSecs()); + setPlayPosition(qMin(bufferLength(), playPosition)); + const qint64 levelPosition = playPosition - m_levelBufferLength; + const qint64 spectrumPosition = playPosition - m_spectrumBufferLength; + if (m_file) { + if (levelPosition > m_bufferPosition || + spectrumPosition > m_bufferPosition || + qMax(m_levelBufferLength, m_spectrumBufferLength) > m_dataLength) { + m_bufferPosition = 0; + m_dataLength = 0; + // Data needs to be read into m_buffer in order to be analysed + const qint64 readPos = qMax(qint64(0), qMin(levelPosition, spectrumPosition)); + const qint64 readEnd = qMin(m_analysisFile->size(), qMax(levelPosition + m_levelBufferLength, spectrumPosition + m_spectrumBufferLength)); + const qint64 readLen = readEnd - readPos + audioLength(m_format, WaveformWindowDuration); + qDebug() << "Engine::audioNotify [1]" + << "analysisFileSize" << m_analysisFile->size() + << "readPos" << readPos + << "readLen" << readLen; + if (m_analysisFile->seek(readPos + m_analysisFile->headerLength())) { + m_buffer.resize(readLen); + m_bufferPosition = readPos; + m_dataLength = m_analysisFile->read(m_buffer.data(), readLen); + qDebug() << "Engine::audioNotify [2]" << "bufferPosition" << m_bufferPosition << "dataLength" << m_dataLength; + } else { + qDebug() << "Engine::audioNotify [2]" << "file seek error"; + } + emit bufferChanged(m_bufferPosition, m_dataLength, m_buffer); + } + } else { + if (playPosition >= m_dataLength) + stopPlayback(); + } + if (levelPosition >= 0 && levelPosition + m_levelBufferLength < m_bufferPosition + m_dataLength) + calculateLevel(levelPosition, m_levelBufferLength); + if (spectrumPosition >= 0 && spectrumPosition + m_spectrumBufferLength < m_bufferPosition + m_dataLength) + calculateSpectrum(spectrumPosition); } break; } @@ -376,27 +379,32 @@ void Engine::audioStateChanged(QAudio::State state) ENGINE_DEBUG << "Engine::audioStateChanged from" << m_state << "to" << state; - if (QAudio::StoppedState == state) { - // Check error - QAudio::Error error = QAudio::NoError; - switch (m_mode) { - case QAudio::AudioInput: - error = m_audioInput->error(); - break; - case QAudio::AudioOutput: - error = m_audioOutput->error(); - break; - } - if (QAudio::NoError != error) { - reset(); - return; + if (QAudio::IdleState == state && m_file && m_file->pos() == m_file->size()) { + stopPlayback(); + } else { + if (QAudio::StoppedState == state) { + // Check error + QAudio::Error error = QAudio::NoError; + switch (m_mode) { + case QAudio::AudioInput: + error = m_audioInput->error(); + break; + case QAudio::AudioOutput: + error = m_audioOutput->error(); + break; + } + if (QAudio::NoError != error) { + reset(); + return; + } } + setState(state); } - setState(state); } void Engine::audioDataReady() { + Q_ASSERT(0 == m_bufferPosition); const qint64 bytesReady = m_audioInput->bytesReady(); const qint64 bytesSpace = m_buffer.size() - m_dataLength; const qint64 bytesToRead = qMin(bytesReady, bytesSpace); @@ -407,9 +415,7 @@ void Engine::audioDataReady() if (bytesRead) { m_dataLength += bytesRead; - - const qint64 duration = audioDuration(m_format, m_dataLength); - emit dataDurationChanged(duration); + emit dataLengthChanged(dataLength()); } if (m_buffer.size() == m_dataLength) @@ -419,9 +425,7 @@ void Engine::audioDataReady() void Engine::spectrumChanged(const FrequencySpectrum &spectrum) { ENGINE_DEBUG << "Engine::spectrumChanged" << "pos" << m_spectrumPosition; - const qint64 positionUs = audioDuration(m_format, m_spectrumPosition); - const qint64 lengthUs = audioDuration(m_format, m_spectrumLengthBytes); - emit spectrumChanged(positionUs, lengthUs, spectrum); + emit spectrumChanged(m_spectrumPosition, m_spectrumBufferLength, spectrum); } @@ -429,12 +433,8 @@ void Engine::spectrumChanged(const FrequencySpectrum &spectrum) // Private functions //----------------------------------------------------------------------------- -void Engine::reset() +void Engine::resetAudioDevices() { - stopRecording(); - stopPlayback(); - setState(QAudio::AudioInput, QAudio::StoppedState); - setFormat(QAudioFormat()); delete m_audioInput; m_audioInput = 0; m_audioInputIODevice = 0; @@ -442,55 +442,71 @@ void Engine::reset() delete m_audioOutput; m_audioOutput = 0; setPlayPosition(0); - m_buffer.clear(); - m_dataLength = 0; m_spectrumPosition = 0; - emit dataDurationChanged(0); setLevel(0.0, 0.0, 0); } +void Engine::reset() +{ + stopRecording(); + stopPlayback(); + setState(QAudio::AudioInput, QAudio::StoppedState); + setFormat(QAudioFormat()); + m_generateTone = false; + delete m_file; + m_file = 0; + delete m_analysisFile; + m_analysisFile = 0; + m_buffer.clear(); + m_bufferPosition = 0; + m_bufferLength = 0; + m_dataLength = 0; + emit dataLengthChanged(0); + resetAudioDevices(); +} + bool Engine::initialize() { bool result = false; - reset(); + QAudioFormat format = m_format; if (selectFormat()) { - const qint64 bufferLength = audioLength(m_format, BufferDurationUs); - m_buffer.resize(bufferLength); - m_buffer.fill(0); - emit bufferDurationChanged(BufferDurationUs); - - if (m_generateTone) { - if (0 == m_tone.endFreq) { - const qreal nyquist = nyquistFrequency(m_format); - m_tone.endFreq = qMin(qreal(SpectrumHighFreq), nyquist); - } - - // Call function defined in utils.h, at global scope - ::generateTone(m_tone, m_format, m_buffer); - m_dataLength = m_buffer.size(); - emit dataDurationChanged(bufferDuration()); - setRecordPosition(bufferDuration()); - result = true; - } else if (m_file) { - const qint64 length = m_wavFile.readData(*m_file, m_buffer, m_format); - if (length) { - m_dataLength = length; - emit dataDurationChanged(dataDuration()); - setRecordPosition(dataDuration()); + if (m_format != format) { + resetAudioDevices(); + if (m_file) { + emit bufferLengthChanged(bufferLength()); + emit dataLengthChanged(dataLength()); + emit bufferChanged(0, 0, m_buffer); + setRecordPosition(bufferLength()); result = true; + } else { + m_bufferLength = audioLength(m_format, BufferDurationUs); + m_buffer.resize(m_bufferLength); + m_buffer.fill(0); + emit bufferLengthChanged(bufferLength()); + if (m_generateTone) { + if (0 == m_tone.endFreq) { + const qreal nyquist = nyquistFrequency(m_format); + m_tone.endFreq = qMin(qreal(SpectrumHighFreq), nyquist); + } + // Call function defined in utils.h, at global scope + ::generateTone(m_tone, m_format, m_buffer); + m_dataLength = m_bufferLength; + emit dataLengthChanged(dataLength()); + emit bufferChanged(0, m_dataLength, m_buffer); + setRecordPosition(m_bufferLength); + result = true; + } else { + emit bufferChanged(0, 0, m_buffer); + m_audioInput = new QAudioInput(m_audioInputDevice, m_format, this); + m_audioInput->setNotifyInterval(NotifyIntervalMs); + result = true; + } } - } else { - m_audioInput = new QAudioInput(m_audioInputDevice, m_format, this); - m_audioInput->setNotifyInterval(NotifyIntervalMs); - result = true; + m_audioOutput = new QAudioOutput(m_audioOutputDevice, m_format, this); + m_audioOutput->setNotifyInterval(NotifyIntervalMs); } - - m_audioOutput = new QAudioOutput(m_audioOutputDevice, m_format, this); - m_audioOutput->setNotifyInterval(NotifyIntervalMs); - m_spectrumLengthBytes = SpectrumLengthSamples * - (m_format.sampleSize() / 8) * m_format.channels(); } else { if (m_file) emit errorMessage(tr("Audio format not supported"), @@ -501,6 +517,8 @@ bool Engine::initialize() emit errorMessage(tr("No common input / output format found"), ""); } + ENGINE_DEBUG << "Engine::initialize" << "m_bufferLength" << m_bufferLength; + ENGINE_DEBUG << "Engine::initialize" << "m_dataLength" << m_dataLength; ENGINE_DEBUG << "Engine::initialize" << "format" << m_format; return result; @@ -510,21 +528,15 @@ bool Engine::selectFormat() { bool foundSupportedFormat = false; - if (m_file) { - // Header is read from the WAV file; just need to check whether - // it is supported by the audio output device - QAudioFormat format = m_wavFile.format(); - if (m_audioOutputDevice.isFormatSupported(m_wavFile.format())) { - setFormat(m_wavFile.format()); + if (m_file || QAudioFormat() != m_format) { + QAudioFormat format = m_format; + if (m_file) + // Header is read from the WAV file; just need to check whether + // it is supported by the audio output device + format = m_file->fileFormat(); + if (m_audioOutputDevice.isFormatSupported(format)) { + setFormat(format); foundSupportedFormat = true; - } else { - // Try flipping mono <-> stereo - const int channels = (format.channels() == 1) ? 2 : 1; - format.setChannels(channels); - if (m_audioOutputDevice.isFormatSupported(format)) { - setFormat(format); - foundSupportedFormat = true; - } } } else { @@ -648,12 +660,12 @@ void Engine::calculateLevel(qint64 position, qint64 length) Q_UNUSED(position) Q_UNUSED(length) #else - Q_ASSERT(position + length <= m_dataLength); + Q_ASSERT(position + length <= m_bufferPosition + m_dataLength); qreal peakLevel = 0.0; qreal sum = 0.0; - const char *ptr = m_buffer.constData() + position; + const char *ptr = m_buffer.constData() + position - m_bufferPosition; const char *const end = ptr + length; while (ptr < end) { const qint16 value = *reinterpret_cast<const qint16*>(ptr); @@ -679,18 +691,18 @@ void Engine::calculateSpectrum(qint64 position) #ifdef DISABLE_SPECTRUM Q_UNUSED(position) #else - Q_ASSERT(position + m_spectrumLengthBytes <= m_dataLength); - Q_ASSERT(0 == m_spectrumLengthBytes % 2); // constraint of FFT algorithm + Q_ASSERT(position + m_spectrumBufferLength <= m_bufferPosition + m_dataLength); + Q_ASSERT(0 == m_spectrumBufferLength % 2); // constraint of FFT algorithm // QThread::currentThread is marked 'for internal use only', but // we're only using it for debug output here, so it's probably OK :) ENGINE_DEBUG << "Engine::calculateSpectrum" << QThread::currentThread() - << "count" << m_count << "pos" << position << "len" << m_spectrumLengthBytes + << "count" << m_count << "pos" << position << "len" << m_spectrumBufferLength << "spectrumAnalyser.isReady" << m_spectrumAnalyser.isReady(); if(m_spectrumAnalyser.isReady()) { - m_spectrumBuffer = QByteArray::fromRawData(m_buffer.constData() + position, - m_spectrumLengthBytes); + m_spectrumBuffer = QByteArray::fromRawData(m_buffer.constData() + position - m_bufferPosition, + m_spectrumBufferLength); m_spectrumPosition = position; m_spectrumAnalyser.calculate(m_spectrumBuffer, m_format); } @@ -701,6 +713,9 @@ void Engine::setFormat(const QAudioFormat &format) { const bool changed = (format != m_format); m_format = format; + m_levelBufferLength = audioLength(m_format, LevelWindowUs); + m_spectrumBufferLength = SpectrumLengthSamples * + (m_format.sampleSize() / 8) * m_format.channels(); if (changed) emit formatChanged(m_format); } diff --git a/demos/spectrum/app/engine.h b/demos/spectrum/app/engine.h index e14ac83..c97083e 100644 --- a/demos/spectrum/app/engine.h +++ b/demos/spectrum/app/engine.h @@ -91,12 +91,6 @@ public: QAudio::State state() const { return m_state; } /** - * \return Reference to internal audio buffer - * \note This reference is valid for the lifetime of the Engine - */ - const QByteArray& buffer() const { return m_buffer; } - - /** * \return Current audio format * \note May be QAudioFormat() if engine is not initialized */ @@ -129,7 +123,7 @@ public: /** * Position of the audio input device. - * \return Position in microseconds. + * \return Position in bytes. */ qint64 recordPosition() const { return m_recordPosition; } @@ -147,27 +141,21 @@ public: /** * Position of the audio output device. - * \return Position in microseconds. + * \return Position in bytes. */ qint64 playPosition() const { return m_playPosition; } /** * Length of the internal engine buffer. - * \return Buffer length in microseconds. + * \return Buffer length in bytes. */ - qint64 bufferDuration() const; + qint64 bufferLength() const; /** * Amount of data held in the buffer. - * \return Data duration in microseconds. + * \return Data length in bytes. */ - qint64 dataDuration() const; - - /** - * Returns the size of the underlying audio buffer in bytes. - * This should be an approximation of the capture latency. - */ - qint64 audioBufferLength() const; + qint64 dataLength() const { return m_dataLength; } /** * Set window function applied to audio data before spectral analysis. @@ -203,23 +191,23 @@ signals: * Length of buffer has changed. * \param duration Duration in microseconds */ - void bufferDurationChanged(qint64 duration); + void bufferLengthChanged(qint64 duration); /** * Amount of data in buffer has changed. - * \param duration Duration of data in microseconds + * \param Length of data in bytes */ - void dataDurationChanged(qint64 duration); + void dataLengthChanged(qint64 duration); /** * Position of the audio input device has changed. - * \param position Position in microseconds + * \param position Position in bytes */ void recordPositionChanged(qint64 position); /** * Position of the audio output device has changed. - * \param position Position in microseconds + * \param position Position in bytes */ void playPositionChanged(qint64 position); @@ -233,12 +221,19 @@ signals: /** * Spectrum has changed. - * \param position Position of start of window in microseconds - * \param length Length of window in microseconds + * \param position Position of start of window in bytes + * \param length Length of window in bytes * \param spectrum Resulting frequency spectrum */ void spectrumChanged(qint64 position, qint64 length, const FrequencySpectrum &spectrum); + /** + * Buffer containing audio data has changed. + * \param position Position of start of buffer in bytes + * \param buffer Buffer + */ + void bufferChanged(qint64 position, qint64 length, const QByteArray &buffer); + private slots: void audioNotify(); void audioStateChanged(QAudio::State state); @@ -246,6 +241,7 @@ private slots: void spectrumChanged(const FrequencySpectrum &spectrum); private: + void resetAudioDevices(); bool initialize(); bool selectFormat(); void stopRecording(); @@ -275,8 +271,10 @@ private: bool m_generateTone; SweptTone m_tone; - QFile* m_file; - WavFile m_wavFile; + WavFile* m_file; + // We need a second file handle via which to read data into m_buffer + // for analysis + WavFile* m_analysisFile; QAudioFormat m_format; @@ -293,12 +291,15 @@ private: QBuffer m_audioOutputIODevice; QByteArray m_buffer; + qint64 m_bufferPosition; + qint64 m_bufferLength; qint64 m_dataLength; + int m_levelBufferLength; qreal m_rmsLevel; qreal m_peakLevel; - int m_spectrumLengthBytes; + int m_spectrumBufferLength; QByteArray m_spectrumBuffer; SpectrumAnalyser m_spectrumAnalyser; qint64 m_spectrumPosition; diff --git a/demos/spectrum/app/mainwidget.cpp b/demos/spectrum/app/mainwidget.cpp index dd51a91..4b53bbe 100644 --- a/demos/spectrum/app/mainwidget.cpp +++ b/demos/spectrum/app/mainwidget.cpp @@ -65,7 +65,7 @@ MainWidget::MainWidget(QWidget *parent) , m_mode(NoMode) , m_engine(new Engine(this)) #ifndef DISABLE_WAVEFORM - , m_waveform(new Waveform(m_engine->buffer(), this)) + , m_waveform(new Waveform(this)) #endif , m_progressBar(new ProgressBar(this)) , m_spectrograph(new Spectrograph(this)) @@ -166,19 +166,18 @@ void MainWidget::timerEvent(QTimerEvent *event) m_infoMessage->setText(""); } -void MainWidget::positionChanged(qint64 positionUs) +void MainWidget::audioPositionChanged(qint64 position) { #ifndef DISABLE_WAVEFORM - qint64 positionBytes = audioLength(m_engine->format(), positionUs); - m_waveform->positionChanged(positionBytes); + m_waveform->audioPositionChanged(position); #else - Q_UNUSED(positionUs) + Q_UNUSED(position) #endif } -void MainWidget::bufferDurationChanged(qint64 durationUs) +void MainWidget::bufferLengthChanged(qint64 length) { - m_progressBar->bufferDurationChanged(durationUs); + m_progressBar->bufferLengthChanged(length); } @@ -186,33 +185,22 @@ void MainWidget::bufferDurationChanged(qint64 durationUs) // Private slots //----------------------------------------------------------------------------- -void MainWidget::dataDurationChanged(qint64 duration) -{ -#ifndef DISABLE_WAVEFORM - const qint64 dataLength = audioLength(m_engine->format(), duration); - m_waveform->dataLengthChanged(dataLength); -#else - Q_UNUSED(duration) -#endif - - updateButtonStates(); -} - void MainWidget::showFileDialog() { - reset(); const QString dir; const QStringList fileNames = QFileDialog::getOpenFileNames(this, tr("Open WAV file"), dir, "*.wav"); if (fileNames.count()) { + reset(); setMode(LoadFileMode); m_engine->loadFile(fileNames.front()); updateButtonStates(); + } else { + updateModeMenu(); } } void MainWidget::showSettingsDialog() { - reset(); m_settingsDialog->exec(); if (m_settingsDialog->result() == QDialog::Accepted) { m_engine->setAudioInputDevice(m_settingsDialog->inputDevice()); @@ -223,9 +211,9 @@ void MainWidget::showSettingsDialog() void MainWidget::showToneGeneratorDialog() { - reset(); m_toneGeneratorDialog->exec(); if (m_toneGeneratorDialog->result() == QDialog::Accepted) { + reset(); setMode(GenerateToneMode); const qreal amplitude = m_toneGeneratorDialog->amplitude(); if (m_toneGeneratorDialog->isFrequencySweepEnabled()) { @@ -236,6 +224,8 @@ void MainWidget::showToneGeneratorDialog() m_engine->generateTone(tone); updateButtonStates(); } + } else { + updateModeMenu(); } } @@ -360,13 +350,13 @@ void MainWidget::connectUi() CHECKED_CONNECT(m_engine, SIGNAL(formatChanged(const QAudioFormat &)), this, SLOT(formatChanged(const QAudioFormat &))); - m_progressBar->bufferDurationChanged(m_engine->bufferDuration()); + m_progressBar->bufferLengthChanged(m_engine->bufferLength()); - CHECKED_CONNECT(m_engine, SIGNAL(bufferDurationChanged(qint64)), - this, SLOT(bufferDurationChanged(qint64))); + CHECKED_CONNECT(m_engine, SIGNAL(bufferLengthChanged(qint64)), + this, SLOT(bufferLengthChanged(qint64))); - CHECKED_CONNECT(m_engine, SIGNAL(dataDurationChanged(qint64)), - this, SLOT(dataDurationChanged(qint64))); + CHECKED_CONNECT(m_engine, SIGNAL(dataLengthChanged(qint64)), + this, SLOT(updateButtonStates())); CHECKED_CONNECT(m_engine, SIGNAL(recordPositionChanged(qint64)), m_progressBar, SLOT(recordPositionChanged(qint64))); @@ -375,10 +365,10 @@ void MainWidget::connectUi() m_progressBar, SLOT(playPositionChanged(qint64))); CHECKED_CONNECT(m_engine, SIGNAL(recordPositionChanged(qint64)), - this, SLOT(positionChanged(qint64))); + this, SLOT(audioPositionChanged(qint64))); CHECKED_CONNECT(m_engine, SIGNAL(playPositionChanged(qint64)), - this, SLOT(positionChanged(qint64))); + this, SLOT(audioPositionChanged(qint64))); CHECKED_CONNECT(m_engine, SIGNAL(levelChanged(qreal, qreal, int)), m_levelMeter, SLOT(levelChanged(qreal, qreal, int))); @@ -394,6 +384,11 @@ void MainWidget::connectUi() CHECKED_CONNECT(m_spectrograph, SIGNAL(infoMessage(QString, int)), this, SLOT(infoMessage(QString, int))); + +#ifndef DISABLE_WAVEFORM + CHECKED_CONNECT(m_engine, SIGNAL(bufferChanged(qint64, qint64, const QByteArray &)), + m_waveform, SLOT(bufferChanged(qint64, qint64, const QByteArray &))); +#endif } void MainWidget::createMenus() @@ -425,7 +420,7 @@ void MainWidget::updateButtonStates() QAudio::IdleState == m_engine->state()); m_pauseButton->setEnabled(pauseEnabled); - const bool playEnabled = (m_engine->dataDuration() && + const bool playEnabled = (/*m_engine->dataLength() &&*/ (QAudio::AudioOutput != m_engine->mode() || (QAudio::ActiveState != m_engine->state() && QAudio::IdleState != m_engine->state()))); @@ -445,10 +440,14 @@ void MainWidget::reset() void MainWidget::setMode(Mode mode) { - m_mode = mode; - m_loadFileAction->setChecked(LoadFileMode == mode); - m_generateToneAction->setChecked(GenerateToneMode == mode); - m_recordAction->setChecked(RecordMode == mode); + updateModeMenu(); +} + +void MainWidget::updateModeMenu() +{ + m_loadFileAction->setChecked(LoadFileMode == m_mode); + m_generateToneAction->setChecked(GenerateToneMode == m_mode); + m_recordAction->setChecked(RecordMode == m_mode); } diff --git a/demos/spectrum/app/mainwidget.h b/demos/spectrum/app/mainwidget.h index ddab8b7..13131c0 100644 --- a/demos/spectrum/app/mainwidget.h +++ b/demos/spectrum/app/mainwidget.h @@ -80,21 +80,21 @@ public slots: const FrequencySpectrum &spectrum); void infoMessage(const QString &message, int timeoutMs); void errorMessage(const QString &heading, const QString &detail); - void positionChanged(qint64 position); - void bufferDurationChanged(qint64 duration); + void audioPositionChanged(qint64 position); + void bufferLengthChanged(qint64 length); private slots: void showFileDialog(); void showSettingsDialog(); void showToneGeneratorDialog(); void initializeRecord(); - void dataDurationChanged(qint64 duration); + void updateModeMenu(); + void updateButtonStates(); private: void createUi(); void createMenus(); void connectUi(); - void updateButtonStates(); void reset(); enum Mode { @@ -111,7 +111,9 @@ private: Engine* m_engine; +#ifndef DISABLE_WAVEFORM Waveform* m_waveform; +#endif ProgressBar* m_progressBar; Spectrograph* m_spectrograph; LevelMeter* m_levelMeter; diff --git a/demos/spectrum/app/progressbar.cpp b/demos/spectrum/app/progressbar.cpp index 6bfc690..0ac76f1 100644 --- a/demos/spectrum/app/progressbar.cpp +++ b/demos/spectrum/app/progressbar.cpp @@ -44,7 +44,7 @@ ProgressBar::ProgressBar(QWidget *parent) : QWidget(parent) - , m_bufferDuration(0) + , m_bufferLength(0) , m_recordPosition(0) , m_playPosition(0) , m_windowPosition(0) @@ -64,7 +64,7 @@ ProgressBar::~ProgressBar() void ProgressBar::reset() { - m_bufferDuration = 0; + m_bufferLength = 0; m_recordPosition = 0; m_playPosition = 0; m_windowPosition = 0; @@ -86,26 +86,26 @@ void ProgressBar::paintEvent(QPaintEvent * /*event*/) painter.fillRect(rect(), Qt::black); #endif - if (m_bufferDuration) { + if (m_bufferLength) { QRect bar = rect(); - const qreal play = qreal(m_playPosition) / m_bufferDuration; + const qreal play = qreal(m_playPosition) / m_bufferLength; bar.setLeft(rect().left() + play * rect().width()); - const qreal record = qreal(m_recordPosition) / m_bufferDuration; + const qreal record = qreal(m_recordPosition) / m_bufferLength; bar.setRight(rect().left() + record * rect().width()); painter.fillRect(bar, bufferColor); QRect window = rect(); - const qreal windowLeft = qreal(m_windowPosition) / m_bufferDuration; + const qreal windowLeft = qreal(m_windowPosition) / m_bufferLength; window.setLeft(rect().left() + windowLeft * rect().width()); - const qreal windowWidth = qreal(m_windowLength) / m_bufferDuration; + const qreal windowWidth = qreal(m_windowLength) / m_bufferLength; window.setWidth(windowWidth * rect().width()); painter.fillRect(window, windowColor); } } -void ProgressBar::bufferDurationChanged(qint64 bufferSize) +void ProgressBar::bufferLengthChanged(qint64 bufferSize) { - m_bufferDuration = bufferSize; + m_bufferLength = bufferSize; m_recordPosition = 0; m_playPosition = 0; m_windowPosition = 0; @@ -116,7 +116,7 @@ void ProgressBar::bufferDurationChanged(qint64 bufferSize) void ProgressBar::recordPositionChanged(qint64 recordPosition) { Q_ASSERT(recordPosition >= 0); - Q_ASSERT(recordPosition <= m_bufferDuration); + Q_ASSERT(recordPosition <= m_bufferLength); m_recordPosition = recordPosition; repaint(); } @@ -124,7 +124,7 @@ void ProgressBar::recordPositionChanged(qint64 recordPosition) void ProgressBar::playPositionChanged(qint64 playPosition) { Q_ASSERT(playPosition >= 0); - Q_ASSERT(playPosition <= m_bufferDuration); + Q_ASSERT(playPosition <= m_bufferLength); m_playPosition = playPosition; repaint(); } @@ -132,8 +132,8 @@ void ProgressBar::playPositionChanged(qint64 playPosition) void ProgressBar::windowChanged(qint64 position, qint64 length) { Q_ASSERT(position >= 0); - Q_ASSERT(position <= m_bufferDuration); - Q_ASSERT(position + length <= m_bufferDuration); + Q_ASSERT(position <= m_bufferLength); + Q_ASSERT(position + length <= m_bufferLength); m_windowPosition = position; m_windowLength = length; repaint(); diff --git a/demos/spectrum/app/progressbar.h b/demos/spectrum/app/progressbar.h index 8514adb..e715cf5 100644 --- a/demos/spectrum/app/progressbar.h +++ b/demos/spectrum/app/progressbar.h @@ -57,13 +57,13 @@ public: void paintEvent(QPaintEvent *event); public slots: - void bufferDurationChanged(qint64 bufferSize); + void bufferLengthChanged(qint64 length); void recordPositionChanged(qint64 recordPosition); void playPositionChanged(qint64 playPosition); void windowChanged(qint64 position, qint64 length); private: - qint64 m_bufferDuration; + qint64 m_bufferLength; qint64 m_recordPosition; qint64 m_playPosition; qint64 m_windowPosition; diff --git a/demos/spectrum/app/spectrumanalyser.cpp b/demos/spectrum/app/spectrumanalyser.cpp index 1cc47a6..2fa17b1 100644 --- a/demos/spectrum/app/spectrumanalyser.cpp +++ b/demos/spectrum/app/spectrumanalyser.cpp @@ -64,6 +64,8 @@ SpectrumAnalyserThread::SpectrumAnalyserThread(QObject *parent) #endif { #ifdef SPECTRUM_ANALYSER_SEPARATE_THREAD + // moveToThread() cannot be called on a QObject with a parent + setParent(0); moveToThread(m_thread); m_thread->start(); #endif diff --git a/demos/spectrum/app/utils.cpp b/demos/spectrum/app/utils.cpp index 4ead6c2..49a7626 100644 --- a/demos/spectrum/app/utils.cpp +++ b/demos/spectrum/app/utils.cpp @@ -49,8 +49,10 @@ qint64 audioDuration(const QAudioFormat &format, qint64 bytes) qint64 audioLength(const QAudioFormat &format, qint64 microSeconds) { - return (format.frequency() * format.channels() * (format.sampleSize() / 8)) + qint64 result = (format.frequency() * format.channels() * (format.sampleSize() / 8)) * microSeconds / 1000000; + result -= result % (format.channelCount() * format.sampleSize()); + return result; } qreal nyquistFrequency(const QAudioFormat &format) diff --git a/demos/spectrum/app/waveform.cpp b/demos/spectrum/app/waveform.cpp index 1f7d315..bd854c0 100644 --- a/demos/spectrum/app/waveform.cpp +++ b/demos/spectrum/app/waveform.cpp @@ -44,12 +44,18 @@ #include <QResizeEvent> #include <QDebug> - -Waveform::Waveform(const QByteArray &buffer, QWidget *parent) +//#define PAINT_EVENT_TRACE +#ifdef PAINT_EVENT_TRACE +# define WAVEFORM_PAINT_DEBUG qDebug() +#else +# define WAVEFORM_PAINT_DEBUG nullDebug() +#endif + +Waveform::Waveform(QWidget *parent) : QWidget(parent) - , m_buffer(buffer) - , m_dataLength(0) - , m_position(0) + , m_bufferPosition(0) + , m_bufferLength(0) + , m_audioPosition(0) , m_active(false) , m_tileLength(0) , m_tileArrayStart(0) @@ -72,19 +78,19 @@ void Waveform::paintEvent(QPaintEvent * /*event*/) painter.fillRect(rect(), Qt::black); if (m_active) { - WAVEFORM_DEBUG << "Waveform::paintEvent" - << "windowPosition" << m_windowPosition - << "windowLength" << m_windowLength; + WAVEFORM_PAINT_DEBUG << "Waveform::paintEvent" + << "windowPosition" << m_windowPosition + << "windowLength" << m_windowLength; qint64 pos = m_windowPosition; const qint64 windowEnd = m_windowPosition + m_windowLength; int destLeft = 0; int destRight = 0; while (pos < windowEnd) { const TilePoint point = tilePoint(pos); - WAVEFORM_DEBUG << "Waveform::paintEvent" << "pos" << pos - << "tileIndex" << point.index - << "positionOffset" << point.positionOffset - << "pixelOffset" << point.pixelOffset; + WAVEFORM_PAINT_DEBUG << "Waveform::paintEvent" << "pos" << pos + << "tileIndex" << point.index + << "positionOffset" << point.positionOffset + << "pixelOffset" << point.pixelOffset; if (point.index != NullIndex) { const Tile &tile = m_tiles[point.index]; @@ -104,9 +110,9 @@ void Waveform::paintEvent(QPaintEvent * /*event*/) sourceRect.setLeft(point.pixelOffset); sourceRect.setRight(sourceRight); - WAVEFORM_DEBUG << "Waveform::paintEvent" << "tileIndex" << point.index - << "source" << point.pixelOffset << sourceRight - << "dest" << destLeft << destRight; + WAVEFORM_PAINT_DEBUG << "Waveform::paintEvent" << "tileIndex" << point.index + << "source" << point.pixelOffset << sourceRight + << "dest" << destLeft << destRight; painter.drawPixmap(destRect, *tile.pixmap, sourceRect); @@ -114,25 +120,25 @@ void Waveform::paintEvent(QPaintEvent * /*event*/) if (point.index < m_tiles.count()) { pos = tilePosition(point.index + 1); - WAVEFORM_DEBUG << "Waveform::paintEvent" << "pos ->" << pos; + WAVEFORM_PAINT_DEBUG << "Waveform::paintEvent" << "pos ->" << pos; } else { // Reached end of tile array - WAVEFORM_DEBUG << "Waveform::paintEvent" << "reached end of tile array"; + WAVEFORM_PAINT_DEBUG << "Waveform::paintEvent" << "reached end of tile array"; break; } } else { // Passed last tile which is painted - WAVEFORM_DEBUG << "Waveform::paintEvent" << "tile" << point.index << "not painted"; + WAVEFORM_PAINT_DEBUG << "Waveform::paintEvent" << "tile" << point.index << "not painted"; break; } } else { // pos is past end of tile array - WAVEFORM_DEBUG << "Waveform::paintEvent" << "pos" << pos << "past end of tile array"; + WAVEFORM_PAINT_DEBUG << "Waveform::paintEvent" << "pos" << pos << "past end of tile array"; break; } } - WAVEFORM_DEBUG << "Waveform::paintEvent" << "final pos" << pos << "final x" << destRight; + WAVEFORM_PAINT_DEBUG << "Waveform::paintEvent" << "final pos" << pos << "final x" << destRight; } } @@ -146,7 +152,6 @@ void Waveform::initialize(const QAudioFormat &format, qint64 audioBufferSize, qi { WAVEFORM_DEBUG << "Waveform::initialize" << "audioBufferSize" << audioBufferSize - << "m_buffer.size()" << m_buffer.size() << "windowDurationUs" << windowDurationUs; reset(); @@ -186,8 +191,9 @@ void Waveform::reset() { WAVEFORM_DEBUG << "Waveform::reset"; - m_dataLength = 0; - m_position = 0; + m_bufferPosition = 0; + m_buffer = QByteArray(); + m_audioPosition = 0; m_format = QAudioFormat(); m_active = false; deletePixmaps(); @@ -198,30 +204,31 @@ void Waveform::reset() m_windowLength = 0; } -void Waveform::dataLengthChanged(qint64 length) +void Waveform::bufferChanged(qint64 position, qint64 length, const QByteArray &buffer) { - WAVEFORM_DEBUG << "Waveform::dataLengthChanged" << length; - const qint64 oldLength = m_dataLength; - m_dataLength = length; - - if (m_active) { - if (m_dataLength < oldLength) - positionChanged(m_dataLength); - else - paintTiles(); - } + WAVEFORM_DEBUG << "Waveform::bufferChanged" + << "audioPosition" << m_audioPosition + << "bufferPosition" << position + << "bufferLength" << length; + m_bufferPosition = position; + m_bufferLength = length; + m_buffer = buffer; + paintTiles(); } -void Waveform::positionChanged(qint64 position) +void Waveform::audioPositionChanged(qint64 position) { - WAVEFORM_DEBUG << "Waveform::positionChanged" << position; - - if (position + m_windowLength > m_dataLength) - position = m_dataLength - m_windowLength; - - m_position = position; - - setWindowPosition(position); + WAVEFORM_DEBUG << "Waveform::audioPositionChanged" + << "audioPosition" << position + << "bufferPosition" << m_bufferPosition + << "bufferLength" << m_bufferLength; + + if (position >= m_bufferPosition) { + if (position + m_windowLength > m_bufferPosition + m_bufferLength) + position = qMax(qint64(0), m_bufferPosition + m_bufferLength - m_windowLength); + m_audioPosition = position; + setWindowPosition(position); + } } void Waveform::deletePixmaps() @@ -255,8 +262,6 @@ void Waveform::createPixmaps(const QSize &widgetSize) m_tiles[i].pixmap = m_pixmaps[i]; m_tiles[i].painted = false; } - - paintTiles(); } void Waveform::setWindowPosition(qint64 position) @@ -327,8 +332,9 @@ bool Waveform::paintTiles() for (int i=0; i<m_tiles.count(); ++i) { const Tile &tile = m_tiles[i]; if (!tile.painted) { - const qint64 tileEnd = m_tileArrayStart + (i + 1) * m_tileLength; - if (m_dataLength >= tileEnd) { + const qint64 tileStart = m_tileArrayStart + i * m_tileLength; + const qint64 tileEnd = tileStart + m_tileLength; + if (m_bufferPosition <= tileStart && m_bufferPosition + m_bufferLength >= tileEnd) { paintTile(i); updateRequired = true; } @@ -343,16 +349,23 @@ bool Waveform::paintTiles() void Waveform::paintTile(int index) { - WAVEFORM_DEBUG << "Waveform::paintTile" << "index" << index; - const qint64 tileStart = m_tileArrayStart + index * m_tileLength; - Q_ASSERT(m_dataLength >= tileStart + m_tileLength); + + WAVEFORM_DEBUG << "Waveform::paintTile" + << "index" << index + << "bufferPosition" << m_bufferPosition + << "bufferLength" << m_bufferLength + << "start" << tileStart + << "end" << tileStart + m_tileLength; + + Q_ASSERT(m_bufferPosition <= tileStart); + Q_ASSERT(m_bufferPosition + m_bufferLength >= tileStart + m_tileLength); Tile &tile = m_tiles[index]; Q_ASSERT(!tile.painted); const qint16* base = reinterpret_cast<const qint16*>(m_buffer.constData()); - const qint16* buffer = base + (tileStart / 2); + const qint16* buffer = base + ((tileStart - m_bufferPosition) / 2); const int numSamples = m_tileLength / (2 * m_format.channels()); QPainter painter(tile.pixmap); @@ -376,6 +389,11 @@ void Waveform::paintTile(int index) for (int i=0; i<numSamples; ++i) { const qint16* ptr = buffer + i * m_format.channels(); + + const int offset = reinterpret_cast<const char*>(ptr) - m_buffer.constData(); + Q_ASSERT(offset >= 0); + Q_ASSERT(offset < m_bufferLength); + const qint16 pcmValue = *ptr; const qreal realValue = pcmToReal(pcmValue); diff --git a/demos/spectrum/app/waveform.h b/demos/spectrum/app/waveform.h index 57c9eec..1c54c86 100644 --- a/demos/spectrum/app/waveform.h +++ b/demos/spectrum/app/waveform.h @@ -60,7 +60,7 @@ QT_FORWARD_DECLARE_CLASS(QByteArray) class Waveform : public QWidget { Q_OBJECT public: - Waveform(const QByteArray &buffer, QWidget *parent = 0); + Waveform(QWidget *parent = 0); ~Waveform(); // QWidget @@ -73,8 +73,8 @@ public: void setAutoUpdatePosition(bool enabled); public slots: - void dataLengthChanged(qint64 length); - void positionChanged(qint64 position); + void bufferChanged(qint64 position, qint64 length, const QByteArray &buffer); + void audioPositionChanged(qint64 position); private: static const int NullIndex = -1; @@ -167,9 +167,11 @@ private: void resetTiles(qint64 newStartPos); private: - const QByteArray& m_buffer; - qint64 m_dataLength; - qint64 m_position; + qint64 m_bufferPosition; + qint64 m_bufferLength; + QByteArray m_buffer; + + qint64 m_audioPosition; QAudioFormat m_format; bool m_active; diff --git a/demos/spectrum/app/wavfile.cpp b/demos/spectrum/app/wavfile.cpp index 74d5918..44c3ac5 100644 --- a/demos/spectrum/app/wavfile.cpp +++ b/demos/spectrum/app/wavfile.cpp @@ -78,179 +78,74 @@ struct CombinedHeader WAVEHeader wave; }; - - -WavFile::WavFile(const QAudioFormat &format, qint64 dataLength) - : m_format(format) - , m_dataLength(dataLength) - , m_dataPosition(0) -{ -} - -bool WavFile::readHeader(QIODevice &device) -{ - if (!device.isSequential()) { - if (!device.seek(0)) - return false; - // XXX: else, assume that current position is the start of the header - } - - CombinedHeader header; - if (device.read(reinterpret_cast<char *>(&header), sizeof(CombinedHeader)) != sizeof(CombinedHeader)) - return false; - - if ((memcmp(&header.riff.descriptor.id, "RIFF", 4) == 0 - || memcmp(&header.riff.descriptor.id, "RIFX", 4) == 0) - && memcmp(&header.riff.type, "WAVE", 4) == 0 - && memcmp(&header.wave.descriptor.id, "fmt ", 4) == 0 - && (header.wave.audioFormat == 1 || header.wave.audioFormat == 0)) { - - // Read off remaining header information - DATAHeader dataHeader; - - if (qFromLittleEndian<quint32>(header.wave.descriptor.size) > sizeof(WAVEHeader)) { - // Extended data available - quint16 extraFormatBytes; - if (device.peek((char*)&extraFormatBytes, sizeof(quint16)) != sizeof(quint16)) - return false; - const qint64 throwAwayBytes = sizeof(quint16) + qFromLittleEndian<quint16>(extraFormatBytes); - if (device.read(throwAwayBytes).size() != throwAwayBytes) - return false; - } - - if (device.read((char*)&dataHeader, sizeof(DATAHeader)) != sizeof(DATAHeader)) - return false; - - // Establish format - if (memcmp(&header.riff.descriptor.id, "RIFF", 4) == 0) - m_format.setByteOrder(QAudioFormat::LittleEndian); - else - m_format.setByteOrder(QAudioFormat::BigEndian); - - int bps = qFromLittleEndian<quint16>(header.wave.bitsPerSample); - m_format.setChannels(qFromLittleEndian<quint16>(header.wave.numChannels)); - m_format.setCodec("audio/pcm"); - m_format.setFrequency(qFromLittleEndian<quint32>(header.wave.sampleRate)); - m_format.setSampleSize(qFromLittleEndian<quint16>(header.wave.bitsPerSample)); - m_format.setSampleType(bps == 8 ? QAudioFormat::UnSignedInt : QAudioFormat::SignedInt); - - m_dataLength = qFromLittleEndian<quint32>(dataHeader.descriptor.size); - m_dataPosition = 0; - } - - return true; -} - -bool WavFile::writeHeader(QIODevice &device) +WavFile::WavFile(QObject *parent) + : QFile(parent) + , m_headerLength(0) { - CombinedHeader header; - DATAHeader dataHeader; - - memset(&header, 0, sizeof(CombinedHeader)); - - // RIFF header - if (m_format.byteOrder() == QAudioFormat::LittleEndian) - strncpy(&header.riff.descriptor.id[0], "RIFF", 4); - else - strncpy(&header.riff.descriptor.id[0], "RIFX", 4); - qToLittleEndian<quint32>(quint32(m_dataLength + sizeof(CombinedHeader) + sizeof(DATAHeader) - sizeof(chunk)), - reinterpret_cast<unsigned char*>(&header.riff.descriptor.size)); - strncpy(&header.riff.type[0], "WAVE", 4); - - // WAVE header - strncpy(&header.wave.descriptor.id[0], "fmt ", 4); - qToLittleEndian<quint32>(quint32(16), - reinterpret_cast<unsigned char*>(&header.wave.descriptor.size)); - qToLittleEndian<quint16>(quint16(1), - reinterpret_cast<unsigned char*>(&header.wave.audioFormat)); - qToLittleEndian<quint16>(quint16(m_format.channels()), - reinterpret_cast<unsigned char*>(&header.wave.numChannels)); - qToLittleEndian<quint32>(quint32(m_format.frequency()), - reinterpret_cast<unsigned char*>(&header.wave.sampleRate)); - qToLittleEndian<quint32>(quint32(m_format.frequency() * m_format.channels() * m_format.sampleSize() / 8), - reinterpret_cast<unsigned char*>(&header.wave.byteRate)); - qToLittleEndian<quint16>(quint16(m_format.channels() * m_format.sampleSize() / 8), - reinterpret_cast<unsigned char*>(&header.wave.blockAlign)); - qToLittleEndian<quint16>(quint16(m_format.sampleSize()), - reinterpret_cast<unsigned char*>(&header.wave.bitsPerSample)); - - // DATA header - strncpy(dataHeader.descriptor.id, "data", 4); - qToLittleEndian<quint32>(quint32(m_dataLength), - reinterpret_cast<unsigned char*>(&dataHeader.descriptor.size)); - return device.write(reinterpret_cast<const char *>(&header), sizeof(CombinedHeader)) == sizeof(CombinedHeader) - && device.write(reinterpret_cast<const char*>(&dataHeader), sizeof(DATAHeader)) == sizeof(DATAHeader); } -const QAudioFormat& WavFile::format() const +bool WavFile::open(const QString &fileName) { - return m_format; + close(); + setFileName(fileName); + return QFile::open(QIODevice::ReadOnly) && readHeader(); } -qint64 WavFile::dataLength() const +const QAudioFormat &WavFile::fileFormat() const { - return m_dataLength; + return m_fileFormat; } -qint64 WavFile::headerLength() +qint64 WavFile::headerLength() const { - return sizeof(CombinedHeader); -} - -bool WavFile::writeDataLength(QIODevice &device, qint64 dataLength) -{ - bool result = false; - if (!device.isSequential()) { - device.seek(40); - unsigned char dataLengthLE[4]; - qToLittleEndian<quint32>(quint32(dataLength), dataLengthLE); - result = (device.write(reinterpret_cast<const char *>(dataLengthLE), 4) == 4); - } - return result; +return m_headerLength; } -qint64 WavFile::readData(QIODevice &device, QByteArray &buffer, - QAudioFormat outputFormat) +bool WavFile::readHeader() { - // Sanity checks - if (!outputFormat.isValid()) - outputFormat = m_format; - - if (!isPCMS16LE(outputFormat) || !isPCMS16LE(m_format)) - return 0; - - if (m_dataPosition == m_dataLength) - return 0; - - // Process - qint64 result = 0; - - const int frameSize = 2 * m_format.channels(); // 16 bit samples - QVector<char> inputSample(frameSize); - - qint16 *output = reinterpret_cast<qint16*>(buffer.data()); + seek(0); + CombinedHeader header; + bool result = read(reinterpret_cast<char *>(&header), sizeof(CombinedHeader)) == sizeof(CombinedHeader); + if (result) { + if ((memcmp(&header.riff.descriptor.id, "RIFF", 4) == 0 + || memcmp(&header.riff.descriptor.id, "RIFX", 4) == 0) + && memcmp(&header.riff.type, "WAVE", 4) == 0 + && memcmp(&header.wave.descriptor.id, "fmt ", 4) == 0 + && (header.wave.audioFormat == 1 || header.wave.audioFormat == 0)) { + + // Read off remaining header information + DATAHeader dataHeader; + + if (qFromLittleEndian<quint32>(header.wave.descriptor.size) > sizeof(WAVEHeader)) { + // Extended data available + quint16 extraFormatBytes; + if (peek((char*)&extraFormatBytes, sizeof(quint16)) != sizeof(quint16)) + return false; + const qint64 throwAwayBytes = sizeof(quint16) + qFromLittleEndian<quint16>(extraFormatBytes); + if (read(throwAwayBytes).size() != throwAwayBytes) + return false; + } - while (result < buffer.size()) { - if (m_dataPosition == m_dataLength) - break; + if (read((char*)&dataHeader, sizeof(DATAHeader)) != sizeof(DATAHeader)) + return false; - // XXX only working with particular alignments - if (device.read(inputSample.data(), inputSample.count())) { - int inputIdx = 0; - for (int outputIdx = 0; outputIdx < outputFormat.channels(); ++outputIdx) { - const qint16* input = reinterpret_cast<const qint16*>(inputSample.data() + 2 * inputIdx); - *output++ = qFromLittleEndian<qint16>(*input); - result += 2; - if (inputIdx < m_format.channels()) - ++inputIdx; - } - m_dataPosition += frameSize; + // Establish format + if (memcmp(&header.riff.descriptor.id, "RIFF", 4) == 0) + m_fileFormat.setByteOrder(QAudioFormat::LittleEndian); + else + m_fileFormat.setByteOrder(QAudioFormat::BigEndian); + + int bps = qFromLittleEndian<quint16>(header.wave.bitsPerSample); + m_fileFormat.setChannels(qFromLittleEndian<quint16>(header.wave.numChannels)); + m_fileFormat.setCodec("audio/pcm"); + m_fileFormat.setFrequency(qFromLittleEndian<quint32>(header.wave.sampleRate)); + m_fileFormat.setSampleSize(qFromLittleEndian<quint16>(header.wave.bitsPerSample)); + m_fileFormat.setSampleType(bps == 8 ? QAudioFormat::UnSignedInt : QAudioFormat::SignedInt); } else { - break; + result = false; } } - + m_headerLength = pos(); return result; } - diff --git a/demos/spectrum/app/wavfile.h b/demos/spectrum/app/wavfile.h index fc14b08..935e935 100644 --- a/demos/spectrum/app/wavfile.h +++ b/demos/spectrum/app/wavfile.h @@ -46,38 +46,22 @@ #include <QtCore/qfile.h> #include <QtMultimedia/qaudioformat.h> -/** - * Helper class for reading WAV files - * - * See https://ccrma.stanford.edu/courses/422/projects/WaveFormat/ - */ -class WavFile +class WavFile : public QFile { public: - WavFile(const QAudioFormat &format = QAudioFormat(), - qint64 dataLength = 0); + WavFile(QObject *parent = 0); - // Reads WAV header and seeks to start of data - bool readHeader(QIODevice &device); + bool open(const QString &fileName); + const QAudioFormat &fileFormat() const; + qint64 headerLength() const; - // Writes WAV header - bool writeHeader(QIODevice &device); - - // Read PCM data - qint64 readData(QIODevice &device, QByteArray &buffer, - QAudioFormat outputFormat = QAudioFormat()); - - const QAudioFormat& format() const; - qint64 dataLength() const; - - static qint64 headerLength(); - - static bool writeDataLength(QIODevice &device, qint64 dataLength); +private: + bool readHeader(); private: - QAudioFormat m_format; - qint64 m_dataLength; - qint64 m_dataPosition; + QAudioFormat m_fileFormat; + qint64 m_headerLength; + }; #endif diff --git a/src/corelib/io/qsettings.cpp b/src/corelib/io/qsettings.cpp index e4fb295..131764b 100644 --- a/src/corelib/io/qsettings.cpp +++ b/src/corelib/io/qsettings.cpp @@ -1229,16 +1229,21 @@ QConfFileSettingsPrivate::~QConfFileSettingsPrivate() if (confFiles[i] && !confFiles[i]->ref.deref()) { if (confFiles[i]->size == 0) { delete confFiles[i].take(); - } else if (unusedCache) { + } else { if (usedHash) usedHash->remove(confFiles[i]->name); - QT_TRY { - // compute a better size? - unusedCache->insert(confFiles[i]->name, confFiles[i].data(), - 10 + (confFiles[i]->originalKeys.size() / 4)); - confFiles[i].take(); - } QT_CATCH(...) { - // out of memory. Do not cache the file. + if (unusedCache) { + QT_TRY { + // compute a better size? + unusedCache->insert(confFiles[i]->name, confFiles[i].data(), + 10 + (confFiles[i]->originalKeys.size() / 4)); + confFiles[i].take(); + } QT_CATCH(...) { + // out of memory. Do not cache the file. + delete confFiles[i].take(); + } + } else { + // unusedCache is gone - delete the entry to prevent a memory leak delete confFiles[i].take(); } } diff --git a/src/declarative/debugger/qdeclarativedebugservice.cpp b/src/declarative/debugger/qdeclarativedebugservice.cpp index b98cd5d..c39da3d 100644 --- a/src/declarative/debugger/qdeclarativedebugservice.cpp +++ b/src/declarative/debugger/qdeclarativedebugservice.cpp @@ -204,13 +204,13 @@ QDeclarativeDebugServer *QDeclarativeDebugServer::instance() bool ok = false; // format: qmljsdebugger=port:3768[,block] - if (!appD->qmljsDebugArguments.isEmpty()) { + if (!appD->qmljsDebugArgumentsString().isEmpty()) { - if (appD->qmljsDebugArguments.indexOf(QLatin1String("port:")) == 0) { - int separatorIndex = appD->qmljsDebugArguments.indexOf(QLatin1Char(',')); - port = appD->qmljsDebugArguments.mid(5, separatorIndex - 5).toInt(&ok); + if (appD->qmljsDebugArgumentsString().indexOf(QLatin1String("port:")) == 0) { + int separatorIndex = appD->qmljsDebugArgumentsString().indexOf(QLatin1Char(',')); + port = appD->qmljsDebugArgumentsString().mid(5, separatorIndex - 5).toInt(&ok); } - block = appD->qmljsDebugArguments.contains(QLatin1String("block")); + block = appD->qmljsDebugArgumentsString().contains(QLatin1String("block")); if (ok) { server = new QDeclarativeDebugServer(port); @@ -221,7 +221,7 @@ QDeclarativeDebugServer *QDeclarativeDebugServer::instance() } else { qWarning(QString::fromAscii("QDeclarativeDebugServer: Ignoring \"-qmljsdebugger=%1\". " "Format is -qmljsdebugger=port:<port>[,block]").arg( - appD->qmljsDebugArguments).toAscii().constData()); + appD->qmljsDebugArgumentsString()).toAscii().constData()); } } #endif diff --git a/src/gui/kernel/qapplication.cpp b/src/gui/kernel/qapplication.cpp index d81a3c3..1d80809 100644 --- a/src/gui/kernel/qapplication.cpp +++ b/src/gui/kernel/qapplication.cpp @@ -498,7 +498,7 @@ bool QApplicationPrivate::fade_tooltip = false; bool QApplicationPrivate::animate_toolbox = false; bool QApplicationPrivate::widgetCount = false; bool QApplicationPrivate::load_testability = false; -QString QApplicationPrivate::qmljsDebugArguments; +QString QApplicationPrivate::qmljs_debug_arguments; #ifdef QT_KEYPAD_NAVIGATION # ifdef Q_OS_SYMBIAN Qt::NavigationMode QApplicationPrivate::navigationMode = Qt::NavigationModeKeypadDirectional; @@ -571,7 +571,7 @@ void QApplicationPrivate::process_cmdline() if (arg == "-qdevel" || arg == "-qdebug") { // obsolete argument } else if (arg.indexOf("-qmljsdebugger=", 0) != -1) { - qmljsDebugArguments = QString::fromLocal8Bit(arg.right(arg.length() - 15)); + qmljs_debug_arguments = QString::fromLocal8Bit(arg.right(arg.length() - 15)); } else if (arg.indexOf("-style=", 0) != -1) { s = QString::fromLocal8Bit(arg.right(arg.length() - 7).toLower()); } else if (arg == "-style" && i < argc-1) { @@ -6100,6 +6100,11 @@ QPixmap QApplicationPrivate::getPixmapCursor(Qt::CursorShape cshape) return QPixmap(); } +QString QApplicationPrivate::qmljsDebugArgumentsString() +{ + return qmljs_debug_arguments; +} + QT_END_NAMESPACE #include "moc_qapplication.cpp" diff --git a/src/gui/kernel/qapplication_p.h b/src/gui/kernel/qapplication_p.h index 9f675e3..7b49999 100644 --- a/src/gui/kernel/qapplication_p.h +++ b/src/gui/kernel/qapplication_p.h @@ -464,7 +464,8 @@ public: static bool animate_toolbox; static bool widgetCount; // Coupled with -widgetcount switch static bool load_testability; // Coupled with -testability switch - static QString qmljsDebugArguments; // a string containing arguments for js/qml debugging. + static QString qmljs_debug_arguments; // a string containing arguments for js/qml debugging. + static QString qmljsDebugArgumentsString(); // access string from other libraries #ifdef Q_WS_MAC static bool native_modal_dialog_active; diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp index 19e7d45..96856b8 100644 --- a/src/gui/kernel/qapplication_s60.cpp +++ b/src/gui/kernel/qapplication_s60.cpp @@ -2055,6 +2055,17 @@ int QApplicationPrivate::symbianProcessWsEvent(const QSymbianEvent *symbianEvent } #endif break; +#ifdef Q_SYMBIAN_SUPPORTS_SURFACES + case EEventUser: + { + // GOOM is looking for candidates to kill so indicate that we are + // capable of cleaning up by handling this event + TInt32 *data = reinterpret_cast<TInt32 *>(event->EventData()); + if (data[0] == EApaSystemEventShutdown && data[1] == KGoomMemoryLowEvent) + return 1; + } + break; +#endif default: break; } diff --git a/src/gui/kernel/qclipboard_s60.cpp b/src/gui/kernel/qclipboard_s60.cpp index c9b1d23..73280b2 100644 --- a/src/gui/kernel/qclipboard_s60.cpp +++ b/src/gui/kernel/qclipboard_s60.cpp @@ -257,18 +257,14 @@ const QMimeData* QClipboard::mimeData(Mode mode) const } } CleanupStack::PopAndDestroy(cb); - if (dataExists) { - return d->source(); - } - else { - return 0; - } - }); if (err != KErrNone){ qDebug()<< "clipboard is empty/err: " << err; } + if (dataExists) { + return d->source(); + } } return 0; } diff --git a/src/gui/styles/qs60style.cpp b/src/gui/styles/qs60style.cpp index 5ebaf4c..c93efca 100644 --- a/src/gui/styles/qs60style.cpp +++ b/src/gui/styles/qs60style.cpp @@ -3424,8 +3424,11 @@ bool QS60Style::eventFilter(QObject *object, QEvent *event) qobject_cast<QCheckBox *>(w)) d->m_pressedWidget = w; - if ( d->m_pressedWidget) + if (d->m_pressedWidget) d->m_pressedWidget->update(); +#ifdef Q_WS_S60 + d->touchFeedback(event, w); +#endif } break; } diff --git a/src/gui/styles/qs60style_feedbackinterface_p.h b/src/gui/styles/qs60style_feedbackinterface_p.h new file mode 100644 index 0000000..81fcdc3 --- /dev/null +++ b/src/gui/styles/qs60style_feedbackinterface_p.h @@ -0,0 +1,50 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtGui module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QObject> + +class TactileFeedbackInterface : public QObject +{ + public: + virtual void touchFeedback(QEvent *event, const QWidget *widget) = 0; +}; + +Q_DECLARE_INTERFACE(TactileFeedbackInterface, "com.trolltech.Qt.TactileFeedbackInterface/1.0") diff --git a/src/gui/styles/qs60style_p.h b/src/gui/styles/qs60style_p.h index b3f4160..b46f75e 100644 --- a/src/gui/styles/qs60style_p.h +++ b/src/gui/styles/qs60style_p.h @@ -387,6 +387,7 @@ private: //data members class QFocusFrame; class QProgressBar; class QS60StyleAnimation; +class TactileFeedbackInterface; // Private class #ifdef Q_OS_SYMBIAN @@ -572,6 +573,8 @@ public: void stopAnimation(QS60StyleEnums::SkinParts animation); static QS60StyleAnimation* animationDefinition(QS60StyleEnums::SkinParts part); static void removeAnimations(); + //No support for tactile feedback in emulated style + void touchFeedback(QEvent *event, const QWidget *widget); #endif @@ -626,6 +629,7 @@ private: #ifdef Q_WS_S60 //list of progress bars having animation running QList<QProgressBar *> m_bars; + TactileFeedbackInterface *m_feedbackPlugin; #endif }; diff --git a/src/gui/styles/qs60style_s60.cpp b/src/gui/styles/qs60style_s60.cpp index 5dda42e..a1ea308 100644 --- a/src/gui/styles/qs60style_s60.cpp +++ b/src/gui/styles/qs60style_s60.cpp @@ -49,6 +49,10 @@ #include "private/qcore_symbian_p.h" #include "qapplication.h" +#include "qpluginloader.h" +#include "qlibraryinfo.h" +#include "private/qs60style_feedbackinterface_p.h" + #include <w32std.h> #include <AknsConstants.h> #include <aknconsts.h> @@ -1143,13 +1147,25 @@ void QS60StylePrivate::setActiveLayout() Q_GLOBAL_STATIC(QList<QS60StyleAnimation *>, m_animations) -QS60StylePrivate::QS60StylePrivate() +QS60StylePrivate::QS60StylePrivate() : m_feedbackPlugin(0) { //Animation defaults need to be created when style is instantiated QS60StyleAnimation* progressBarAnimation = new QS60StyleAnimation(QS60StyleEnums::SP_QgnGrafBarWaitAnim, 7, 100); m_animations()->append(progressBarAnimation); // No need to set active layout, if dynamic metrics API is available setActiveLayout(); + + //Tactile feedback plugin is only available for touch devices. + if (isTouchSupported()) { + QString pluginsPath = QLibraryInfo::location(QLibraryInfo::PluginsPath); + pluginsPath += QLatin1String("/feedback/qtactilefeedback.dll"); + + // Create plugin loader + QPluginLoader pluginLoader(pluginsPath); + // Load plugin and store pointer to the plugin implementation + if (pluginLoader.load()) + m_feedbackPlugin = qobject_cast<TactileFeedbackInterface*>(pluginLoader.instance()); + } } void QS60StylePrivate::removeAnimations() @@ -1439,6 +1455,12 @@ void QS60StylePrivate::stopAnimation(QS60StyleEnums::SkinParts animationPart) } } +void QS60StylePrivate::touchFeedback(QEvent *event, const QWidget *widget) +{ + if (m_feedbackPlugin) + m_feedbackPlugin->touchFeedback(event, widget); +} + QVariant QS60StyleModeSpecifics::themeDefinition( QS60StyleEnums::ThemeDefinitions definition, QS60StyleEnums::SkinParts part) { diff --git a/src/imports/folderlistmodel/folderlistmodel.pro b/src/imports/folderlistmodel/folderlistmodel.pro index ef58226..44764a9 100644 --- a/src/imports/folderlistmodel/folderlistmodel.pro +++ b/src/imports/folderlistmodel/folderlistmodel.pro @@ -15,7 +15,6 @@ qmldir.path += $$[QT_INSTALL_IMPORTS]/$$TARGETPATH symbian:{ TARGET.UID3 = 0x20021320 - include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) isEmpty(DESTDIR):importFiles.files = qmlfolderlistmodelplugin$${QT_LIBINFIX}.dll qmldir else:importFiles.files = $$DESTDIR/qmlfolderlistmodelplugin$${QT_LIBINFIX}.dll qmldir diff --git a/src/imports/gestures/gestures.pro b/src/imports/gestures/gestures.pro index 5722b68..ad872ba 100644 --- a/src/imports/gestures/gestures.pro +++ b/src/imports/gestures/gestures.pro @@ -15,7 +15,6 @@ qmldir.path += $$[QT_INSTALL_IMPORTS]/$$TARGETPATH symbian:{ TARGET.UID3 = 0x2002131F - include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) isEmpty(DESTDIR):importFiles.files = qmlgesturesplugin$${QT_LIBINFIX}.dll qmldir else:importFiles.files = $$DESTDIR/qmlgesturesplugin$${QT_LIBINFIX}.dll qmldir diff --git a/src/imports/particles/particles.pro b/src/imports/particles/particles.pro index fd6f0f6..90b50e4 100644 --- a/src/imports/particles/particles.pro +++ b/src/imports/particles/particles.pro @@ -19,7 +19,6 @@ qmldir.path += $$[QT_INSTALL_IMPORTS]/$$TARGETPATH symbian:{ TARGET.UID3 = 0x2002131E - include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) isEmpty(DESTDIR):importFiles.files = qmlparticlesplugin$${QT_LIBINFIX}.dll qmldir else:importFiles.files = $$DESTDIR/qmlparticlesplugin$${QT_LIBINFIX}.dll qmldir diff --git a/src/openvg/qpaintengine_vg.cpp b/src/openvg/qpaintengine_vg.cpp index ce9d11a..9df32d9 100644 --- a/src/openvg/qpaintengine_vg.cpp +++ b/src/openvg/qpaintengine_vg.cpp @@ -55,6 +55,8 @@ #include <QtGui/private/qfontengine_p.h> #include <QtGui/private/qpainterpath_p.h> #include <QtGui/private/qstatictext_p.h> +#include <QtGui/QApplication> +#include <QtGui/QDesktopWidget> #include <QtCore/qmath.h> #include <QDebug> #include <QSet> @@ -3060,6 +3062,21 @@ void qt_vg_drawVGImageStencil vgDrawImage(vgImg); } +bool QVGPaintEngine::canVgWritePixels(const QImage &image) const +{ + Q_D(const QVGPaintEngine); + // vgWritePixels ignores masking, blending and xforms so we can only use it if + // ALL of the following conditions are true: + // - It is a simple translate, or a scale of -1 on the y-axis (inverted) + // - The opacity is totally opaque + // - The composition mode is "source" OR "source over" provided the image is opaque + return ( d->imageTransform.type() <= QTransform::TxScale + && d->imageTransform.m11() == 1.0 && qAbs(d->imageTransform.m22()) == 1.0) + && d->opacity == 1.0f + && (d->blendMode == VG_BLEND_SRC || (d->blendMode == VG_BLEND_SRC_OVER && + !image.hasAlphaChannel())); +} + void QVGPaintEngine::drawPixmap(const QRectF &r, const QPixmap &pm, const QRectF &sr) { QPixmapData *pd = pm.pixmapData(); @@ -3074,9 +3091,18 @@ void QVGPaintEngine::drawPixmap(const QRectF &r, const QPixmap &pm, const QRectF drawVGImage(d, r, vgpd->toVGImage(), vgpd->size(), sr); else drawVGImage(d, r, vgpd->toVGImage(d->opacity), vgpd->size(), sr); - } else { - drawImage(r, *(pd->buffer()), sr, Qt::AutoColor); + + if(!vgpd->failedToAlloc) + return; + + // try to reallocate next time if reasonable small pixmap + QSize screenSize = QApplication::desktop()->screenGeometry().size(); + if (pm.size().width() <= screenSize.width() + && pm.size().height() <= screenSize.height()) + vgpd->failedToAlloc = false; } + + drawImage(r, *(pd->buffer()), sr, Qt::AutoColor); } void QVGPaintEngine::drawPixmap(const QPointF &pos, const QPixmap &pm) @@ -3093,9 +3119,18 @@ void QVGPaintEngine::drawPixmap(const QPointF &pos, const QPixmap &pm) drawVGImage(d, pos, vgpd->toVGImage()); else drawVGImage(d, pos, vgpd->toVGImage(d->opacity)); - } else { - drawImage(pos, *(pd->buffer())); + + if (!vgpd->failedToAlloc) + return; + + // try to reallocate next time if reasonable small pixmap + QSize screenSize = QApplication::desktop()->screenGeometry().size(); + if (pm.size().width() <= screenSize.width() + && pm.size().height() <= screenSize.height()) + vgpd->failedToAlloc = false; } + + drawImage(pos, *(pd->buffer())); } void QVGPaintEngine::drawImage @@ -3116,9 +3151,31 @@ void QVGPaintEngine::drawImage QRectF(QPointF(0, 0), sr.size())); } } else { - // Monochrome images need to use the vgChildImage() path. - vgImg = toVGImage(image, flags); - drawVGImage(d, r, vgImg, image.size(), sr); + if (canVgWritePixels(image) && (r.size() == sr.size()) && !flags) { + // Optimization for straight blits, no blending + int x = sr.x(); + int y = sr.y(); + int bpp = image.depth() >> 3; // bytes + int offset = 0; + int bpl = image.bytesPerLine(); + if (d->imageTransform.m22() < 0) { + // inverted + offset = ((y + sr.height()) * bpl) - ((image.width() - x) * bpp); + bpl = -bpl; + } else { + offset = (y * bpl) + (x * bpp); + } + const uchar *bits = image.constBits() + offset; + + QPointF mapped = d->imageTransform.map(r.topLeft()); + vgWritePixels(bits, bpl, qt_vg_image_to_vg_format(image.format()), + mapped.x(), mapped.y() - sr.height(), r.width(), r.height()); + return; + } else { + // Monochrome images need to use the vgChildImage() path. + vgImg = toVGImage(image, flags); + drawVGImage(d, r, vgImg, image.size(), sr); + } } vgDestroyImage(vgImg); } @@ -3127,10 +3184,21 @@ void QVGPaintEngine::drawImage(const QPointF &pos, const QImage &image) { Q_D(QVGPaintEngine); VGImage vgImg; - if (d->simpleTransform || d->opacity == 1.0f) + if (canVgWritePixels(image)) { + // Optimization for straight blits, no blending + bool inverted = (d->imageTransform.m22() < 0); + const uchar *bits = inverted ? image.constBits() + image.byteCount() : image.constBits(); + int bpl = inverted ? -image.bytesPerLine() : image.bytesPerLine(); + + QPointF mapped = d->imageTransform.map(pos); + vgWritePixels(bits, bpl, qt_vg_image_to_vg_format(image.format()), + mapped.x(), mapped.y() - image.height(), image.width(), image.height()); + return; + } else if (d->simpleTransform || d->opacity == 1.0f) { vgImg = toVGImage(image); - else + } else { vgImg = toVGImageWithOpacity(image, d->opacity); + } drawVGImage(d, pos, vgImg); vgDestroyImage(vgImg); } diff --git a/src/openvg/qpaintengine_vg_p.h b/src/openvg/qpaintengine_vg_p.h index 75cf053..dc98137 100644 --- a/src/openvg/qpaintengine_vg_p.h +++ b/src/openvg/qpaintengine_vg_p.h @@ -170,6 +170,7 @@ private: bool isDefaultClipRegion(const QRegion& region); bool isDefaultClipRect(const QRect& rect); bool clearRect(const QRectF &rect, const QColor &color); + bool canVgWritePixels(const QImage &image) const; }; QT_END_NAMESPACE diff --git a/src/openvg/qpixmapdata_vg.cpp b/src/openvg/qpixmapdata_vg.cpp index e8ec333..509882b 100644 --- a/src/openvg/qpixmapdata_vg.cpp +++ b/src/openvg/qpixmapdata_vg.cpp @@ -65,6 +65,7 @@ QVGPixmapData::QVGPixmapData(PixelType type) recreate = true; inImagePool = false; inLRU = false; + failedToAlloc = false; #if !defined(QT_NO_EGL) context = 0; qt_vg_register_pixmap(this); @@ -155,6 +156,9 @@ void QVGPixmapData::resize(int wid, int ht) void QVGPixmapData::fromImage (const QImage &image, Qt::ImageConversionFlags flags) { + if(image.isNull()) + return; + QImage img = image; createPixmapForImage(img, flags, false); } @@ -203,10 +207,19 @@ void QVGPixmapData::createPixmapForImage(QImage &image, Qt::ImageConversionFlags else resize(image.width(), image.height()); - if (inPlace && image.data_ptr()->convertInPlace(sourceFormat(), flags)) + QImage::Format format = sourceFormat(); + int d = image.depth(); + if (d == 1 || d == 16 || d == 24 || (d == 32 && !image.hasAlphaChannel())) + format = QImage::Format_RGB32; + else if (!(flags & Qt::NoOpaqueDetection) && const_cast<QImage &>(image).data_ptr()->checkForAlphaPixels()) + format = sourceFormat(); + else + format = QImage::Format_RGB32; + + if (inPlace && image.data_ptr()->convertInPlace(format, flags)) source = image; else - source = image.convertToFormat(sourceFormat()); + source = image.convertToFormat(format); recreate = true; } @@ -278,7 +291,7 @@ QPaintEngine* QVGPixmapData::paintEngine() const VGImage QVGPixmapData::toVGImage() { - if (!isValid()) + if (!isValid() || failedToAlloc) return VG_INVALID_HANDLE; #if !defined(QT_NO_EGL) @@ -294,11 +307,13 @@ VGImage QVGPixmapData::toVGImage() if (vgImage == VG_INVALID_HANDLE) { vgImage = QVGImagePool::instance()->createImageForPixmap - (VG_sARGB_8888_PRE, w, h, VG_IMAGE_QUALITY_FASTER, this); + (qt_vg_image_to_vg_format(source.format()), w, h, VG_IMAGE_QUALITY_FASTER, this); // Bail out if we run out of GPU memory - try again next time. - if (vgImage == VG_INVALID_HANDLE) + if (vgImage == VG_INVALID_HANDLE) { + failedToAlloc = true; return VG_INVALID_HANDLE; + } inImagePool = true; } else if (inImagePool) { @@ -309,7 +324,7 @@ VGImage QVGPixmapData::toVGImage() vgImageSubData (vgImage, source.constBits(), source.bytesPerLine(), - VG_sARGB_8888_PRE, 0, 0, w, h); + qt_vg_image_to_vg_format(source.format()), 0, 0, w, h); } recreate = false; diff --git a/src/openvg/qpixmapdata_vg_p.h b/src/openvg/qpixmapdata_vg_p.h index 114d545..7ffdc85 100644 --- a/src/openvg/qpixmapdata_vg_p.h +++ b/src/openvg/qpixmapdata_vg_p.h @@ -143,7 +143,9 @@ private: QVGPixmapData *nextLRU; QVGPixmapData *prevLRU; bool inLRU; + bool failedToAlloc; friend class QVGImagePool; + friend class QVGPaintEngine; #if !defined(QT_NO_EGL) QVGPixmapData *next; diff --git a/src/openvg/qvg_symbian.cpp b/src/openvg/qvg_symbian.cpp index e2a99c2..e4edfcb 100644 --- a/src/openvg/qvg_symbian.cpp +++ b/src/openvg/qvg_symbian.cpp @@ -165,7 +165,6 @@ void QVGPixmapData::fromNativeType(void* pixmap, NativeType type) CFbsBitmap *bitmap = reinterpret_cast<CFbsBitmap*>(pixmap); bool deleteSourceBitmap = false; - #ifdef Q_SYMBIAN_HAS_EXTENDED_BITMAP_TYPE // Rasterize extended bitmaps diff --git a/src/plugins/bearer/connman/qconnmanservice_linux.cpp b/src/plugins/bearer/connman/qconnmanservice_linux.cpp index 08c3865..b66298e 100644 --- a/src/plugins/bearer/connman/qconnmanservice_linux.cpp +++ b/src/plugins/bearer/connman/qconnmanservice_linux.cpp @@ -79,7 +79,7 @@ if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) { QLatin1String(CONNMAN_MANAGER_PATH), QLatin1String(CONNMAN_MANAGER_INTERFACE), QLatin1String("PropertyChanged"), - this,SIGNAL(propertyChanged(const QString &, const QDBusVariant & ))), Qt::UniqueConnection) { + this,SIGNAL(propertyChanged(const QString &, const QDBusVariant & )))) { qWarning() << "PropertyCHanged not connected"; } } @@ -89,7 +89,7 @@ if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) { QLatin1String(CONNMAN_MANAGER_PATH), QLatin1String(CONNMAN_MANAGER_INTERFACE), QLatin1String("StateChanged"), - this,SIGNAL(stateChanged(const QString&))), Qt::UniqueConnection) { + this,SIGNAL(stateChanged(const QString&)))) { qWarning() << "StateChanged not connected"; } @@ -338,7 +338,7 @@ void QConnmanNetworkInterface::connectNotify(const char *signal) this->path(), QLatin1String(CONNMAN_NETWORK_INTERFACE), QLatin1String("PropertyChanged"), - this,SIGNAL(propertyChanged(QString,QDBusVariant))), Qt::UniqueConnection) { + this,SIGNAL(propertyChanged(QString,QDBusVariant)))) { qWarning() << "network properties not connected"; } } @@ -350,7 +350,7 @@ void QConnmanNetworkInterface::connectNotify(const char *signal) this->path(), QLatin1String(CONNMAN_NETWORK_INTERFACE), QLatin1String("PropertyChanged"), - helper,SLOT(propertyChanged(QString,QDBusVariant))), Qt::UniqueConnection; + helper,SLOT(propertyChanged(QString,QDBusVariant))); QObject::connect(helper,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)), this,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)), Qt::UniqueConnection); diff --git a/src/plugins/s60/feedback/feedback.pro b/src/plugins/s60/feedback/feedback.pro new file mode 100644 index 0000000..32ddf6f --- /dev/null +++ b/src/plugins/s60/feedback/feedback.pro @@ -0,0 +1,16 @@ +include(../../qpluginbase.pri) + +TARGET = qtactilefeedback$${QT_LIBINFIX} + +INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE + +contains(S60_VERSION, 5.0)|contains(S60_VERSION, symbian3) { + HEADERS += qtactileFeedback.h + SOURCES += qtactileFeedback_s60.cpp + + LIBS += -ltouchfeedback +} + +load(data_caging_paths) + +TARGET.UID3=0x200315B4 diff --git a/src/plugins/s60/feedback/qtactileFeedback.h b/src/plugins/s60/feedback/qtactileFeedback.h new file mode 100644 index 0000000..7c4cc29 --- /dev/null +++ b/src/plugins/s60/feedback/qtactileFeedback.h @@ -0,0 +1,54 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtGui module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QEvent> +#include <QWidget> + +#include "private/qs60style_feedbackinterface_p.h" + +class QTactileFeedback : public TactileFeedbackInterface +{ + Q_OBJECT + Q_INTERFACES(TactileFeedbackInterface) + + public: + void touchFeedback(QEvent *event, const QWidget *widget); + }; diff --git a/src/plugins/s60/feedback/qtactileFeedback_s60.cpp b/src/plugins/s60/feedback/qtactileFeedback_s60.cpp new file mode 100644 index 0000000..c2f1d34 --- /dev/null +++ b/src/plugins/s60/feedback/qtactileFeedback_s60.cpp @@ -0,0 +1,83 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtGui module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QApplication> +#include <QObject> +#include <QSlider> +#include <QScrollBar> + +#include <QtCore/qplugin.h> +#include "qtactileFeedback.h" + +#include <touchfeedback.h> + +void QTactileFeedback::touchFeedback(QEvent *event, const QWidget *widget) +{ + //Lets share the global instance for touch feedback (you are NOT allowed to try and delete it!). + MTouchFeedback* feedback = MTouchFeedback::Instance(); + + //If the widget itself is not handling focus, try to use focusProxy widget. + const QWidget *w = ((widget->focusPolicy() == Qt::NoFocus) && (widget->focusProxy())) ? widget->focusProxy() : widget; + + //Only give tactile feedback for enabled widgets that take focus. + if (feedback && w && w->isEnabled() && w->isWidgetType() && w->isVisible()) { + //Scrollbars are 'special' that they don't take focus (nor they have focusProxy), yet we'd like to have tactile feedback for them + if (w->focusPolicy() == Qt::NoFocus) + if (!qobject_cast<const QScrollBar *>(w)) + return; + + //Don't give tactile feedback for widgets that are outside topmost dialog. + QWidget *dialog = QApplication::activeModalWidget(); + if (dialog) { + QList<const QWidget *> allChildren = dialog->findChildren<const QWidget *>(); + if (!allChildren.contains(w)) + return; + } + + //Widget specific tactile feedback. + if (qobject_cast<const QSlider *>(w) || qobject_cast<const QScrollBar *>(w)) + feedback->InstantFeedback(ETouchFeedbackSensitive); + else + feedback->InstantFeedback(ETouchFeedbackBasic); + } +} + +Q_EXPORT_PLUGIN2("feedback", QTactileFeedback); diff --git a/src/plugins/s60/s60.pro b/src/plugins/s60/s60.pro index c999fff..ffcd170 100644 --- a/src/plugins/s60/s60.pro +++ b/src/plugins/s60/s60.pro @@ -6,6 +6,10 @@ symbian { SUBDIRS += 3_1 3_2 } + contains(S60_VERSION, 5.0)|contains(S60_VERSION, symbian3) { + SUBDIRS += feedback + } + # 5.0 is used also for Symbian3 and later SUBDIRS += 5_0 }
\ No newline at end of file diff --git a/src/s60installs/bwins/QtGuiu.def b/src/s60installs/bwins/QtGuiu.def index 7cc2752..c91b22c 100644 --- a/src/s60installs/bwins/QtGuiu.def +++ b/src/s60installs/bwins/QtGuiu.def @@ -12890,10 +12890,12 @@ EXPORTS ?lastRightBearing@QFontEngine@@IAE?AUQFixed@@ABUQGlyphLayout@@_N@Z @ 12889 NONAME ; struct QFixed QFontEngine::lastRightBearing(struct QGlyphLayout const &, bool) ?childrenBoundingRectHelper@QGraphicsItemPrivate@@QAEXPAVQTransform@@PAVQRectF@@PAVQGraphicsItem@@@Z @ 12890 NONAME ; void QGraphicsItemPrivate::childrenBoundingRectHelper(class QTransform *, class QRectF *, class QGraphicsItem *) ?setTimeout@QTapAndHoldGesture@@SAXH@Z @ 12891 NONAME ; void QTapAndHoldGesture::setTimeout(int) - ?qmljsDebugArguments@QApplicationPrivate@@2VQString@@A @ 12892 NONAME ; class QString QApplicationPrivate::qmljsDebugArguments + ?qmljsDebugArguments@QApplicationPrivate@@2VQString@@A @ 12892 NONAME ABSENT ; class QString QApplicationPrivate::qmljsDebugArguments ?effectiveBoundingRect@QGraphicsItemPrivate@@QBE?AVQRectF@@PAVQGraphicsItem@@@Z @ 12893 NONAME ; class QRectF QGraphicsItemPrivate::effectiveBoundingRect(class QGraphicsItem *) const ?maxTextureHeight@QTextureGlyphCache@@UBEHXZ @ 12894 NONAME ; int QTextureGlyphCache::maxTextureHeight(void) const ?maxTextureWidth@QTextureGlyphCache@@UBEHXZ @ 12895 NONAME ; int QTextureGlyphCache::maxTextureWidth(void) const - ?convertToPostscriptFontFamilyName@QFontEngine@@SA?AVQByteArray@@ABV2@@Z @ 12896 NONAME ; class QByteArray QFontEngine::convertToPostscriptFontFamilyName(class QByteArray const &) - ?lastResortFont@QFont@@QBE?AVQString@@XZ @ 12897 NONAME ; class QString QFont::lastResortFont(void) const + ?qmljs_debug_arguments@QApplicationPrivate@@2VQString@@A @ 12896 NONAME ; class QString QApplicationPrivate::qmljs_debug_arguments + ?qmljsDebugArgumentsString@QApplicationPrivate@@SA?AVQString@@XZ @ 12897 NONAME ; class QString QApplicationPrivate::qmljsDebugArgumentsString(void) + ?convertToPostscriptFontFamilyName@QFontEngine@@SA?AVQByteArray@@ABV2@@Z @ 12898 NONAME ; class QByteArray QFontEngine::convertToPostscriptFontFamilyName(class QByteArray const &) + ?lastResortFont@QFont@@QBE?AVQString@@XZ @ 12899 NONAME ; class QString QFont::lastResortFont(void) const diff --git a/src/s60installs/eabi/QtGuiu.def b/src/s60installs/eabi/QtGuiu.def index 4e867a3..f772bcc 100644 --- a/src/s60installs/eabi/QtGuiu.def +++ b/src/s60installs/eabi/QtGuiu.def @@ -12094,9 +12094,11 @@ EXPORTS _ZN18QTapAndHoldGesture7timeoutEv @ 12093 NONAME _ZN20QGraphicsItemPrivate26childrenBoundingRectHelperEP10QTransformP6QRectFb @ 12094 NONAME ABSENT _ZN20QGraphicsItemPrivate14children_clearEP24QDeclarativeListPropertyI15QGraphicsObjectE @ 12095 NONAME - _ZN19QApplicationPrivate19qmljsDebugArgumentsE @ 12096 NONAME DATA 4 + _ZN19QApplicationPrivate19qmljsDebugArgumentsE @ 12096 NONAME DATA 4 ABSENT _ZN20QGraphicsItemPrivate26childrenBoundingRectHelperEP10QTransformP6QRectFP13QGraphicsItem @ 12097 NONAME _ZNK20QGraphicsItemPrivate21effectiveBoundingRectEP13QGraphicsItem @ 12098 NONAME - _ZNK5QFont14lastResortFontEv @ 12099 NONAME - _ZN11QFontEngine33convertToPostscriptFontFamilyNameERK10QByteArray @ 12100 NONAME + _ZN19QApplicationPrivate21qmljs_debug_argumentsE @ 12099 NONAME DATA 4 + _ZN19QApplicationPrivate25qmljsDebugArgumentsStringEv @ 12100 NONAME + _ZNK5QFont14lastResortFontEv @ 12101 NONAME + _ZN11QFontEngine33convertToPostscriptFontFamilyNameERK10QByteArray @ 12102 NONAME diff --git a/src/s60installs/qt.iby b/src/s60installs/qt.iby index 4afbf05..2b3be0a 100644 --- a/src/s60installs/qt.iby +++ b/src/s60installs/qt.iby @@ -60,6 +60,8 @@ file=ABI_DIR\BUILD_DIR\qsymbianbearer.dll SHARED_LIB_DIR\qsymbianbearer.dll // so don't bother including those plugins file=ABI_DIR\BUILD_DIR\qts60plugin_5_0.dll SHARED_LIB_DIR\qts60plugin_5_0.dll +file=ABI_DIR\BUILD_DIR\qtactilefeedback.dll SHARED_LIB_DIR\qtactilefeedback.dll + S60_APP_RESOURCE(s60main) // imageformats stubs @@ -105,6 +107,9 @@ data=\epoc32\data\z\resource\qt\plugins\graphicssystems\qglgraphicssystem.qtplug // bearer stub data=\epoc32\data\z\resource\qt\plugins\bearer\qsymbianbearer.qtplugin resource\qt\plugins\bearer\qsymbianbearer.qtplugin +// feedback +data=\epoc32\data\z\resource\qt\plugins\feedback\qtactilefeedback.qtplugin resource\qt\plugins\feedback\qtactilefeedback.qtplugin + // Stub sis file data=ZSYSTEM\install\qt_stub.sis System\Install\qt_stub.sis data=ZSYSTEM\install\qtwebkit_stub.sis System\Install\qtwebkit_stub.sis diff --git a/src/s60installs/s60installs.pro b/src/s60installs/s60installs.pro index d3d9d44..2b3229e 100644 --- a/src/s60installs/s60installs.pro +++ b/src/s60installs/s60installs.pro @@ -87,6 +87,12 @@ symbian: { DEPLOYMENT += bearer_plugin } + contains(S60_VERSION, 5.0)|contains(S60_VERSION, symbian3) { + feedback_plugin.sources = $$QT_BUILD_TREE/plugins/s60/feedback/qtactilefeedback$${QT_LIBINFIX}.dll + feedback_plugin.path = c:$$QT_PLUGINS_BASE_DIR/feedback + DEPLOYMENT += feedback_plugin + } + qtlibraries.pkg_postrules += qts60plugindeployment qtlibraries.path = c:/sys/bin diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.0.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.0.png Binary files differnew file mode 100644 index 0000000..c675be7 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.0.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.1.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.1.png Binary files differnew file mode 100644 index 0000000..9f605c3 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.1.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.2.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.2.png Binary files differnew file mode 100644 index 0000000..35572c5 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.2.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.3.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.3.png Binary files differnew file mode 100644 index 0000000..20146c9 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.3.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.4.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.4.png Binary files differnew file mode 100644 index 0000000..85fac89 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.4.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.5.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.5.png Binary files differnew file mode 100644 index 0000000..e522bae --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.5.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.6.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.6.png Binary files differnew file mode 100644 index 0000000..ec0ba86 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.6.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.7.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.7.png Binary files differnew file mode 100644 index 0000000..20cacc81 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.7.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.8.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.8.png Binary files differnew file mode 100644 index 0000000..b2b187d --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.8.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.9.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.9.png Binary files differnew file mode 100644 index 0000000..c675be7 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.9.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.qml b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.qml new file mode 100644 index 0000000..a3e5ea0 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.qml @@ -0,0 +1,2859 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "c33447c78ea64452ec3cd1696fb502eb" + } + Frame { + msec: 32 + hash: "c33447c78ea64452ec3cd1696fb502eb" + } + Frame { + msec: 48 + hash: "c33447c78ea64452ec3cd1696fb502eb" + } + Frame { + msec: 64 + hash: "c33447c78ea64452ec3cd1696fb502eb" + } + Frame { + msec: 80 + hash: "c33447c78ea64452ec3cd1696fb502eb" + } + Frame { + msec: 96 + hash: "c33447c78ea64452ec3cd1696fb502eb" + } + Frame { + msec: 112 + hash: "c33447c78ea64452ec3cd1696fb502eb" + } + Frame { + msec: 128 + hash: "c33447c78ea64452ec3cd1696fb502eb" + } + Frame { + msec: 144 + hash: "c33447c78ea64452ec3cd1696fb502eb" + } + Frame { + msec: 160 + hash: "c33447c78ea64452ec3cd1696fb502eb" + } + Frame { + msec: 176 + hash: "c33447c78ea64452ec3cd1696fb502eb" + } + Frame { + msec: 192 + hash: "c33447c78ea64452ec3cd1696fb502eb" + } + Frame { + msec: 208 + hash: "c33447c78ea64452ec3cd1696fb502eb" + } + Frame { + msec: 224 + hash: "c33447c78ea64452ec3cd1696fb502eb" + } + Frame { + msec: 240 + hash: "c33447c78ea64452ec3cd1696fb502eb" + } + Frame { + msec: 256 + hash: "c33447c78ea64452ec3cd1696fb502eb" + } + Frame { + msec: 272 + hash: "c33447c78ea64452ec3cd1696fb502eb" + } + Frame { + msec: 288 + hash: "c33447c78ea64452ec3cd1696fb502eb" + } + Frame { + msec: 304 + hash: "c33447c78ea64452ec3cd1696fb502eb" + } + Frame { + msec: 320 + hash: "c33447c78ea64452ec3cd1696fb502eb" + } + Frame { + msec: 336 + hash: "c33447c78ea64452ec3cd1696fb502eb" + } + Frame { + msec: 352 + hash: "c33447c78ea64452ec3cd1696fb502eb" + } + Frame { + msec: 368 + hash: "c33447c78ea64452ec3cd1696fb502eb" + } + Frame { + msec: 384 + hash: "c33447c78ea64452ec3cd1696fb502eb" + } + Frame { + msec: 400 + hash: "c33447c78ea64452ec3cd1696fb502eb" + } + Frame { + msec: 416 + hash: "c33447c78ea64452ec3cd1696fb502eb" + } + Frame { + msec: 432 + hash: "c33447c78ea64452ec3cd1696fb502eb" + } + Key { + type: 6 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 448 + hash: "c33447c78ea64452ec3cd1696fb502eb" + } + Frame { + msec: 464 + hash: "159004854f8c07144034e1265cf6f44a" + } + Frame { + msec: 480 + hash: "a3f2471ef4ceac77a1c20ac327550d8d" + } + Frame { + msec: 496 + hash: "1121efa0df5057387be08fced62fe9eb" + } + Frame { + msec: 512 + hash: "67ad85cda0b8fb382cb536ef880f715b" + } + Frame { + msec: 528 + hash: "4de18d32c93ca5cd77cb45c8c4f3b4fc" + } + Key { + type: 7 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 544 + hash: "de26f0243101d57f4acf42b256ad75f9" + } + Frame { + msec: 560 + hash: "119ea359724d5f4ba1e1aa120cddf3ea" + } + Frame { + msec: 576 + hash: "65fbee28f9ea68a6f2736d75a65b3ee2" + } + Frame { + msec: 592 + hash: "7b1893397b76b0c95094eeca1dd21446" + } + Frame { + msec: 608 + hash: "7b1893397b76b0c95094eeca1dd21446" + } + Frame { + msec: 624 + hash: "7b1893397b76b0c95094eeca1dd21446" + } + Frame { + msec: 640 + hash: "7b1893397b76b0c95094eeca1dd21446" + } + Frame { + msec: 656 + hash: "7b1893397b76b0c95094eeca1dd21446" + } + Frame { + msec: 672 + hash: "7b1893397b76b0c95094eeca1dd21446" + } + Frame { + msec: 688 + hash: "7b1893397b76b0c95094eeca1dd21446" + } + Frame { + msec: 704 + hash: "7b1893397b76b0c95094eeca1dd21446" + } + Key { + type: 6 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 720 + hash: "7b1893397b76b0c95094eeca1dd21446" + } + Frame { + msec: 736 + hash: "6123118055b4d0678eb2b7cdf8b12592" + } + Frame { + msec: 752 + hash: "fe4b009abe081a6eaeab6ef9e996f3fd" + } + Frame { + msec: 768 + hash: "2f23f647daa1c11637d6a21c2668be49" + } + Frame { + msec: 784 + hash: "62d995a1feb7f600669c1c7ef5f6a5da" + } + Frame { + msec: 800 + hash: "66e881ee93f4722605a63dccd083635d" + } + Frame { + msec: 816 + hash: "27ac08cc4f62552a9d1c1cbf781a00f9" + } + Key { + type: 7 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 832 + hash: "792be2ec5a08ad74cda4c19b6bc209d0" + } + Frame { + msec: 848 + hash: "0d28add40afd81f768603ea3e396f0b3" + } + Frame { + msec: 864 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 880 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 896 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 912 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 928 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 944 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 960 + image: "gridview.0.png" + } + Frame { + msec: 976 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 992 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 1008 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 1024 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 1040 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 1056 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 1072 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 1088 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 1104 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 1120 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 1136 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 1152 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Key { + type: 6 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 1168 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 1184 + hash: "eac6b1299cb386f2be244b43a0be26ae" + } + Frame { + msec: 1200 + hash: "14350c877f5259a3cb3836fa5f8ff563" + } + Key { + type: 7 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 1216 + hash: "582bfeca87cba0dee21b9551e583ec93" + } + Frame { + msec: 1232 + hash: "cefe1139141fa381e55f1254713a1380" + } + Frame { + msec: 1248 + hash: "72e966a995c818b16b48bb193eda241a" + } + Frame { + msec: 1264 + hash: "8dfeefd93687861158ca4496e56cdbb9" + } + Frame { + msec: 1280 + hash: "daf8474f1f583039f6a14b822e5dff5e" + } + Frame { + msec: 1296 + hash: "eb2b4ba7ffab22660d0b9de4226ea88f" + } + Frame { + msec: 1312 + hash: "f0f00d22d15ed9828db7b5f3a3669fe9" + } + Frame { + msec: 1328 + hash: "caa3c1a106d549e6bb94a1746bd7a53c" + } + Frame { + msec: 1344 + hash: "caa3c1a106d549e6bb94a1746bd7a53c" + } + Frame { + msec: 1360 + hash: "caa3c1a106d549e6bb94a1746bd7a53c" + } + Frame { + msec: 1376 + hash: "caa3c1a106d549e6bb94a1746bd7a53c" + } + Frame { + msec: 1392 + hash: "caa3c1a106d549e6bb94a1746bd7a53c" + } + Frame { + msec: 1408 + hash: "caa3c1a106d549e6bb94a1746bd7a53c" + } + Frame { + msec: 1424 + hash: "caa3c1a106d549e6bb94a1746bd7a53c" + } + Frame { + msec: 1440 + hash: "caa3c1a106d549e6bb94a1746bd7a53c" + } + Frame { + msec: 1456 + hash: "caa3c1a106d549e6bb94a1746bd7a53c" + } + Frame { + msec: 1472 + hash: "caa3c1a106d549e6bb94a1746bd7a53c" + } + Frame { + msec: 1488 + hash: "caa3c1a106d549e6bb94a1746bd7a53c" + } + Frame { + msec: 1504 + hash: "caa3c1a106d549e6bb94a1746bd7a53c" + } + Frame { + msec: 1520 + hash: "caa3c1a106d549e6bb94a1746bd7a53c" + } + Frame { + msec: 1536 + hash: "caa3c1a106d549e6bb94a1746bd7a53c" + } + Frame { + msec: 1552 + hash: "caa3c1a106d549e6bb94a1746bd7a53c" + } + Frame { + msec: 1568 + hash: "caa3c1a106d549e6bb94a1746bd7a53c" + } + Frame { + msec: 1584 + hash: "caa3c1a106d549e6bb94a1746bd7a53c" + } + Frame { + msec: 1600 + hash: "caa3c1a106d549e6bb94a1746bd7a53c" + } + Frame { + msec: 1616 + hash: "caa3c1a106d549e6bb94a1746bd7a53c" + } + Frame { + msec: 1632 + hash: "caa3c1a106d549e6bb94a1746bd7a53c" + } + Frame { + msec: 1648 + hash: "caa3c1a106d549e6bb94a1746bd7a53c" + } + Key { + type: 6 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 1664 + hash: "caa3c1a106d549e6bb94a1746bd7a53c" + } + Frame { + msec: 1680 + hash: "66e158aa7dd78362dffddf2a9e7375ef" + } + Frame { + msec: 1696 + hash: "8c23d5245774ab5252c98c19c33f8171" + } + Frame { + msec: 1712 + hash: "bf37dc941e49af9bd1e0e182a4ef6f0a" + } + Frame { + msec: 1728 + hash: "3fc025193fa6d6db0428ae1fa179bf55" + } + Frame { + msec: 1744 + hash: "9efef22e6e29e18b2896982440c7bbae" + } + Frame { + msec: 1760 + hash: "380e92b30430d3f589a88e67b7b959bd" + } + Key { + type: 7 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 1776 + hash: "80329cd1548c4ff9ee589d56e9d8cd90" + } + Frame { + msec: 1792 + hash: "6030c139032fc80abb5aabb85d8dfa4d" + } + Frame { + msec: 1808 + hash: "8304d2432168a2ea8a887d9a135b40b4" + } + Frame { + msec: 1824 + hash: "8304d2432168a2ea8a887d9a135b40b4" + } + Frame { + msec: 1840 + hash: "8304d2432168a2ea8a887d9a135b40b4" + } + Frame { + msec: 1856 + hash: "8304d2432168a2ea8a887d9a135b40b4" + } + Frame { + msec: 1872 + hash: "8304d2432168a2ea8a887d9a135b40b4" + } + Frame { + msec: 1888 + hash: "8304d2432168a2ea8a887d9a135b40b4" + } + Frame { + msec: 1904 + hash: "8304d2432168a2ea8a887d9a135b40b4" + } + Frame { + msec: 1920 + image: "gridview.1.png" + } + Frame { + msec: 1936 + hash: "8304d2432168a2ea8a887d9a135b40b4" + } + Frame { + msec: 1952 + hash: "8304d2432168a2ea8a887d9a135b40b4" + } + Frame { + msec: 1968 + hash: "8304d2432168a2ea8a887d9a135b40b4" + } + Frame { + msec: 1984 + hash: "8304d2432168a2ea8a887d9a135b40b4" + } + Key { + type: 6 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 2000 + hash: "8304d2432168a2ea8a887d9a135b40b4" + } + Frame { + msec: 2016 + hash: "719eabf9ad7e15d5429630c7f7136980" + } + Frame { + msec: 2032 + hash: "a1bd870fffd95a0604dd8e170e571632" + } + Frame { + msec: 2048 + hash: "b406160dda839ee34002190e05ceffac" + } + Frame { + msec: 2064 + hash: "a139784af7675281f0f3760a932aef0c" + } + Frame { + msec: 2080 + hash: "2c7d2f857919deae0a8ad6dc2f7d806f" + } + Key { + type: 7 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 2096 + hash: "80af5431f6d9a77f98c23d913c6caad4" + } + Frame { + msec: 2112 + hash: "b3ccaf648e09dbfcbaa7609440c63fc9" + } + Frame { + msec: 2128 + hash: "d267f9f4dd471be1cf4718d212c79887" + } + Frame { + msec: 2144 + hash: "570da61e2d48acd11474fe005110ab4b" + } + Frame { + msec: 2160 + hash: "570da61e2d48acd11474fe005110ab4b" + } + Frame { + msec: 2176 + hash: "570da61e2d48acd11474fe005110ab4b" + } + Frame { + msec: 2192 + hash: "570da61e2d48acd11474fe005110ab4b" + } + Frame { + msec: 2208 + hash: "570da61e2d48acd11474fe005110ab4b" + } + Frame { + msec: 2224 + hash: "570da61e2d48acd11474fe005110ab4b" + } + Frame { + msec: 2240 + hash: "570da61e2d48acd11474fe005110ab4b" + } + Frame { + msec: 2256 + hash: "570da61e2d48acd11474fe005110ab4b" + } + Frame { + msec: 2272 + hash: "570da61e2d48acd11474fe005110ab4b" + } + Frame { + msec: 2288 + hash: "570da61e2d48acd11474fe005110ab4b" + } + Frame { + msec: 2304 + hash: "570da61e2d48acd11474fe005110ab4b" + } + Frame { + msec: 2320 + hash: "570da61e2d48acd11474fe005110ab4b" + } + Frame { + msec: 2336 + hash: "570da61e2d48acd11474fe005110ab4b" + } + Key { + type: 6 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 2352 + hash: "570da61e2d48acd11474fe005110ab4b" + } + Frame { + msec: 2368 + hash: "db27d4cc92c09148675e76459d8ecb15" + } + Frame { + msec: 2384 + hash: "2c6f60eb170588a8450c679f3b16a6a4" + } + Frame { + msec: 2400 + hash: "024a4d4fc9a11d352d1e0f5ee7f7dbc8" + } + Frame { + msec: 2416 + hash: "c966b518b881f85a2d1cc86f5284ee1b" + } + Frame { + msec: 2432 + hash: "db15811f2d2cff0949213823649ef1d4" + } + Frame { + msec: 2448 + hash: "bbd9fad235aa2843bf2b64f3cf24f4e3" + } + Key { + type: 7 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 2464 + hash: "ccbc2f09ed263375e7b52f556fb2836f" + } + Frame { + msec: 2480 + hash: "c3b74e90fa99f4357762b57b9317b6f5" + } + Frame { + msec: 2496 + hash: "4f2fafdb59db544352e3067d67c0a714" + } + Frame { + msec: 2512 + hash: "043583b19c921740dbc990afd4f508ed" + } + Frame { + msec: 2528 + hash: "043583b19c921740dbc990afd4f508ed" + } + Frame { + msec: 2544 + hash: "043583b19c921740dbc990afd4f508ed" + } + Frame { + msec: 2560 + hash: "043583b19c921740dbc990afd4f508ed" + } + Frame { + msec: 2576 + hash: "043583b19c921740dbc990afd4f508ed" + } + Frame { + msec: 2592 + hash: "043583b19c921740dbc990afd4f508ed" + } + Frame { + msec: 2608 + hash: "043583b19c921740dbc990afd4f508ed" + } + Frame { + msec: 2624 + hash: "043583b19c921740dbc990afd4f508ed" + } + Frame { + msec: 2640 + hash: "043583b19c921740dbc990afd4f508ed" + } + Frame { + msec: 2656 + hash: "043583b19c921740dbc990afd4f508ed" + } + Frame { + msec: 2672 + hash: "043583b19c921740dbc990afd4f508ed" + } + Frame { + msec: 2688 + hash: "043583b19c921740dbc990afd4f508ed" + } + Frame { + msec: 2704 + hash: "043583b19c921740dbc990afd4f508ed" + } + Frame { + msec: 2720 + hash: "043583b19c921740dbc990afd4f508ed" + } + Frame { + msec: 2736 + hash: "043583b19c921740dbc990afd4f508ed" + } + Frame { + msec: 2752 + hash: "043583b19c921740dbc990afd4f508ed" + } + Frame { + msec: 2768 + hash: "043583b19c921740dbc990afd4f508ed" + } + Frame { + msec: 2784 + hash: "043583b19c921740dbc990afd4f508ed" + } + Key { + type: 6 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 2800 + hash: "043583b19c921740dbc990afd4f508ed" + } + Frame { + msec: 2816 + hash: "64fdbc9a930e44dcc38542f720b41b0a" + } + Frame { + msec: 2832 + hash: "257d3d8bcf78671d35a898befec091cb" + } + Frame { + msec: 2848 + hash: "92a51faf52bdc7f895bdc08f049f6ed3" + } + Frame { + msec: 2864 + hash: "5aec71e84a4e9c4962ed73c39d337910" + } + Frame { + msec: 2880 + image: "gridview.2.png" + } + Frame { + msec: 2896 + hash: "534973232974b7ee999172269d16c499" + } + Key { + type: 7 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 2912 + hash: "32faa54e636773747a2ec4065a11c337" + } + Frame { + msec: 2928 + hash: "ebe24b814e27cd8a8db78da58c8f86d7" + } + Frame { + msec: 2944 + hash: "e67ae32a47213b360c1a445bf645dde2" + } + Frame { + msec: 2960 + hash: "e67ae32a47213b360c1a445bf645dde2" + } + Frame { + msec: 2976 + hash: "e67ae32a47213b360c1a445bf645dde2" + } + Frame { + msec: 2992 + hash: "e67ae32a47213b360c1a445bf645dde2" + } + Frame { + msec: 3008 + hash: "e67ae32a47213b360c1a445bf645dde2" + } + Frame { + msec: 3024 + hash: "e67ae32a47213b360c1a445bf645dde2" + } + Frame { + msec: 3040 + hash: "e67ae32a47213b360c1a445bf645dde2" + } + Frame { + msec: 3056 + hash: "e67ae32a47213b360c1a445bf645dde2" + } + Frame { + msec: 3072 + hash: "e67ae32a47213b360c1a445bf645dde2" + } + Frame { + msec: 3088 + hash: "e67ae32a47213b360c1a445bf645dde2" + } + Frame { + msec: 3104 + hash: "e67ae32a47213b360c1a445bf645dde2" + } + Key { + type: 6 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 3120 + hash: "e67ae32a47213b360c1a445bf645dde2" + } + Frame { + msec: 3136 + hash: "d446b94a2e3d9f7091c5520852d1a215" + } + Frame { + msec: 3152 + hash: "79d1a3489be95d113e8c611a2ba63456" + } + Frame { + msec: 3168 + hash: "95601b7d8ab689142ca89343743b55b2" + } + Frame { + msec: 3184 + hash: "ad67049e51eafbbc33d1e3763d78b5f9" + } + Frame { + msec: 3200 + hash: "69b1d558065ee9b9719c3ae8f08b52ab" + } + Key { + type: 7 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 3216 + hash: "858fd65adb231bf2002bcc25075be261" + } + Frame { + msec: 3232 + hash: "2dc6fb114e1d2a606efe48f349251504" + } + Frame { + msec: 3248 + hash: "e4819f09d6640021408e03c50090e849" + } + Frame { + msec: 3264 + hash: "5fa3ec31176bed2de8cb076b87e0be74" + } + Frame { + msec: 3280 + hash: "5fa3ec31176bed2de8cb076b87e0be74" + } + Frame { + msec: 3296 + hash: "5fa3ec31176bed2de8cb076b87e0be74" + } + Frame { + msec: 3312 + hash: "5fa3ec31176bed2de8cb076b87e0be74" + } + Frame { + msec: 3328 + hash: "5fa3ec31176bed2de8cb076b87e0be74" + } + Frame { + msec: 3344 + hash: "5fa3ec31176bed2de8cb076b87e0be74" + } + Frame { + msec: 3360 + hash: "5fa3ec31176bed2de8cb076b87e0be74" + } + Frame { + msec: 3376 + hash: "5fa3ec31176bed2de8cb076b87e0be74" + } + Frame { + msec: 3392 + hash: "5fa3ec31176bed2de8cb076b87e0be74" + } + Frame { + msec: 3408 + hash: "5fa3ec31176bed2de8cb076b87e0be74" + } + Frame { + msec: 3424 + hash: "5fa3ec31176bed2de8cb076b87e0be74" + } + Frame { + msec: 3440 + hash: "5fa3ec31176bed2de8cb076b87e0be74" + } + Frame { + msec: 3456 + hash: "5fa3ec31176bed2de8cb076b87e0be74" + } + Key { + type: 6 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 3472 + hash: "5fa3ec31176bed2de8cb076b87e0be74" + } + Frame { + msec: 3488 + hash: "6c84f5e6d352ed345a0bed12c50bf7a9" + } + Frame { + msec: 3504 + hash: "15690df807a7c1e9aa9d7e9154c1a492" + } + Frame { + msec: 3520 + hash: "3d6cc3e0d93ddf4b66321fda361f05c0" + } + Frame { + msec: 3536 + hash: "8e3526ffeb9873b55b3bae2827391628" + } + Frame { + msec: 3552 + hash: "33097267d43a7e16a78102cb91c9fd42" + } + Frame { + msec: 3568 + hash: "17ab2623432bba92dc9d99e5764e626e" + } + Key { + type: 7 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 3584 + hash: "9945a723d9a3399bb5311eea3d9b0b77" + } + Frame { + msec: 3600 + hash: "e6e9251cd6d941a050beaa36b851e314" + } + Frame { + msec: 3616 + hash: "a61dbcb7d914afe34009085bf37fb8e2" + } + Frame { + msec: 3632 + hash: "e63d987ba303a42046827f14941b444a" + } + Frame { + msec: 3648 + hash: "e63d987ba303a42046827f14941b444a" + } + Frame { + msec: 3664 + hash: "e63d987ba303a42046827f14941b444a" + } + Frame { + msec: 3680 + hash: "e63d987ba303a42046827f14941b444a" + } + Frame { + msec: 3696 + hash: "e63d987ba303a42046827f14941b444a" + } + Frame { + msec: 3712 + hash: "e63d987ba303a42046827f14941b444a" + } + Frame { + msec: 3728 + hash: "e63d987ba303a42046827f14941b444a" + } + Frame { + msec: 3744 + hash: "e63d987ba303a42046827f14941b444a" + } + Frame { + msec: 3760 + hash: "e63d987ba303a42046827f14941b444a" + } + Frame { + msec: 3776 + hash: "e63d987ba303a42046827f14941b444a" + } + Frame { + msec: 3792 + hash: "e63d987ba303a42046827f14941b444a" + } + Frame { + msec: 3808 + hash: "e63d987ba303a42046827f14941b444a" + } + Frame { + msec: 3824 + hash: "e63d987ba303a42046827f14941b444a" + } + Frame { + msec: 3840 + image: "gridview.3.png" + } + Frame { + msec: 3856 + hash: "e63d987ba303a42046827f14941b444a" + } + Frame { + msec: 3872 + hash: "e63d987ba303a42046827f14941b444a" + } + Frame { + msec: 3888 + hash: "e63d987ba303a42046827f14941b444a" + } + Frame { + msec: 3904 + hash: "e63d987ba303a42046827f14941b444a" + } + Frame { + msec: 3920 + hash: "e63d987ba303a42046827f14941b444a" + } + Key { + type: 6 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 3936 + hash: "e63d987ba303a42046827f14941b444a" + } + Frame { + msec: 3952 + hash: "9942059cb380dbae191850d2e7175906" + } + Frame { + msec: 3968 + hash: "ca5af7d98a008eccba1e21be0da61f3c" + } + Frame { + msec: 3984 + hash: "abb95ac1408d34e2eb319e5396511d65" + } + Frame { + msec: 4000 + hash: "183df6d4be489280181f01a0c0ed3cde" + } + Frame { + msec: 4016 + hash: "64733a4d609c621765d114a6b482dc57" + } + Frame { + msec: 4032 + hash: "897aa5b42e48a7235ab4fdded5876da2" + } + Key { + type: 7 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 4048 + hash: "c80f01a1e683d84bfa0821832c113820" + } + Frame { + msec: 4064 + hash: "e7065bf6934c7fb7b160ae5c169633e4" + } + Frame { + msec: 4080 + hash: "db3d030de94b19ea1db5c60be7c7ca5c" + } + Frame { + msec: 4096 + hash: "db3d030de94b19ea1db5c60be7c7ca5c" + } + Frame { + msec: 4112 + hash: "db3d030de94b19ea1db5c60be7c7ca5c" + } + Frame { + msec: 4128 + hash: "db3d030de94b19ea1db5c60be7c7ca5c" + } + Frame { + msec: 4144 + hash: "db3d030de94b19ea1db5c60be7c7ca5c" + } + Frame { + msec: 4160 + hash: "db3d030de94b19ea1db5c60be7c7ca5c" + } + Frame { + msec: 4176 + hash: "db3d030de94b19ea1db5c60be7c7ca5c" + } + Frame { + msec: 4192 + hash: "db3d030de94b19ea1db5c60be7c7ca5c" + } + Frame { + msec: 4208 + hash: "db3d030de94b19ea1db5c60be7c7ca5c" + } + Frame { + msec: 4224 + hash: "db3d030de94b19ea1db5c60be7c7ca5c" + } + Key { + type: 6 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 4240 + hash: "db3d030de94b19ea1db5c60be7c7ca5c" + } + Frame { + msec: 4256 + hash: "917c11b16c6286bea7a37990d7fa078f" + } + Frame { + msec: 4272 + hash: "1616c6def28659d51905564ff83cc112" + } + Frame { + msec: 4288 + hash: "fce04972557736a8dfa8de5f1a605ddb" + } + Frame { + msec: 4304 + hash: "6acffcea115f8a777f62c1f68cd25fa6" + } + Frame { + msec: 4320 + hash: "f96ae6a4f437cf98b268fc0b0611ddc4" + } + Frame { + msec: 4336 + hash: "c9e14157dca547623497a6107f14b73d" + } + Key { + type: 7 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 4352 + hash: "6489766ed84c4b6ff26de24cb74848cb" + } + Frame { + msec: 4368 + hash: "9d229c10853b30ed048b892953c5d86c" + } + Frame { + msec: 4384 + hash: "2476aa1a7191b485a76c76e98c9be2b0" + } + Frame { + msec: 4400 + hash: "2476aa1a7191b485a76c76e98c9be2b0" + } + Frame { + msec: 4416 + hash: "2476aa1a7191b485a76c76e98c9be2b0" + } + Frame { + msec: 4432 + hash: "2476aa1a7191b485a76c76e98c9be2b0" + } + Frame { + msec: 4448 + hash: "2476aa1a7191b485a76c76e98c9be2b0" + } + Frame { + msec: 4464 + hash: "2476aa1a7191b485a76c76e98c9be2b0" + } + Frame { + msec: 4480 + hash: "2476aa1a7191b485a76c76e98c9be2b0" + } + Frame { + msec: 4496 + hash: "2476aa1a7191b485a76c76e98c9be2b0" + } + Frame { + msec: 4512 + hash: "2476aa1a7191b485a76c76e98c9be2b0" + } + Frame { + msec: 4528 + hash: "2476aa1a7191b485a76c76e98c9be2b0" + } + Frame { + msec: 4544 + hash: "2476aa1a7191b485a76c76e98c9be2b0" + } + Frame { + msec: 4560 + hash: "2476aa1a7191b485a76c76e98c9be2b0" + } + Frame { + msec: 4576 + hash: "2476aa1a7191b485a76c76e98c9be2b0" + } + Frame { + msec: 4592 + hash: "2476aa1a7191b485a76c76e98c9be2b0" + } + Key { + type: 6 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 4608 + hash: "2476aa1a7191b485a76c76e98c9be2b0" + } + Frame { + msec: 4624 + hash: "12f17d727d70269fd98a0f6524c9f750" + } + Frame { + msec: 4640 + hash: "e73d64ebe242eae0f412ca463c76085d" + } + Frame { + msec: 4656 + hash: "f37a468e04155c880e707d1d12f71f94" + } + Frame { + msec: 4672 + hash: "3789293a6b8791d8e60b5160fc457345" + } + Frame { + msec: 4688 + hash: "7d8377c816f19fa32d847a30d1c71da9" + } + Frame { + msec: 4704 + hash: "b9867dbb6f03d5970076251e10e47f16" + } + Key { + type: 7 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 4720 + hash: "0604bbd1afdfee5881d9d9d79a67a3df" + } + Frame { + msec: 4736 + hash: "93401cdfa6cc7fbbfc479faa0bc1d63f" + } + Frame { + msec: 4752 + hash: "aa379c70dd6a94a55fd8c065331ad47b" + } + Frame { + msec: 4768 + hash: "11150995098af8516513230360d40108" + } + Frame { + msec: 4784 + hash: "11150995098af8516513230360d40108" + } + Frame { + msec: 4800 + image: "gridview.4.png" + } + Frame { + msec: 4816 + hash: "11150995098af8516513230360d40108" + } + Frame { + msec: 4832 + hash: "11150995098af8516513230360d40108" + } + Frame { + msec: 4848 + hash: "11150995098af8516513230360d40108" + } + Frame { + msec: 4864 + hash: "11150995098af8516513230360d40108" + } + Frame { + msec: 4880 + hash: "11150995098af8516513230360d40108" + } + Frame { + msec: 4896 + hash: "11150995098af8516513230360d40108" + } + Frame { + msec: 4912 + hash: "11150995098af8516513230360d40108" + } + Frame { + msec: 4928 + hash: "11150995098af8516513230360d40108" + } + Frame { + msec: 4944 + hash: "11150995098af8516513230360d40108" + } + Frame { + msec: 4960 + hash: "11150995098af8516513230360d40108" + } + Frame { + msec: 4976 + hash: "11150995098af8516513230360d40108" + } + Frame { + msec: 4992 + hash: "11150995098af8516513230360d40108" + } + Frame { + msec: 5008 + hash: "11150995098af8516513230360d40108" + } + Frame { + msec: 5024 + hash: "11150995098af8516513230360d40108" + } + Frame { + msec: 5040 + hash: "11150995098af8516513230360d40108" + } + Frame { + msec: 5056 + hash: "11150995098af8516513230360d40108" + } + Frame { + msec: 5072 + hash: "11150995098af8516513230360d40108" + } + Frame { + msec: 5088 + hash: "11150995098af8516513230360d40108" + } + Frame { + msec: 5104 + hash: "11150995098af8516513230360d40108" + } + Frame { + msec: 5120 + hash: "11150995098af8516513230360d40108" + } + Frame { + msec: 5136 + hash: "11150995098af8516513230360d40108" + } + Frame { + msec: 5152 + hash: "11150995098af8516513230360d40108" + } + Key { + type: 6 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 5168 + hash: "11150995098af8516513230360d40108" + } + Frame { + msec: 5184 + hash: "c58f071ae4efde5cd265fa6e82dda56b" + } + Frame { + msec: 5200 + hash: "bea9eadda7b015d0e9a0f05924e723f7" + } + Frame { + msec: 5216 + hash: "c255da63dc59ca7555c91701ed373fd5" + } + Frame { + msec: 5232 + hash: "fa0a697341baae4b3aa4dee721ef10a2" + } + Frame { + msec: 5248 + hash: "2d2148840143772fab6b2405bf5eb609" + } + Frame { + msec: 5264 + hash: "3716705b5f7caa86eecc1dfafe31ebcf" + } + Key { + type: 7 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 5280 + hash: "35cfea054566eae3bcc9c8a41caadcdc" + } + Frame { + msec: 5296 + hash: "916858ff0ca4370840d072c389242a2b" + } + Frame { + msec: 5312 + hash: "417f4bce58783f0e677b17b05147a663" + } + Frame { + msec: 5328 + hash: "417f4bce58783f0e677b17b05147a663" + } + Frame { + msec: 5344 + hash: "417f4bce58783f0e677b17b05147a663" + } + Frame { + msec: 5360 + hash: "417f4bce58783f0e677b17b05147a663" + } + Frame { + msec: 5376 + hash: "417f4bce58783f0e677b17b05147a663" + } + Frame { + msec: 5392 + hash: "417f4bce58783f0e677b17b05147a663" + } + Frame { + msec: 5408 + hash: "417f4bce58783f0e677b17b05147a663" + } + Frame { + msec: 5424 + hash: "417f4bce58783f0e677b17b05147a663" + } + Frame { + msec: 5440 + hash: "417f4bce58783f0e677b17b05147a663" + } + Frame { + msec: 5456 + hash: "417f4bce58783f0e677b17b05147a663" + } + Key { + type: 6 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 5472 + hash: "417f4bce58783f0e677b17b05147a663" + } + Frame { + msec: 5488 + hash: "191f2c80617cef61a2890977c3079ad2" + } + Frame { + msec: 5504 + hash: "0902ef220363ad2c08f09199278cecf8" + } + Frame { + msec: 5520 + hash: "d28ea1b1e01588bbb767a5599c5345d2" + } + Frame { + msec: 5536 + hash: "36eeaf2755fffefc32bcd580fade6305" + } + Frame { + msec: 5552 + hash: "51560b23e44e5548875b13ff6dc6ee8d" + } + Frame { + msec: 5568 + hash: "082abbc9ecd0bf39619819aa526c021c" + } + Key { + type: 7 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 5584 + hash: "ab956d21f8ea55dad590b3cafc887585" + } + Frame { + msec: 5600 + hash: "9501050f547de1de0d280a839e35e120" + } + Frame { + msec: 5616 + hash: "3de570332e8a1e01f409d892feb7930e" + } + Frame { + msec: 5632 + hash: "3de570332e8a1e01f409d892feb7930e" + } + Frame { + msec: 5648 + hash: "3de570332e8a1e01f409d892feb7930e" + } + Frame { + msec: 5664 + hash: "3de570332e8a1e01f409d892feb7930e" + } + Frame { + msec: 5680 + hash: "3de570332e8a1e01f409d892feb7930e" + } + Frame { + msec: 5696 + hash: "3de570332e8a1e01f409d892feb7930e" + } + Frame { + msec: 5712 + hash: "3de570332e8a1e01f409d892feb7930e" + } + Frame { + msec: 5728 + hash: "3de570332e8a1e01f409d892feb7930e" + } + Frame { + msec: 5744 + hash: "3de570332e8a1e01f409d892feb7930e" + } + Frame { + msec: 5760 + image: "gridview.5.png" + } + Frame { + msec: 5776 + hash: "3de570332e8a1e01f409d892feb7930e" + } + Frame { + msec: 5792 + hash: "3de570332e8a1e01f409d892feb7930e" + } + Frame { + msec: 5808 + hash: "3de570332e8a1e01f409d892feb7930e" + } + Key { + type: 6 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 5824 + hash: "3de570332e8a1e01f409d892feb7930e" + } + Frame { + msec: 5840 + hash: "6aefcf9976f5910376a583b020c8dd4b" + } + Frame { + msec: 5856 + hash: "971ca1e2537d52f352c889817e353736" + } + Frame { + msec: 5872 + hash: "f1f0599e7f4ba2fb869e886a2e7ff216" + } + Frame { + msec: 5888 + hash: "8bf62b11cd4ec99ae41752e1a9a9c7ca" + } + Frame { + msec: 5904 + hash: "f2fcf6ad484b240373822c2450dd5305" + } + Key { + type: 7 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 5920 + hash: "f999073e6303ff5658012dabbef4ee8e" + } + Frame { + msec: 5936 + hash: "c35ef3056155d8d30dd4b9e6299ac68f" + } + Frame { + msec: 5952 + hash: "0326908135c0d693f2fc99c9e02d8f94" + } + Frame { + msec: 5968 + hash: "b0def7204463648dac117ddcc2241c3e" + } + Frame { + msec: 5984 + hash: "5e88aeab16a0ccca400163889851bc45" + } + Frame { + msec: 6000 + hash: "5e88aeab16a0ccca400163889851bc45" + } + Frame { + msec: 6016 + hash: "5e88aeab16a0ccca400163889851bc45" + } + Frame { + msec: 6032 + hash: "5e88aeab16a0ccca400163889851bc45" + } + Frame { + msec: 6048 + hash: "5e88aeab16a0ccca400163889851bc45" + } + Frame { + msec: 6064 + hash: "5e88aeab16a0ccca400163889851bc45" + } + Frame { + msec: 6080 + hash: "5e88aeab16a0ccca400163889851bc45" + } + Frame { + msec: 6096 + hash: "5e88aeab16a0ccca400163889851bc45" + } + Frame { + msec: 6112 + hash: "5e88aeab16a0ccca400163889851bc45" + } + Frame { + msec: 6128 + hash: "5e88aeab16a0ccca400163889851bc45" + } + Frame { + msec: 6144 + hash: "5e88aeab16a0ccca400163889851bc45" + } + Frame { + msec: 6160 + hash: "5e88aeab16a0ccca400163889851bc45" + } + Frame { + msec: 6176 + hash: "5e88aeab16a0ccca400163889851bc45" + } + Frame { + msec: 6192 + hash: "5e88aeab16a0ccca400163889851bc45" + } + Frame { + msec: 6208 + hash: "5e88aeab16a0ccca400163889851bc45" + } + Frame { + msec: 6224 + hash: "5e88aeab16a0ccca400163889851bc45" + } + Frame { + msec: 6240 + hash: "5e88aeab16a0ccca400163889851bc45" + } + Frame { + msec: 6256 + hash: "5e88aeab16a0ccca400163889851bc45" + } + Frame { + msec: 6272 + hash: "5e88aeab16a0ccca400163889851bc45" + } + Frame { + msec: 6288 + hash: "5e88aeab16a0ccca400163889851bc45" + } + Frame { + msec: 6304 + hash: "5e88aeab16a0ccca400163889851bc45" + } + Frame { + msec: 6320 + hash: "5e88aeab16a0ccca400163889851bc45" + } + Frame { + msec: 6336 + hash: "5e88aeab16a0ccca400163889851bc45" + } + Frame { + msec: 6352 + hash: "5e88aeab16a0ccca400163889851bc45" + } + Frame { + msec: 6368 + hash: "5e88aeab16a0ccca400163889851bc45" + } + Frame { + msec: 6384 + hash: "5e88aeab16a0ccca400163889851bc45" + } + Frame { + msec: 6400 + hash: "5e88aeab16a0ccca400163889851bc45" + } + Frame { + msec: 6416 + hash: "5e88aeab16a0ccca400163889851bc45" + } + Key { + type: 6 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 6432 + hash: "5e88aeab16a0ccca400163889851bc45" + } + Frame { + msec: 6448 + hash: "5531bf9affacf58945c6c54c5d14c9c9" + } + Frame { + msec: 6464 + hash: "ebc8f36eb0fc7d40bf9f268ef03522a0" + } + Frame { + msec: 6480 + hash: "621a3c318fc259ed27ae050d70d46d39" + } + Frame { + msec: 6496 + hash: "688bea0c0c864d9bc4204cf06b480d3a" + } + Frame { + msec: 6512 + hash: "8419262c19c40172b93c74d34cad12cb" + } + Frame { + msec: 6528 + hash: "57ce65a4ebe51c14ee69083f90ed5b80" + } + Key { + type: 7 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 6544 + hash: "43827ad5cb4173a8a5d434b167f68761" + } + Frame { + msec: 6560 + hash: "13e3e00ec3c11d6ca3e51a7aba0e1a97" + } + Frame { + msec: 6576 + hash: "dcf8c3078973ad99fbbcc763e433de11" + } + Frame { + msec: 6592 + hash: "dcf8c3078973ad99fbbcc763e433de11" + } + Frame { + msec: 6608 + hash: "dcf8c3078973ad99fbbcc763e433de11" + } + Frame { + msec: 6624 + hash: "dcf8c3078973ad99fbbcc763e433de11" + } + Frame { + msec: 6640 + hash: "dcf8c3078973ad99fbbcc763e433de11" + } + Frame { + msec: 6656 + hash: "dcf8c3078973ad99fbbcc763e433de11" + } + Frame { + msec: 6672 + hash: "dcf8c3078973ad99fbbcc763e433de11" + } + Frame { + msec: 6688 + hash: "dcf8c3078973ad99fbbcc763e433de11" + } + Frame { + msec: 6704 + hash: "dcf8c3078973ad99fbbcc763e433de11" + } + Key { + type: 6 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 6720 + image: "gridview.6.png" + } + Frame { + msec: 6736 + hash: "b6c7ad2c8e305ea5478a2307aa71b16b" + } + Frame { + msec: 6752 + hash: "bb4674d0de11e4f625e6db940b4ec06c" + } + Frame { + msec: 6768 + hash: "26f602a711cea77e5c7be08a93981306" + } + Frame { + msec: 6784 + hash: "5346bc8b1711a6679867d81efb9da563" + } + Frame { + msec: 6800 + hash: "3aa4d335a91be2bf2616d61fa7719ce5" + } + Frame { + msec: 6816 + hash: "2bad8dd039a35f11ba86b409bbcea6fe" + } + Frame { + msec: 6832 + hash: "20e4b381a6bed27e9e64d2eeda7870da" + } + Key { + type: 7 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 6848 + hash: "e96eb16671f26f04a72498bc3ab54f06" + } + Frame { + msec: 6864 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 6880 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 6896 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 6912 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 6928 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 6944 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 6960 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 6976 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 6992 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7008 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7024 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Key { + type: 6 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 7040 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7056 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7072 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7088 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7104 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7120 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7136 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7152 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Key { + type: 7 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 7168 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7184 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7200 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7216 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7232 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7248 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7264 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7280 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7296 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7312 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7328 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7344 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7360 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7376 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7392 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7408 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7424 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7440 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7456 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7472 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7488 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7504 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7520 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7536 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7552 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7568 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7584 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Key { + type: 6 + key: 16777235 + modifiers: 536870912 + text: "1e" + autorep: false + count: 1 + } + Frame { + msec: 7600 + hash: "f0e0fe7c155bbee3957a80077703fadc" + } + Frame { + msec: 7616 + hash: "6e26f05f7a2531620ed4a25073e0f0c5" + } + Frame { + msec: 7632 + hash: "9fe693b6b53763ffc1b94d157252b18c" + } + Frame { + msec: 7648 + hash: "49aae47da204d4104757b4420df7413e" + } + Frame { + msec: 7664 + hash: "ecd7456cb5ba2034c766e1ec298c2ebf" + } + Frame { + msec: 7680 + image: "gridview.7.png" + } + Frame { + msec: 7696 + hash: "e8b6316baae781ca5390bc86528194c0" + } + Key { + type: 7 + key: 16777235 + modifiers: 536870912 + text: "1e" + autorep: false + count: 1 + } + Frame { + msec: 7712 + hash: "e11fcb0e62d7f6bfb40b7336e89ff014" + } + Frame { + msec: 7728 + hash: "5a07fa8768ebfb938204e500f4a09253" + } + Frame { + msec: 7744 + hash: "1ee3a4780979f69cd7926df3d4c18731" + } + Frame { + msec: 7760 + hash: "ca4edfecdfc410aca6557b9a3095d92b" + } + Frame { + msec: 7776 + hash: "ca4edfecdfc410aca6557b9a3095d92b" + } + Frame { + msec: 7792 + hash: "ca4edfecdfc410aca6557b9a3095d92b" + } + Frame { + msec: 7808 + hash: "ca4edfecdfc410aca6557b9a3095d92b" + } + Frame { + msec: 7824 + hash: "ca4edfecdfc410aca6557b9a3095d92b" + } + Frame { + msec: 7840 + hash: "ca4edfecdfc410aca6557b9a3095d92b" + } + Frame { + msec: 7856 + hash: "ca4edfecdfc410aca6557b9a3095d92b" + } + Frame { + msec: 7872 + hash: "ca4edfecdfc410aca6557b9a3095d92b" + } + Frame { + msec: 7888 + hash: "ca4edfecdfc410aca6557b9a3095d92b" + } + Frame { + msec: 7904 + hash: "ca4edfecdfc410aca6557b9a3095d92b" + } + Frame { + msec: 7920 + hash: "ca4edfecdfc410aca6557b9a3095d92b" + } + Frame { + msec: 7936 + hash: "ca4edfecdfc410aca6557b9a3095d92b" + } + Frame { + msec: 7952 + hash: "ca4edfecdfc410aca6557b9a3095d92b" + } + Frame { + msec: 7968 + hash: "ca4edfecdfc410aca6557b9a3095d92b" + } + Key { + type: 6 + key: 16777235 + modifiers: 536870912 + text: "1e" + autorep: false + count: 1 + } + Frame { + msec: 7984 + hash: "ca4edfecdfc410aca6557b9a3095d92b" + } + Frame { + msec: 8000 + hash: "1306bb76c161e84e2e5307a0ebc34393" + } + Frame { + msec: 8016 + hash: "a97cbb851cf1fdeb428ee36042be52e1" + } + Key { + type: 7 + key: 16777235 + modifiers: 536870912 + text: "1e" + autorep: false + count: 1 + } + Frame { + msec: 8032 + hash: "e79ccbe112066ded3276aa7feb2e7848" + } + Frame { + msec: 8048 + hash: "9cc673f743e2018cf9a6d815fe76dc80" + } + Frame { + msec: 8064 + hash: "8179262829f88ee4bbb9537b29ab56ee" + } + Frame { + msec: 8080 + hash: "3810cc1b5902259c22bce0118497aaf3" + } + Frame { + msec: 8096 + hash: "d41c5a6fdfafb2263e7c35a927f7753c" + } + Frame { + msec: 8112 + hash: "e54d0179d62b7cdec96218c3a0ef110d" + } + Frame { + msec: 8128 + hash: "da89e8408417b99582ffd825c2226bf4" + } + Frame { + msec: 8144 + hash: "5d7b9247aecd4adc939c6fb89d5eac2c" + } + Frame { + msec: 8160 + hash: "5d7b9247aecd4adc939c6fb89d5eac2c" + } + Frame { + msec: 8176 + hash: "5d7b9247aecd4adc939c6fb89d5eac2c" + } + Frame { + msec: 8192 + hash: "5d7b9247aecd4adc939c6fb89d5eac2c" + } + Frame { + msec: 8208 + hash: "5d7b9247aecd4adc939c6fb89d5eac2c" + } + Frame { + msec: 8224 + hash: "5d7b9247aecd4adc939c6fb89d5eac2c" + } + Frame { + msec: 8240 + hash: "5d7b9247aecd4adc939c6fb89d5eac2c" + } + Key { + type: 6 + key: 16777235 + modifiers: 536870912 + text: "1e" + autorep: false + count: 1 + } + Frame { + msec: 8256 + hash: "5d7b9247aecd4adc939c6fb89d5eac2c" + } + Frame { + msec: 8272 + hash: "2fcac6c204d45d6fbab76c3d07e2c8ad" + } + Frame { + msec: 8288 + hash: "78602c9ac9dbd6c34ef539799513d874" + } + Frame { + msec: 8304 + hash: "02f8d434d50af8fa6063a4f03dabe2b1" + } + Frame { + msec: 8320 + hash: "ff5da7b1a1467418bc712c0ac33c878f" + } + Frame { + msec: 8336 + hash: "2aed8048e5040ebda3bdfdf4a57d08eb" + } + Key { + type: 7 + key: 16777235 + modifiers: 536870912 + text: "1e" + autorep: false + count: 1 + } + Frame { + msec: 8352 + hash: "c6b50c1a6a843aa9484c48e4bf073e4b" + } + Frame { + msec: 8368 + hash: "a08ef172dfb72151108e81cacfaa964f" + } + Frame { + msec: 8384 + hash: "a2a755231d0eee686aa38cd4d4b417f2" + } + Frame { + msec: 8400 + hash: "5c598e26c1b65796b8e68c7d27abbc0f" + } + Frame { + msec: 8416 + hash: "290662cda876fccc87971d2cebc69d52" + } + Frame { + msec: 8432 + hash: "290662cda876fccc87971d2cebc69d52" + } + Frame { + msec: 8448 + hash: "290662cda876fccc87971d2cebc69d52" + } + Frame { + msec: 8464 + hash: "290662cda876fccc87971d2cebc69d52" + } + Frame { + msec: 8480 + hash: "290662cda876fccc87971d2cebc69d52" + } + Frame { + msec: 8496 + hash: "290662cda876fccc87971d2cebc69d52" + } + Frame { + msec: 8512 + hash: "290662cda876fccc87971d2cebc69d52" + } + Frame { + msec: 8528 + hash: "290662cda876fccc87971d2cebc69d52" + } + Frame { + msec: 8544 + hash: "290662cda876fccc87971d2cebc69d52" + } + Key { + type: 6 + key: 16777235 + modifiers: 536870912 + text: "1e" + autorep: false + count: 1 + } + Frame { + msec: 8560 + hash: "290662cda876fccc87971d2cebc69d52" + } + Frame { + msec: 8576 + hash: "1aface9c3746488496af48caf23af1a5" + } + Frame { + msec: 8592 + hash: "c08f9756c9cc453a2544052b15beab5d" + } + Frame { + msec: 8608 + hash: "b70544dc0d5cc18181f0bf40c068410b" + } + Frame { + msec: 8624 + hash: "7e8fbce1337b0b04beda76ee54c98285" + } + Frame { + msec: 8640 + image: "gridview.8.png" + } + Key { + type: 7 + key: 16777235 + modifiers: 536870912 + text: "1e" + autorep: false + count: 1 + } + Frame { + msec: 8656 + hash: "4724d0bfd63f248914f18117ba0c6119" + } + Frame { + msec: 8672 + hash: "16013089bfe18b35efbd8cd36d37bb0a" + } + Frame { + msec: 8688 + hash: "57a857a48922cb252bb4ddc77b29825e" + } + Frame { + msec: 8704 + hash: "10a46ba67a0c7abe08ea8f80a75040e8" + } + Frame { + msec: 8720 + hash: "72759bd1e2618c61c42bbe4de3ad3a96" + } + Frame { + msec: 8736 + hash: "72759bd1e2618c61c42bbe4de3ad3a96" + } + Frame { + msec: 8752 + hash: "72759bd1e2618c61c42bbe4de3ad3a96" + } + Frame { + msec: 8768 + hash: "72759bd1e2618c61c42bbe4de3ad3a96" + } + Frame { + msec: 8784 + hash: "72759bd1e2618c61c42bbe4de3ad3a96" + } + Frame { + msec: 8800 + hash: "72759bd1e2618c61c42bbe4de3ad3a96" + } + Frame { + msec: 8816 + hash: "72759bd1e2618c61c42bbe4de3ad3a96" + } + Frame { + msec: 8832 + hash: "72759bd1e2618c61c42bbe4de3ad3a96" + } + Frame { + msec: 8848 + hash: "72759bd1e2618c61c42bbe4de3ad3a96" + } + Frame { + msec: 8864 + hash: "72759bd1e2618c61c42bbe4de3ad3a96" + } + Key { + type: 6 + key: 16777235 + modifiers: 536870912 + text: "1e" + autorep: false + count: 1 + } + Frame { + msec: 8880 + hash: "72759bd1e2618c61c42bbe4de3ad3a96" + } + Frame { + msec: 8896 + hash: "df1797772003dc3dbdd0e245c447bf20" + } + Frame { + msec: 8912 + hash: "70dd7fd50388196706f72a48ac96963c" + } + Frame { + msec: 8928 + hash: "439e43c26fc22a6c3a2b8568bfddbfa3" + } + Frame { + msec: 8944 + hash: "77e9ea697690a3e5c3965c0bf76055b0" + } + Frame { + msec: 8960 + hash: "30226190fa4466b3450ff1f810e85635" + } + Key { + type: 7 + key: 16777235 + modifiers: 536870912 + text: "1e" + autorep: false + count: 1 + } + Frame { + msec: 8976 + hash: "9a69afa4de272f00d8a26141fa974f6e" + } + Frame { + msec: 8992 + hash: "1883a34a21ecc690022a6623c67c8ba1" + } + Frame { + msec: 9008 + hash: "e5be5b7e7060fffacaf93b6bf8d051a4" + } + Frame { + msec: 9024 + hash: "2667c2596de97dc15353158eba03495f" + } + Frame { + msec: 9040 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9056 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9072 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9088 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9104 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9120 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9136 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9152 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9168 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9184 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9200 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9216 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9232 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9248 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9264 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Key { + type: 6 + key: 16777235 + modifiers: 536870912 + text: "1e" + autorep: false + count: 1 + } + Frame { + msec: 9280 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9296 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9312 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9328 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9344 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9360 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9376 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Key { + type: 7 + key: 16777235 + modifiers: 536870912 + text: "1e" + autorep: false + count: 1 + } + Frame { + msec: 9392 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9408 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9424 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9440 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9456 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9472 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9488 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9504 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9520 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9536 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9552 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9568 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9584 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9600 + image: "gridview.9.png" + } + Frame { + msec: 9616 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9632 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9648 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9664 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9680 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9696 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9712 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9728 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9744 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9760 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Key { + type: 6 + key: 16777249 + modifiers: 0 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 9776 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9792 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9808 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9824 + hash: "02c632713d0dc64bff9d8e58f745df95" + } + Frame { + msec: 9840 + hash: "02c632713d0dc64bff9d8e58f745df95" + } +} diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.0.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.0.png Binary files differnew file mode 100644 index 0000000..3021d58 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.0.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.1.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.1.png Binary files differnew file mode 100644 index 0000000..baeb1a6 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.1.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.10.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.10.png Binary files differnew file mode 100644 index 0000000..b0486e5 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.10.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.2.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.2.png Binary files differnew file mode 100644 index 0000000..2d0c731 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.2.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.3.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.3.png Binary files differnew file mode 100644 index 0000000..af9ed05 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.3.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.4.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.4.png Binary files differnew file mode 100644 index 0000000..0b0945d --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.4.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.5.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.5.png Binary files differnew file mode 100644 index 0000000..618ae0c --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.5.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.6.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.6.png Binary files differnew file mode 100644 index 0000000..fc31262 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.6.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.7.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.7.png Binary files differnew file mode 100644 index 0000000..22291ac --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.7.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.8.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.8.png Binary files differnew file mode 100644 index 0000000..3021d58 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.8.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.9.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.9.png Binary files differnew file mode 100644 index 0000000..2f2f5b9 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.9.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.qml b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.qml new file mode 100644 index 0000000..1c90af9 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.qml @@ -0,0 +1,2479 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "dba2f6f1c773bd4cd9523108fca861c4" + } + Frame { + msec: 32 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 48 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 64 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 80 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 96 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 112 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 128 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 144 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 160 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 176 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 192 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 208 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 224 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 240 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 256 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 272 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 288 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 304 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 320 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 336 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 352 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 368 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 384 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 400 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 416 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 432 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 448 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 464 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 480 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 496 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 512 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 528 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 544 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 560 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 576 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 592 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 608 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 624 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 640 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 656 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 672 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 688 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 704 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 720 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 736 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 752 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 768 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 784 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 800 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 816 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 832 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 848 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 864 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 880 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 896 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 912 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 928 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 944 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 960 + image: "gridview2.0.png" + } + Frame { + msec: 976 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 992 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 1008 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 1024 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 1040 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 1056 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 1072 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 1088 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 1104 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 1120 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 1136 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 1152 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 1168 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 1184 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 1200 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 1216 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 1232 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 1248 + hash: "33d81c39d16c6a326012499796e50e03" + } + Key { + type: 6 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 1264 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 1280 + hash: "aaec7184a27e6700d96ffff376b8fa53" + } + Frame { + msec: 1296 + hash: "3fa3a890a4ff4a59336a9a2d478d0dde" + } + Frame { + msec: 1312 + hash: "3711c6c2f4f9aba7f2c72bd1f1d85016" + } + Frame { + msec: 1328 + hash: "23da2f9a800b805ce7b77ff08218907d" + } + Frame { + msec: 1344 + hash: "12e4bc953b06cdaad0720f87fb96a37e" + } + Frame { + msec: 1360 + hash: "46e69658bda69bab202a2790a76ba1cd" + } + Key { + type: 7 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 1376 + hash: "44608e67c69b92ccbb45e119e1158fe3" + } + Frame { + msec: 1392 + hash: "97a309b47017d38294644a486a7ce68e" + } + Frame { + msec: 1408 + hash: "41f42b50b22e0496c8aca5019b24b9cb" + } + Frame { + msec: 1424 + hash: "8603ea1cb60c804563f50bc41c0180fe" + } + Frame { + msec: 1440 + hash: "e29777fa70daafe9640c6e9bb7bd63d6" + } + Frame { + msec: 1456 + hash: "2c4c360320f527e99fee799e68c2c0aa" + } + Frame { + msec: 1472 + hash: "0d30916c7e05ff8609af5894f47a89bb" + } + Frame { + msec: 1488 + hash: "0d30916c7e05ff8609af5894f47a89bb" + } + Frame { + msec: 1504 + hash: "0d30916c7e05ff8609af5894f47a89bb" + } + Frame { + msec: 1520 + hash: "0d30916c7e05ff8609af5894f47a89bb" + } + Frame { + msec: 1536 + hash: "0d30916c7e05ff8609af5894f47a89bb" + } + Frame { + msec: 1552 + hash: "0d30916c7e05ff8609af5894f47a89bb" + } + Frame { + msec: 1568 + hash: "0d30916c7e05ff8609af5894f47a89bb" + } + Frame { + msec: 1584 + hash: "0d30916c7e05ff8609af5894f47a89bb" + } + Key { + type: 6 + key: 16777237 + modifiers: 536870912 + text: "1f" + autorep: false + count: 1 + } + Frame { + msec: 1600 + hash: "0d30916c7e05ff8609af5894f47a89bb" + } + Frame { + msec: 1616 + hash: "17027b7c099b11cb5382f30dbbd1e647" + } + Frame { + msec: 1632 + hash: "0e17461a4ca843f9903b7f03e99a0b00" + } + Frame { + msec: 1648 + hash: "a5e61901920553e59892fa405beea15a" + } + Frame { + msec: 1664 + hash: "310eaf71fe8d3807606e58a666c65ccd" + } + Frame { + msec: 1680 + hash: "76f556d05fb77082f33eb1836c10587a" + } + Key { + type: 7 + key: 16777237 + modifiers: 536870912 + text: "1f" + autorep: false + count: 1 + } + Frame { + msec: 1696 + hash: "4e7e4b7790a96396e7ea3533b5c32ed9" + } + Frame { + msec: 1712 + hash: "b065287b6490f58ca6f0e9eb2027cf20" + } + Frame { + msec: 1728 + hash: "907cd9dbdffa1d395caaabd466dc8e86" + } + Frame { + msec: 1744 + hash: "3b144e5b4867328beafa3020ce931480" + } + Frame { + msec: 1760 + hash: "b59b2b60b7d55424b61b1b0ed3e227b8" + } + Frame { + msec: 1776 + hash: "4032e934871b315b68c7c2abea42efee" + } + Frame { + msec: 1792 + hash: "8f80127b2f8d6fc10aa84062544cc381" + } + Frame { + msec: 1808 + hash: "77d5193bc5f53fe5cb98a236c55f841e" + } + Frame { + msec: 1824 + hash: "77d5193bc5f53fe5cb98a236c55f841e" + } + Frame { + msec: 1840 + hash: "77d5193bc5f53fe5cb98a236c55f841e" + } + Frame { + msec: 1856 + hash: "77d5193bc5f53fe5cb98a236c55f841e" + } + Frame { + msec: 1872 + hash: "77d5193bc5f53fe5cb98a236c55f841e" + } + Frame { + msec: 1888 + hash: "77d5193bc5f53fe5cb98a236c55f841e" + } + Frame { + msec: 1904 + hash: "77d5193bc5f53fe5cb98a236c55f841e" + } + Frame { + msec: 1920 + image: "gridview2.1.png" + } + Frame { + msec: 1936 + hash: "77d5193bc5f53fe5cb98a236c55f841e" + } + Frame { + msec: 1952 + hash: "77d5193bc5f53fe5cb98a236c55f841e" + } + Frame { + msec: 1968 + hash: "77d5193bc5f53fe5cb98a236c55f841e" + } + Frame { + msec: 1984 + hash: "77d5193bc5f53fe5cb98a236c55f841e" + } + Frame { + msec: 2000 + hash: "77d5193bc5f53fe5cb98a236c55f841e" + } + Frame { + msec: 2016 + hash: "77d5193bc5f53fe5cb98a236c55f841e" + } + Key { + type: 6 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 2032 + hash: "77d5193bc5f53fe5cb98a236c55f841e" + } + Frame { + msec: 2048 + hash: "a45d2630872a14541f39b862e15ff461" + } + Frame { + msec: 2064 + hash: "714711d7382ef8bba5fb39e2e44bd59c" + } + Frame { + msec: 2080 + hash: "63deed0356e761f94f88be18a7d10053" + } + Frame { + msec: 2096 + hash: "d5b4fc1b568a4a1b63a91b422272c704" + } + Frame { + msec: 2112 + hash: "b6d2c80925cc6b4b7b297bd6ee903c7c" + } + Key { + type: 7 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 2128 + hash: "38117482196360353586cb7ace593894" + } + Frame { + msec: 2144 + hash: "2301f3a148bf4e311cc8ce011ddf65f8" + } + Frame { + msec: 2160 + hash: "2a4982a0961f89a15618f8d4c2081f5a" + } + Frame { + msec: 2176 + hash: "acf8666d6a8a29925f3895aa8e93f713" + } + Frame { + msec: 2192 + hash: "967ed026bc92a6d2747c5227105543a6" + } + Frame { + msec: 2208 + hash: "ff72f3fb95f25990c99c1c14cfef57da" + } + Frame { + msec: 2224 + hash: "0874a4f863596c3860dcf5b1f7f6ceb2" + } + Frame { + msec: 2240 + hash: "520445d8619ad9bdde0db0e61f17567c" + } + Frame { + msec: 2256 + hash: "520445d8619ad9bdde0db0e61f17567c" + } + Frame { + msec: 2272 + hash: "520445d8619ad9bdde0db0e61f17567c" + } + Frame { + msec: 2288 + hash: "520445d8619ad9bdde0db0e61f17567c" + } + Frame { + msec: 2304 + hash: "520445d8619ad9bdde0db0e61f17567c" + } + Frame { + msec: 2320 + hash: "520445d8619ad9bdde0db0e61f17567c" + } + Frame { + msec: 2336 + hash: "520445d8619ad9bdde0db0e61f17567c" + } + Frame { + msec: 2352 + hash: "520445d8619ad9bdde0db0e61f17567c" + } + Frame { + msec: 2368 + hash: "520445d8619ad9bdde0db0e61f17567c" + } + Key { + type: 6 + key: 16777237 + modifiers: 536870912 + text: "1f" + autorep: false + count: 1 + } + Frame { + msec: 2384 + hash: "520445d8619ad9bdde0db0e61f17567c" + } + Frame { + msec: 2400 + hash: "7c4bbf0423d63d7642d218cac56a6215" + } + Frame { + msec: 2416 + hash: "e8c77dbc89721b51549f8d46453fe09d" + } + Frame { + msec: 2432 + hash: "7953503590b639872ac12215695e8cea" + } + Frame { + msec: 2448 + hash: "edaee946a2e25fed6de9acfda0d44a14" + } + Frame { + msec: 2464 + hash: "4996ef39bb0122c10d65f8dd8674b386" + } + Frame { + msec: 2480 + hash: "ede7c6ca9d6deb7819c3715e98755d6e" + } + Frame { + msec: 2496 + hash: "e703fad2fcf9244ec9865200c7d17ce3" + } + Key { + type: 7 + key: 16777237 + modifiers: 536870912 + text: "1f" + autorep: false + count: 1 + } + Frame { + msec: 2512 + hash: "e2bfc16fd893bb3eb0e5df89a0169af3" + } + Frame { + msec: 2528 + hash: "cfd0eb2bc378bd46644f3f7820150685" + } + Frame { + msec: 2544 + hash: "442b05b04762c2bcda291aaa0341398e" + } + Frame { + msec: 2560 + hash: "55842a6503057eea98e2075ef160873e" + } + Frame { + msec: 2576 + hash: "730f80233dacf1119660a76d2a34c5fc" + } + Frame { + msec: 2592 + hash: "d4a48ee79a18cc5c0bc123fbb40c3efd" + } + Frame { + msec: 2608 + hash: "d4a48ee79a18cc5c0bc123fbb40c3efd" + } + Frame { + msec: 2624 + hash: "d4a48ee79a18cc5c0bc123fbb40c3efd" + } + Frame { + msec: 2640 + hash: "d4a48ee79a18cc5c0bc123fbb40c3efd" + } + Frame { + msec: 2656 + hash: "d4a48ee79a18cc5c0bc123fbb40c3efd" + } + Frame { + msec: 2672 + hash: "d4a48ee79a18cc5c0bc123fbb40c3efd" + } + Frame { + msec: 2688 + hash: "d4a48ee79a18cc5c0bc123fbb40c3efd" + } + Frame { + msec: 2704 + hash: "d4a48ee79a18cc5c0bc123fbb40c3efd" + } + Frame { + msec: 2720 + hash: "d4a48ee79a18cc5c0bc123fbb40c3efd" + } + Frame { + msec: 2736 + hash: "d4a48ee79a18cc5c0bc123fbb40c3efd" + } + Key { + type: 6 + key: 16777234 + modifiers: 536870912 + text: "1c" + autorep: false + count: 1 + } + Frame { + msec: 2752 + hash: "d4a48ee79a18cc5c0bc123fbb40c3efd" + } + Frame { + msec: 2768 + hash: "4d04c12bc7fab0b22df3135bf3a87a22" + } + Frame { + msec: 2784 + hash: "fdca5a3f8312452feba7f37b1caa6419" + } + Frame { + msec: 2800 + hash: "97b955e0f8cde30299b238d9ac0eb308" + } + Frame { + msec: 2816 + hash: "19664de1a738458810896959ba4087ad" + } + Frame { + msec: 2832 + hash: "4f9a4b6de6a2969e4639076a8f7c258e" + } + Key { + type: 7 + key: 16777234 + modifiers: 536870912 + text: "1c" + autorep: false + count: 1 + } + Frame { + msec: 2848 + hash: "a10f18aa686be2681a48082ec9f01df7" + } + Frame { + msec: 2864 + hash: "b8f39a6cca377dd573429d879286dd63" + } + Frame { + msec: 2880 + image: "gridview2.2.png" + } + Frame { + msec: 2896 + hash: "3301e52a46efbc49882401c77853ffde" + } + Frame { + msec: 2912 + hash: "0c614597f17496ebc701efe7b0c1fbb6" + } + Frame { + msec: 2928 + hash: "6dda2d6b034c932e279cf216c9b3e6ad" + } + Frame { + msec: 2944 + hash: "7bf08cd5fe3ad3f83bbef28f452e0545" + } + Frame { + msec: 2960 + hash: "1b7ebcf0e3d68e429cb04966120985e5" + } + Frame { + msec: 2976 + hash: "1b7ebcf0e3d68e429cb04966120985e5" + } + Frame { + msec: 2992 + hash: "1b7ebcf0e3d68e429cb04966120985e5" + } + Frame { + msec: 3008 + hash: "1b7ebcf0e3d68e429cb04966120985e5" + } + Frame { + msec: 3024 + hash: "1b7ebcf0e3d68e429cb04966120985e5" + } + Key { + type: 6 + key: 16777237 + modifiers: 536870912 + text: "1f" + autorep: false + count: 1 + } + Frame { + msec: 3040 + hash: "1b7ebcf0e3d68e429cb04966120985e5" + } + Frame { + msec: 3056 + hash: "0fe7d46e7c18ce7bb5a098c5c662d557" + } + Frame { + msec: 3072 + hash: "cd5df541cc1ed545bc27da9e4a937261" + } + Frame { + msec: 3088 + hash: "35762467b83fee1870cff9b0436994d3" + } + Frame { + msec: 3104 + hash: "75a620b42caabf5b1576041dbd4c2808" + } + Frame { + msec: 3120 + hash: "f1b06290a6cbd48b8d3d4ce1e42ed754" + } + Frame { + msec: 3136 + hash: "8e1a50dc082828587a4656117760a852" + } + Frame { + msec: 3152 + hash: "aae8e5f166e736040138d8e222a844dd" + } + Frame { + msec: 3168 + hash: "f69e5cf2bcb26fe49126776695b0b7e0" + } + Key { + type: 7 + key: 16777237 + modifiers: 536870912 + text: "1f" + autorep: false + count: 1 + } + Frame { + msec: 3184 + hash: "7b482fece0255ea07496ef0545b008a2" + } + Frame { + msec: 3200 + hash: "3f96eaebfebe8d4eeb347b201b59ab11" + } + Frame { + msec: 3216 + hash: "9943626d2226c3be711c8213906133f0" + } + Frame { + msec: 3232 + hash: "fd5fd8177b3957c27f1de0d95621351a" + } + Frame { + msec: 3248 + hash: "506283ccfe9670633ce0bf60b437b37b" + } + Frame { + msec: 3264 + hash: "506283ccfe9670633ce0bf60b437b37b" + } + Frame { + msec: 3280 + hash: "506283ccfe9670633ce0bf60b437b37b" + } + Frame { + msec: 3296 + hash: "506283ccfe9670633ce0bf60b437b37b" + } + Frame { + msec: 3312 + hash: "506283ccfe9670633ce0bf60b437b37b" + } + Frame { + msec: 3328 + hash: "506283ccfe9670633ce0bf60b437b37b" + } + Frame { + msec: 3344 + hash: "506283ccfe9670633ce0bf60b437b37b" + } + Frame { + msec: 3360 + hash: "506283ccfe9670633ce0bf60b437b37b" + } + Frame { + msec: 3376 + hash: "506283ccfe9670633ce0bf60b437b37b" + } + Key { + type: 6 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 3392 + hash: "506283ccfe9670633ce0bf60b437b37b" + } + Frame { + msec: 3408 + hash: "fb437f6c23561092a124e498f1604ff2" + } + Frame { + msec: 3424 + hash: "402ba144bbb7260eec4553e68eb35cda" + } + Frame { + msec: 3440 + hash: "76a983de9e85e0c81dfb8908252bd6c9" + } + Frame { + msec: 3456 + hash: "09219f55fae47a0afed887ebf68a36bc" + } + Frame { + msec: 3472 + hash: "344e81cc262093facef2f6a235a734dc" + } + Frame { + msec: 3488 + hash: "8f1c5544eb537555b1c59a377b15e31d" + } + Frame { + msec: 3504 + hash: "606b9bb549fe2e4bbd09d67b7dea0d1a" + } + Key { + type: 7 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 3520 + hash: "63e239c97bd01a61cb31ef2869e7f47c" + } + Frame { + msec: 3536 + hash: "f7c176550c39f8a1ad64590cf33a60a4" + } + Frame { + msec: 3552 + hash: "8581cb14ed81efdf9abb638b5e542cc3" + } + Frame { + msec: 3568 + hash: "7a1e9354ecc49d8bc27d303c7bdc81f9" + } + Frame { + msec: 3584 + hash: "610288b97276ee03702ed8a814ef333d" + } + Frame { + msec: 3600 + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" + } + Frame { + msec: 3616 + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" + } + Frame { + msec: 3632 + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" + } + Frame { + msec: 3648 + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" + } + Frame { + msec: 3664 + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" + } + Frame { + msec: 3680 + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" + } + Frame { + msec: 3696 + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" + } + Frame { + msec: 3712 + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" + } + Frame { + msec: 3728 + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" + } + Frame { + msec: 3744 + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" + } + Frame { + msec: 3760 + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" + } + Frame { + msec: 3776 + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" + } + Key { + type: 6 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 3792 + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" + } + Frame { + msec: 3808 + hash: "9713c6b9aff051dd0cc45c545d34b688" + } + Frame { + msec: 3824 + hash: "1f8fd4d759e343720a8681b6ad126b72" + } + Frame { + msec: 3840 + image: "gridview2.3.png" + } + Frame { + msec: 3856 + hash: "8550d916d91a40b0c3a886b962e07ffc" + } + Key { + type: 7 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 3872 + hash: "df0c2e474139e79429bfc19c79a65ef8" + } + Frame { + msec: 3888 + hash: "acfb99d081d754276e5ed59bd590aeab" + } + Frame { + msec: 3904 + hash: "2b34cd101b442f7a3de2893fd5514c16" + } + Frame { + msec: 3920 + hash: "df92ced66faa1d59354d8010278438ec" + } + Frame { + msec: 3936 + hash: "dd39a8e6fa3784453461193a6da416cd" + } + Frame { + msec: 3952 + hash: "5670e8f91ea2df451f0974a51cd77d7d" + } + Frame { + msec: 3968 + hash: "74b97a09bfe7400872a2c6214e04a5ac" + } + Frame { + msec: 3984 + hash: "cfd55b963506ab54cf09a7311e84bcc9" + } + Frame { + msec: 4000 + hash: "59657ee9293c03f064d62de826931435" + } + Frame { + msec: 4016 + hash: "31f6a4adf31be5ed0af0ea4097e3acee" + } + Frame { + msec: 4032 + hash: "8f5bfc40c8cdb2f8ce69adb72e7efe76" + } + Frame { + msec: 4048 + hash: "9dc38985113124130e2ca7950e0bd144" + } + Frame { + msec: 4064 + hash: "786e6e8b9e74876a6f393d61a78b8fc7" + } + Frame { + msec: 4080 + hash: "1f4d59a4e4684aab309363a711b30006" + } + Frame { + msec: 4096 + hash: "a11e332de151b43051796e16dbcf75c3" + } + Frame { + msec: 4112 + hash: "1a0e82029ae107cb2a018786752433ff" + } + Frame { + msec: 4128 + hash: "b14c51977c7fbf51f9cf6fec309bff6a" + } + Frame { + msec: 4144 + hash: "2b418f811992399c3f87c268db745632" + } + Frame { + msec: 4160 + hash: "0e9a056207053ca98c4e9f42de244c62" + } + Frame { + msec: 4176 + hash: "1945c3f9e3a1337e7d111e15adea345f" + } + Frame { + msec: 4192 + hash: "d8cf36b6cc15a01ead815d814ae81cb4" + } + Frame { + msec: 4208 + hash: "d8cf36b6cc15a01ead815d814ae81cb4" + } + Frame { + msec: 4224 + hash: "d8cf36b6cc15a01ead815d814ae81cb4" + } + Frame { + msec: 4240 + hash: "d8cf36b6cc15a01ead815d814ae81cb4" + } + Frame { + msec: 4256 + hash: "d8cf36b6cc15a01ead815d814ae81cb4" + } + Frame { + msec: 4272 + hash: "d8cf36b6cc15a01ead815d814ae81cb4" + } + Frame { + msec: 4288 + hash: "d8cf36b6cc15a01ead815d814ae81cb4" + } + Frame { + msec: 4304 + hash: "d8cf36b6cc15a01ead815d814ae81cb4" + } + Frame { + msec: 4320 + hash: "d8cf36b6cc15a01ead815d814ae81cb4" + } + Frame { + msec: 4336 + hash: "d8cf36b6cc15a01ead815d814ae81cb4" + } + Frame { + msec: 4352 + hash: "d8cf36b6cc15a01ead815d814ae81cb4" + } + Frame { + msec: 4368 + hash: "d8cf36b6cc15a01ead815d814ae81cb4" + } + Frame { + msec: 4384 + hash: "d8cf36b6cc15a01ead815d814ae81cb4" + } + Frame { + msec: 4400 + hash: "d8cf36b6cc15a01ead815d814ae81cb4" + } + Frame { + msec: 4416 + hash: "d8cf36b6cc15a01ead815d814ae81cb4" + } + Key { + type: 6 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 4432 + hash: "d8cf36b6cc15a01ead815d814ae81cb4" + } + Frame { + msec: 4448 + hash: "1945c3f9e3a1337e7d111e15adea345f" + } + Frame { + msec: 4464 + hash: "0e9a056207053ca98c4e9f42de244c62" + } + Frame { + msec: 4480 + hash: "2b418f811992399c3f87c268db745632" + } + Frame { + msec: 4496 + hash: "b14c51977c7fbf51f9cf6fec309bff6a" + } + Frame { + msec: 4512 + hash: "1a0e82029ae107cb2a018786752433ff" + } + Frame { + msec: 4528 + hash: "a11e332de151b43051796e16dbcf75c3" + } + Key { + type: 7 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 4544 + hash: "1f4d59a4e4684aab309363a711b30006" + } + Frame { + msec: 4560 + hash: "786e6e8b9e74876a6f393d61a78b8fc7" + } + Frame { + msec: 4576 + hash: "9dc38985113124130e2ca7950e0bd144" + } + Frame { + msec: 4592 + hash: "8f5bfc40c8cdb2f8ce69adb72e7efe76" + } + Frame { + msec: 4608 + hash: "31f6a4adf31be5ed0af0ea4097e3acee" + } + Frame { + msec: 4624 + hash: "59657ee9293c03f064d62de826931435" + } + Frame { + msec: 4640 + hash: "23aa652a0de7fced4a780d72f0940a1b" + } + Frame { + msec: 4656 + hash: "23aa652a0de7fced4a780d72f0940a1b" + } + Frame { + msec: 4672 + hash: "23aa652a0de7fced4a780d72f0940a1b" + } + Frame { + msec: 4688 + hash: "23aa652a0de7fced4a780d72f0940a1b" + } + Frame { + msec: 4704 + hash: "23aa652a0de7fced4a780d72f0940a1b" + } + Frame { + msec: 4720 + hash: "23aa652a0de7fced4a780d72f0940a1b" + } + Frame { + msec: 4736 + hash: "23aa652a0de7fced4a780d72f0940a1b" + } + Frame { + msec: 4752 + hash: "23aa652a0de7fced4a780d72f0940a1b" + } + Frame { + msec: 4768 + hash: "23aa652a0de7fced4a780d72f0940a1b" + } + Frame { + msec: 4784 + hash: "23aa652a0de7fced4a780d72f0940a1b" + } + Frame { + msec: 4800 + image: "gridview2.4.png" + } + Frame { + msec: 4816 + hash: "23aa652a0de7fced4a780d72f0940a1b" + } + Key { + type: 6 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 4832 + hash: "23aa652a0de7fced4a780d72f0940a1b" + } + Frame { + msec: 4848 + hash: "d46eea049d6156a5e85d9c6811d9d367" + } + Frame { + msec: 4864 + hash: "d5796ae85247cb8502f92f0d044e4e1f" + } + Frame { + msec: 4880 + hash: "90987ac49c1a4e6b668436e3ff631e6c" + } + Frame { + msec: 4896 + hash: "c38d69759ad80242b1fe83ba191cd421" + } + Frame { + msec: 4912 + hash: "09d08aed76a04e492d8a39cc4dd2b8f5" + } + Key { + type: 7 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 + } + Frame { + msec: 4928 + hash: "9671d2ff9a2ef46ce3c750a1965404a4" + } + Frame { + msec: 4944 + hash: "f55857816d666ece4a7987a70883b3d1" + } + Frame { + msec: 4960 + hash: "a2d80527b30316d9120b057bbfcfa666" + } + Frame { + msec: 4976 + hash: "87ca69287c1469cbc7e65d1673016de7" + } + Frame { + msec: 4992 + hash: "51588c7ebbe2dcd87a3c9bebf028aee3" + } + Frame { + msec: 5008 + hash: "917a9a171273fe9fd4c450eeed6f58ed" + } + Frame { + msec: 5024 + hash: "6e7ade250a9a9692caee2a220dd2ac53" + } + Frame { + msec: 5040 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5056 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5072 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5088 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5104 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5120 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5136 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5152 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5168 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5184 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5200 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5216 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5232 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5248 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5264 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5280 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5296 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5312 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5328 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5344 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5360 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5376 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5392 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5408 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5424 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5440 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5456 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5472 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5488 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5504 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5520 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5536 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5552 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5568 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5584 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5600 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Key { + type: 6 + key: 16777237 + modifiers: 536870912 + text: "1f" + autorep: false + count: 1 + } + Frame { + msec: 5616 + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5632 + hash: "c5c9aab9bea757f1c451e89df72bd836" + } + Frame { + msec: 5648 + hash: "a8cf3085f8c3b743f3f15db1ad7b8801" + } + Frame { + msec: 5664 + hash: "c25a92050eced1c304506572723273a3" + } + Frame { + msec: 5680 + hash: "cff981039c1a3eb6c3c1a20f142fbae2" + } + Frame { + msec: 5696 + hash: "930765587fe3355873bbdff66b812b74" + } + Frame { + msec: 5712 + hash: "6a60f97c7b39add465e1bd366e9c644b" + } + Key { + type: 7 + key: 16777237 + modifiers: 536870912 + text: "1f" + autorep: false + count: 1 + } + Frame { + msec: 5728 + hash: "7a1fd3c488d1064a75dc598c9a773291" + } + Frame { + msec: 5744 + hash: "e2ecd7e68e27eb3d2dcb5e368d3ee5a0" + } + Frame { + msec: 5760 + image: "gridview2.5.png" + } + Frame { + msec: 5776 + hash: "20f3aaca2efc3066076e73d1d95e5363" + } + Frame { + msec: 5792 + hash: "b18d476cadc36e22dddc3185f595c123" + } + Frame { + msec: 5808 + hash: "8cbc47555178c8ee355774eab17b4b19" + } + Frame { + msec: 5824 + hash: "e488fb76fb550fba51b95bee3fee80d5" + } + Frame { + msec: 5840 + hash: "e488fb76fb550fba51b95bee3fee80d5" + } + Frame { + msec: 5856 + hash: "e488fb76fb550fba51b95bee3fee80d5" + } + Frame { + msec: 5872 + hash: "e488fb76fb550fba51b95bee3fee80d5" + } + Frame { + msec: 5888 + hash: "e488fb76fb550fba51b95bee3fee80d5" + } + Frame { + msec: 5904 + hash: "e488fb76fb550fba51b95bee3fee80d5" + } + Frame { + msec: 5920 + hash: "e488fb76fb550fba51b95bee3fee80d5" + } + Frame { + msec: 5936 + hash: "e488fb76fb550fba51b95bee3fee80d5" + } + Frame { + msec: 5952 + hash: "e488fb76fb550fba51b95bee3fee80d5" + } + Frame { + msec: 5968 + hash: "e488fb76fb550fba51b95bee3fee80d5" + } + Frame { + msec: 5984 + hash: "e488fb76fb550fba51b95bee3fee80d5" + } + Frame { + msec: 6000 + hash: "e488fb76fb550fba51b95bee3fee80d5" + } + Frame { + msec: 6016 + hash: "e488fb76fb550fba51b95bee3fee80d5" + } + Frame { + msec: 6032 + hash: "e488fb76fb550fba51b95bee3fee80d5" + } + Frame { + msec: 6048 + hash: "e488fb76fb550fba51b95bee3fee80d5" + } + Frame { + msec: 6064 + hash: "e488fb76fb550fba51b95bee3fee80d5" + } + Frame { + msec: 6080 + hash: "e488fb76fb550fba51b95bee3fee80d5" + } + Frame { + msec: 6096 + hash: "e488fb76fb550fba51b95bee3fee80d5" + } + Key { + type: 6 + key: 16777237 + modifiers: 536870912 + text: "1f" + autorep: false + count: 1 + } + Frame { + msec: 6112 + hash: "e488fb76fb550fba51b95bee3fee80d5" + } + Frame { + msec: 6128 + hash: "8c2fab0c73d1cfbeeb0ec937085d6b3b" + } + Frame { + msec: 6144 + hash: "5d9353517177ef7c6314d8a65cb009ec" + } + Frame { + msec: 6160 + hash: "ed8de504f7e2028cd369c1555314fd81" + } + Frame { + msec: 6176 + hash: "8fe84d8badbe5bd08d097ba6bda10611" + } + Frame { + msec: 6192 + hash: "d77419a55a3cf933505e793bb258e6af" + } + Frame { + msec: 6208 + hash: "457ac82be02e2f5e08e51ccc78c94781" + } + Frame { + msec: 6224 + hash: "e57e2852f065afff9c24c5bc9f29edee" + } + Frame { + msec: 6240 + hash: "f72cd6ad3324936c3a18c264e23e05a9" + } + Key { + type: 7 + key: 16777237 + modifiers: 536870912 + text: "1f" + autorep: false + count: 1 + } + Frame { + msec: 6256 + hash: "a4bf7eae6fc7a05239d09421ae95304a" + } + Frame { + msec: 6272 + hash: "423f3bd07df8bee25818644c07201a3c" + } + Frame { + msec: 6288 + hash: "225e9c698424f287b9458b7839b4479b" + } + Frame { + msec: 6304 + hash: "0f463db7e4acc184a4efb7b5e5c0d397" + } + Frame { + msec: 6320 + hash: "b92ad1c3be35c46c0d12bf7701c56f23" + } + Frame { + msec: 6336 + hash: "b92ad1c3be35c46c0d12bf7701c56f23" + } + Frame { + msec: 6352 + hash: "b92ad1c3be35c46c0d12bf7701c56f23" + } + Frame { + msec: 6368 + hash: "b92ad1c3be35c46c0d12bf7701c56f23" + } + Frame { + msec: 6384 + hash: "b92ad1c3be35c46c0d12bf7701c56f23" + } + Frame { + msec: 6400 + hash: "b92ad1c3be35c46c0d12bf7701c56f23" + } + Frame { + msec: 6416 + hash: "b92ad1c3be35c46c0d12bf7701c56f23" + } + Frame { + msec: 6432 + hash: "b92ad1c3be35c46c0d12bf7701c56f23" + } + Frame { + msec: 6448 + hash: "b92ad1c3be35c46c0d12bf7701c56f23" + } + Frame { + msec: 6464 + hash: "b92ad1c3be35c46c0d12bf7701c56f23" + } + Frame { + msec: 6480 + hash: "b92ad1c3be35c46c0d12bf7701c56f23" + } + Frame { + msec: 6496 + hash: "b92ad1c3be35c46c0d12bf7701c56f23" + } + Frame { + msec: 6512 + hash: "b92ad1c3be35c46c0d12bf7701c56f23" + } + Frame { + msec: 6528 + hash: "b92ad1c3be35c46c0d12bf7701c56f23" + } + Frame { + msec: 6544 + hash: "b92ad1c3be35c46c0d12bf7701c56f23" + } + Frame { + msec: 6560 + hash: "b92ad1c3be35c46c0d12bf7701c56f23" + } + Frame { + msec: 6576 + hash: "b92ad1c3be35c46c0d12bf7701c56f23" + } + Frame { + msec: 6592 + hash: "b92ad1c3be35c46c0d12bf7701c56f23" + } + Frame { + msec: 6608 + hash: "b92ad1c3be35c46c0d12bf7701c56f23" + } + Frame { + msec: 6624 + hash: "b92ad1c3be35c46c0d12bf7701c56f23" + } + Frame { + msec: 6640 + hash: "b92ad1c3be35c46c0d12bf7701c56f23" + } + Frame { + msec: 6656 + hash: "b92ad1c3be35c46c0d12bf7701c56f23" + } + Frame { + msec: 6672 + hash: "b92ad1c3be35c46c0d12bf7701c56f23" + } + Frame { + msec: 6688 + hash: "b92ad1c3be35c46c0d12bf7701c56f23" + } + Frame { + msec: 6704 + hash: "b92ad1c3be35c46c0d12bf7701c56f23" + } + Frame { + msec: 6720 + image: "gridview2.6.png" + } + Frame { + msec: 6736 + hash: "b92ad1c3be35c46c0d12bf7701c56f23" + } + Key { + type: 6 + key: 16777237 + modifiers: 536870912 + text: "1f" + autorep: false + count: 1 + } + Frame { + msec: 6752 + hash: "b92ad1c3be35c46c0d12bf7701c56f23" + } + Frame { + msec: 6768 + hash: "738f6bcc043d221488285c7e529b1d1c" + } + Frame { + msec: 6784 + hash: "cb0a4e8e79372dd67e8ecfea2143a47c" + } + Frame { + msec: 6800 + hash: "544d1825b36f4e7950c1a62b26c1fd9b" + } + Frame { + msec: 6816 + hash: "df99396622342b4f092b0db34a224c3d" + } + Frame { + msec: 6832 + hash: "47391f51e5df2249a6ca1f1f6e8e80e0" + } + Key { + type: 7 + key: 16777237 + modifiers: 536870912 + text: "1f" + autorep: false + count: 1 + } + Frame { + msec: 6848 + hash: "d8079a874ca18d00aeeb611effcbeb8b" + } + Frame { + msec: 6864 + hash: "4cfd9264af6935aca425da75ebb2d7cc" + } + Frame { + msec: 6880 + hash: "aee6547cb653cd2d56d07285d836149d" + } + Frame { + msec: 6896 + hash: "969720f17eae51258e2e143e14bfa737" + } + Frame { + msec: 6912 + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" + } + Frame { + msec: 6928 + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" + } + Frame { + msec: 6944 + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" + } + Frame { + msec: 6960 + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" + } + Frame { + msec: 6976 + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" + } + Frame { + msec: 6992 + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" + } + Frame { + msec: 7008 + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" + } + Frame { + msec: 7024 + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" + } + Frame { + msec: 7040 + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" + } + Frame { + msec: 7056 + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" + } + Frame { + msec: 7072 + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" + } + Frame { + msec: 7088 + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" + } + Frame { + msec: 7104 + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" + } + Frame { + msec: 7120 + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" + } + Frame { + msec: 7136 + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" + } + Frame { + msec: 7152 + hash: "beeaec4b983c970ae448e33047dfdfea" + } + Frame { + msec: 7168 + hash: "7c415ab1b7d8e25b71af75d3eec8ee4a" + } + Frame { + msec: 7184 + hash: "8913037e57b9a6a58b68f2d6e69b1bd1" + } + Frame { + msec: 7200 + hash: "19e59e9409fdaf90ccf75606b58688b7" + } + Frame { + msec: 7216 + hash: "1ae71ef5b1006f637bd8df0769af65a6" + } + Frame { + msec: 7232 + hash: "1f0aa8b368b2dbccafd54b923d8cce95" + } + Frame { + msec: 7248 + hash: "c5079fb25a8c80a995d7aa5fbbd91428" + } + Frame { + msec: 7264 + hash: "59f41220fa5d23db298c9e94f115c17b" + } + Frame { + msec: 7280 + hash: "48259dfe8b266d9e7f50b187be98c3cb" + } + Frame { + msec: 7296 + hash: "f7554552598351c3b8dfcbe3ebc32b3b" + } + Frame { + msec: 7312 + hash: "219e9cd84d7e5c5c0e6cb80100aa3ab5" + } + Frame { + msec: 7328 + hash: "5578e870ee8ce00bce5a59bb25e3d0a9" + } + Frame { + msec: 7344 + hash: "4d9cebbf750c03380694245e0e22ab94" + } + Frame { + msec: 7360 + hash: "a60a8032e97ed0a3caa05012c1283de5" + } + Frame { + msec: 7376 + hash: "3bee20b349a7e9d67f7770ede6da8673" + } + Frame { + msec: 7392 + hash: "d8c34576c25fb8b5e4fa12680ac32e99" + } + Frame { + msec: 7408 + hash: "cd1360aa7db7c3b2f2012dfc44de2198" + } + Frame { + msec: 7424 + hash: "cd82782f63c9a7d21d51b3440c2f038b" + } + Frame { + msec: 7440 + hash: "e59061967a841aa45607c0828b687527" + } + Frame { + msec: 7456 + hash: "01962406c9aaf1aa8bf3ab49e30ddf5f" + } + Frame { + msec: 7472 + hash: "5a5732a568189e598c7985ee806bc67e" + } + Frame { + msec: 7488 + hash: "54775aed3a6283c1fa330d65de5bc70c" + } + Frame { + msec: 7504 + hash: "66640b4a5c1e68924b25de24e3c3f008" + } + Frame { + msec: 7520 + hash: "76999d3125f20ba47dbdff38ee722a8a" + } + Frame { + msec: 7536 + hash: "5159c81533bee8825cff11910bcb90dc" + } + Frame { + msec: 7552 + hash: "ac0295495345987d1e000f6bb2436927" + } + Frame { + msec: 7568 + hash: "d56b4a04f1d2835a0852ea20e8e2f451" + } + Frame { + msec: 7584 + hash: "ae41fe23e2ab508d7642973c0d9d35b0" + } + Frame { + msec: 7600 + hash: "730ca01fbee6ec4928715ec52773c06c" + } + Frame { + msec: 7616 + hash: "ad1fa52c617a2b119d61eb9fb7d58a82" + } + Frame { + msec: 7632 + hash: "c74321a822b515a393e8e218bd45e8e3" + } + Frame { + msec: 7648 + hash: "a9e2f3bee1d47166204c74bdf90cd8c8" + } + Frame { + msec: 7664 + hash: "e10d4bf08980ea7d079a2f359ee62b95" + } + Frame { + msec: 7680 + image: "gridview2.7.png" + } + Frame { + msec: 7696 + hash: "9f0ba6051e684e54ff4e36d980a7e600" + } + Frame { + msec: 7712 + hash: "aa6268d8d7fb3d2b91db3e225e8c818a" + } + Frame { + msec: 7728 + hash: "8e547e55279b1929f42bf51e753f142e" + } + Frame { + msec: 7744 + hash: "5386c71f8d6701379e177f161d714da2" + } + Frame { + msec: 7760 + hash: "a184e9e6012c72fc1aeaed9f98b0fb1e" + } + Frame { + msec: 7776 + hash: "777a6b70ca77c45e2e5e3914cc328dcb" + } + Frame { + msec: 7792 + hash: "424f73f25a1e91126f951838d45adc3b" + } + Frame { + msec: 7808 + hash: "3f7f2eb6b9a5d19fbfcd700baf566dfb" + } + Frame { + msec: 7824 + hash: "c3c4c72b25c2295b82a5fd7454942f77" + } + Frame { + msec: 7840 + hash: "3b35e93d3eb9d28c5c03d6d353f805d2" + } + Frame { + msec: 7856 + hash: "5dcad019a1c0eaaab381a7602e1914ff" + } + Frame { + msec: 7872 + hash: "602a5c569555767413bf445af44c744f" + } + Frame { + msec: 7888 + hash: "3e9facab95dae772f695b6f7c5175063" + } + Frame { + msec: 7904 + hash: "0921220ec36ca7b25eaae699872a2006" + } + Frame { + msec: 7920 + hash: "1d5fa7fd630af62bcc805bdc6686df37" + } + Frame { + msec: 7936 + hash: "165c02de63604aa118d9f8995e6b45af" + } + Frame { + msec: 7952 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 7968 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 7984 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8000 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8016 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8032 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8048 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8064 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8080 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8096 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8112 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8128 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8144 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8160 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8176 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8192 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8208 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8224 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8240 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8256 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8272 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8288 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8304 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8320 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8336 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8352 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8368 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8384 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8400 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8416 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8432 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8448 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8464 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8480 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8496 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8512 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8528 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8544 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8560 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8576 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8592 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8608 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8624 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8640 + image: "gridview2.8.png" + } + Frame { + msec: 8656 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8672 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8688 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8704 + hash: "33d81c39d16c6a326012499796e50e03" + } + Key { + type: 6 + key: 16777249 + modifiers: 67108864 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 8720 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8736 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8752 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8768 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8784 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8800 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8816 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8832 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8848 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8864 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8880 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8896 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8912 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8928 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8944 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8960 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8976 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 8992 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 9008 + hash: "33d81c39d16c6a326012499796e50e03" + } + Frame { + msec: 9024 + hash: "33d81c39d16c6a326012499796e50e03" + } +} diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/gridview.qml b/tests/auto/declarative/qmlvisual/qdeclarativegridview/gridview.qml index 4dac63e..95556f1 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativegridview/gridview.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/gridview.qml @@ -1,7 +1,5 @@ import QtQuick 1.0 -//Currently doesn't behave right, see QTBUG-14837 - Rectangle { width: 300; height: 400; color: "black" @@ -40,7 +38,7 @@ Rectangle { Component { id: appHighlight - Rectangle { width: 100; height: 100; color: "white"; z: 3000 } + Rectangle { width: 100; height: 100; color: "white"; z: 0 } } GridView { diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/gridview2.qml b/tests/auto/declarative/qmlvisual/qdeclarativegridview/gridview2.qml index e27b4df..0dd9d0e 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativegridview/gridview2.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/gridview2.qml @@ -1,8 +1,7 @@ import QtQuick 1.0 -//Currently doesn't behave right: see QTBUG-14838 - Rectangle { + property string skip: "Last bit is wrong (rest is probably right, just bitrot). QTBUG-14838" width: 300; height: 400; color: "black" ListModel { @@ -47,7 +46,7 @@ Rectangle { model: appModel; delegate: appDelegate; focus: true keyNavigationWraps: true - flickableData: [ + flickableData: [//Presumably the different way of doing highlight tests more things Rectangle { color: "transparent"; border.color: "white"; border.width: 8; z: 3000 height: 100; width: 100 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.0.png b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.0.png Binary files differnew file mode 100644 index 0000000..f474afe --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.0.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.1.png b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.1.png Binary files differnew file mode 100644 index 0000000..8b7ae74 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.1.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.2.png b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.2.png Binary files differnew file mode 100644 index 0000000..9088bb4 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.2.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.3.png b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.3.png Binary files differnew file mode 100644 index 0000000..18cd429 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.3.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.4.png b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.4.png Binary files differnew file mode 100644 index 0000000..739afc1 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.4.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.5.png b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.5.png Binary files differnew file mode 100644 index 0000000..93f0682 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.5.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.qml b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.qml new file mode 100644 index 0000000..4b36e16 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.qml @@ -0,0 +1,1603 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "ee42cfa8cbbd67becb7d50998d26fe73" + } + Frame { + msec: 32 + hash: "ee42cfa8cbbd67becb7d50998d26fe73" + } + Frame { + msec: 48 + hash: "ee42cfa8cbbd67becb7d50998d26fe73" + } + Frame { + msec: 64 + hash: "ee42cfa8cbbd67becb7d50998d26fe73" + } + Frame { + msec: 80 + hash: "ee42cfa8cbbd67becb7d50998d26fe73" + } + Frame { + msec: 96 + hash: "ee42cfa8cbbd67becb7d50998d26fe73" + } + Frame { + msec: 112 + hash: "ee42cfa8cbbd67becb7d50998d26fe73" + } + Frame { + msec: 128 + hash: "ee42cfa8cbbd67becb7d50998d26fe73" + } + Frame { + msec: 144 + hash: "ee42cfa8cbbd67becb7d50998d26fe73" + } + Frame { + msec: 160 + hash: "ee42cfa8cbbd67becb7d50998d26fe73" + } + Frame { + msec: 176 + hash: "ee42cfa8cbbd67becb7d50998d26fe73" + } + Frame { + msec: 192 + hash: "ee42cfa8cbbd67becb7d50998d26fe73" + } + Frame { + msec: 208 + hash: "ee42cfa8cbbd67becb7d50998d26fe73" + } + Frame { + msec: 224 + hash: "ee42cfa8cbbd67becb7d50998d26fe73" + } + Frame { + msec: 240 + hash: "ee42cfa8cbbd67becb7d50998d26fe73" + } + Frame { + msec: 256 + hash: "ee42cfa8cbbd67becb7d50998d26fe73" + } + Frame { + msec: 272 + hash: "ee42cfa8cbbd67becb7d50998d26fe73" + } + Frame { + msec: 288 + hash: "ee42cfa8cbbd67becb7d50998d26fe73" + } + Frame { + msec: 304 + hash: "ee42cfa8cbbd67becb7d50998d26fe73" + } + Frame { + msec: 320 + hash: "ee42cfa8cbbd67becb7d50998d26fe73" + } + Frame { + msec: 336 + hash: "ee42cfa8cbbd67becb7d50998d26fe73" + } + Frame { + msec: 352 + hash: "ee42cfa8cbbd67becb7d50998d26fe73" + } + Frame { + msec: 368 + hash: "ee42cfa8cbbd67becb7d50998d26fe73" + } + Frame { + msec: 384 + hash: "ee42cfa8cbbd67becb7d50998d26fe73" + } + Frame { + msec: 400 + hash: "ee42cfa8cbbd67becb7d50998d26fe73" + } + Frame { + msec: 416 + hash: "ee42cfa8cbbd67becb7d50998d26fe73" + } + Frame { + msec: 432 + hash: "ee42cfa8cbbd67becb7d50998d26fe73" + } + Frame { + msec: 448 + hash: "ee42cfa8cbbd67becb7d50998d26fe73" + } + Frame { + msec: 464 + hash: "ee42cfa8cbbd67becb7d50998d26fe73" + } + Frame { + msec: 480 + hash: "ee42cfa8cbbd67becb7d50998d26fe73" + } + Frame { + msec: 496 + hash: "ee42cfa8cbbd67becb7d50998d26fe73" + } + Frame { + msec: 512 + hash: "ee42cfa8cbbd67becb7d50998d26fe73" + } + Frame { + msec: 528 + hash: "62727b1025930e19bb03c8f533a12ced" + } + Frame { + msec: 544 + hash: "62727b1025930e19bb03c8f533a12ced" + } + Frame { + msec: 560 + hash: "62727b1025930e19bb03c8f533a12ced" + } + Frame { + msec: 576 + hash: "62727b1025930e19bb03c8f533a12ced" + } + Frame { + msec: 592 + hash: "62727b1025930e19bb03c8f533a12ced" + } + Frame { + msec: 608 + hash: "62727b1025930e19bb03c8f533a12ced" + } + Frame { + msec: 624 + hash: "62727b1025930e19bb03c8f533a12ced" + } + Frame { + msec: 640 + hash: "62727b1025930e19bb03c8f533a12ced" + } + Frame { + msec: 656 + hash: "62727b1025930e19bb03c8f533a12ced" + } + Frame { + msec: 672 + hash: "62727b1025930e19bb03c8f533a12ced" + } + Frame { + msec: 688 + hash: "62727b1025930e19bb03c8f533a12ced" + } + Frame { + msec: 704 + hash: "62727b1025930e19bb03c8f533a12ced" + } + Frame { + msec: 720 + hash: "62727b1025930e19bb03c8f533a12ced" + } + Frame { + msec: 736 + hash: "62727b1025930e19bb03c8f533a12ced" + } + Frame { + msec: 752 + hash: "62727b1025930e19bb03c8f533a12ced" + } + Frame { + msec: 768 + hash: "62727b1025930e19bb03c8f533a12ced" + } + Frame { + msec: 784 + hash: "62727b1025930e19bb03c8f533a12ced" + } + Frame { + msec: 800 + hash: "62727b1025930e19bb03c8f533a12ced" + } + Frame { + msec: 816 + hash: "62727b1025930e19bb03c8f533a12ced" + } + Frame { + msec: 832 + hash: "62727b1025930e19bb03c8f533a12ced" + } + Frame { + msec: 848 + hash: "62727b1025930e19bb03c8f533a12ced" + } + Frame { + msec: 864 + hash: "62727b1025930e19bb03c8f533a12ced" + } + Frame { + msec: 880 + hash: "62727b1025930e19bb03c8f533a12ced" + } + Frame { + msec: 896 + hash: "62727b1025930e19bb03c8f533a12ced" + } + Frame { + msec: 912 + hash: "62727b1025930e19bb03c8f533a12ced" + } + Frame { + msec: 928 + hash: "62727b1025930e19bb03c8f533a12ced" + } + Frame { + msec: 944 + hash: "62727b1025930e19bb03c8f533a12ced" + } + Frame { + msec: 960 + image: "dynamic.0.png" + } + Frame { + msec: 976 + hash: "62727b1025930e19bb03c8f533a12ced" + } + Frame { + msec: 992 + hash: "62727b1025930e19bb03c8f533a12ced" + } + Frame { + msec: 1008 + hash: "62727b1025930e19bb03c8f533a12ced" + } + Frame { + msec: 1024 + hash: "3e52e7d7d428cf1b850cb9c60dbb3c21" + } + Frame { + msec: 1040 + hash: "64f75ab14c979d33d6e0c0d86b76cd35" + } + Frame { + msec: 1056 + hash: "c198a48f4050f176465649d203d6e09a" + } + Frame { + msec: 1072 + hash: "6dd8cee5a585a96e78f2cf7478c4da62" + } + Frame { + msec: 1088 + hash: "09edfbce2ea4b8a547f769ce709dcb6b" + } + Frame { + msec: 1104 + hash: "e93d01aa6e4f5d3fc82cf5a008e3ea17" + } + Frame { + msec: 1120 + hash: "0e2e7b5eec0e62853972b0139b8c17c6" + } + Frame { + msec: 1136 + hash: "26d4f54628ce20f5665bdc6ddc7f3b6a" + } + Frame { + msec: 1152 + hash: "59836aa6eff85b0152be352b97076d89" + } + Frame { + msec: 1168 + hash: "47cc9894096731a52ca342ab04df9aad" + } + Frame { + msec: 1184 + hash: "ec95dd3b34a0f17f6fb9b5bedab73653" + } + Frame { + msec: 1200 + hash: "e32c2b70882828b5082ca3ec889a0dde" + } + Frame { + msec: 1216 + hash: "68d3f8e9c9d5388a6f8360368c8f4d2f" + } + Frame { + msec: 1232 + hash: "17378b2bd8bde7f357fa5463f457c7b2" + } + Frame { + msec: 1248 + hash: "03db786cd54ec34ce8db15953a5fc847" + } + Frame { + msec: 1264 + hash: "9e22a82a622ed0287c44cc629059d5bd" + } + Frame { + msec: 1280 + hash: "42955cd23747f7c37d0f0229c0955e90" + } + Frame { + msec: 1296 + hash: "42955cd23747f7c37d0f0229c0955e90" + } + Frame { + msec: 1312 + hash: "42955cd23747f7c37d0f0229c0955e90" + } + Frame { + msec: 1328 + hash: "42955cd23747f7c37d0f0229c0955e90" + } + Frame { + msec: 1344 + hash: "42955cd23747f7c37d0f0229c0955e90" + } + Frame { + msec: 1360 + hash: "42955cd23747f7c37d0f0229c0955e90" + } + Frame { + msec: 1376 + hash: "42955cd23747f7c37d0f0229c0955e90" + } + Frame { + msec: 1392 + hash: "42955cd23747f7c37d0f0229c0955e90" + } + Frame { + msec: 1408 + hash: "42955cd23747f7c37d0f0229c0955e90" + } + Frame { + msec: 1424 + hash: "42955cd23747f7c37d0f0229c0955e90" + } + Frame { + msec: 1440 + hash: "42955cd23747f7c37d0f0229c0955e90" + } + Frame { + msec: 1456 + hash: "42955cd23747f7c37d0f0229c0955e90" + } + Frame { + msec: 1472 + hash: "42955cd23747f7c37d0f0229c0955e90" + } + Frame { + msec: 1488 + hash: "42955cd23747f7c37d0f0229c0955e90" + } + Frame { + msec: 1504 + hash: "42955cd23747f7c37d0f0229c0955e90" + } + Frame { + msec: 1520 + hash: "981fb1ee75e307b548a32df08a86f4cd" + } + Frame { + msec: 1536 + hash: "f77568307e93d8cd9f0ae417cc19d6e3" + } + Frame { + msec: 1552 + hash: "3bdd4468e26aceee0dad6b3b97b1c1ea" + } + Frame { + msec: 1568 + hash: "252c9ebc2c32755b2289ee1b03877fe3" + } + Frame { + msec: 1584 + hash: "64169b7eb7b7ae8573556c5f80230965" + } + Frame { + msec: 1600 + hash: "4965dfa709a9ac7d8f7dfb4bf8303c65" + } + Frame { + msec: 1616 + hash: "8c53cf92510154087341ac65a93aae5a" + } + Frame { + msec: 1632 + hash: "4dd7502e3e238743d2f3cf038270491e" + } + Frame { + msec: 1648 + hash: "cd9a58316837eb92f4ac92dbd86bdba3" + } + Frame { + msec: 1664 + hash: "5de043e3ac8696b59293a2fa60ed7e65" + } + Frame { + msec: 1680 + hash: "1bf42a6f6be5a3468d2f47cccfac761e" + } + Frame { + msec: 1696 + hash: "ca05510c1ad25e5d3b002603f4379a09" + } + Frame { + msec: 1712 + hash: "f6904a918a6475f1965d74372e52a4b1" + } + Frame { + msec: 1728 + hash: "9e2312ddfc1648b615288107a06c9f9c" + } + Frame { + msec: 1744 + hash: "95c470273b1cb08d4d602efcce339554" + } + Frame { + msec: 1760 + hash: "dade96f707d4a21885480e13b258b7e9" + } + Frame { + msec: 1776 + hash: "0bfbd46f1d4cf562253fb383776cb601" + } + Frame { + msec: 1792 + hash: "0bfbd46f1d4cf562253fb383776cb601" + } + Frame { + msec: 1808 + hash: "0bfbd46f1d4cf562253fb383776cb601" + } + Frame { + msec: 1824 + hash: "0bfbd46f1d4cf562253fb383776cb601" + } + Frame { + msec: 1840 + hash: "0bfbd46f1d4cf562253fb383776cb601" + } + Frame { + msec: 1856 + hash: "0bfbd46f1d4cf562253fb383776cb601" + } + Frame { + msec: 1872 + hash: "0bfbd46f1d4cf562253fb383776cb601" + } + Frame { + msec: 1888 + hash: "0bfbd46f1d4cf562253fb383776cb601" + } + Frame { + msec: 1904 + hash: "0bfbd46f1d4cf562253fb383776cb601" + } + Frame { + msec: 1920 + image: "dynamic.1.png" + } + Frame { + msec: 1936 + hash: "0bfbd46f1d4cf562253fb383776cb601" + } + Frame { + msec: 1952 + hash: "0bfbd46f1d4cf562253fb383776cb601" + } + Frame { + msec: 1968 + hash: "0bfbd46f1d4cf562253fb383776cb601" + } + Frame { + msec: 1984 + hash: "0bfbd46f1d4cf562253fb383776cb601" + } + Frame { + msec: 2000 + hash: "0bfbd46f1d4cf562253fb383776cb601" + } + Frame { + msec: 2016 + hash: "6fc83e8d4ac99b34062c122a8f7f1850" + } + Frame { + msec: 2032 + hash: "6fc83e8d4ac99b34062c122a8f7f1850" + } + Frame { + msec: 2048 + hash: "6fc83e8d4ac99b34062c122a8f7f1850" + } + Frame { + msec: 2064 + hash: "6fc83e8d4ac99b34062c122a8f7f1850" + } + Frame { + msec: 2080 + hash: "6fc83e8d4ac99b34062c122a8f7f1850" + } + Frame { + msec: 2096 + hash: "6fc83e8d4ac99b34062c122a8f7f1850" + } + Frame { + msec: 2112 + hash: "6fc83e8d4ac99b34062c122a8f7f1850" + } + Frame { + msec: 2128 + hash: "6fc83e8d4ac99b34062c122a8f7f1850" + } + Frame { + msec: 2144 + hash: "6fc83e8d4ac99b34062c122a8f7f1850" + } + Frame { + msec: 2160 + hash: "6fc83e8d4ac99b34062c122a8f7f1850" + } + Frame { + msec: 2176 + hash: "6fc83e8d4ac99b34062c122a8f7f1850" + } + Frame { + msec: 2192 + hash: "6fc83e8d4ac99b34062c122a8f7f1850" + } + Frame { + msec: 2208 + hash: "6fc83e8d4ac99b34062c122a8f7f1850" + } + Frame { + msec: 2224 + hash: "6fc83e8d4ac99b34062c122a8f7f1850" + } + Frame { + msec: 2240 + hash: "6fc83e8d4ac99b34062c122a8f7f1850" + } + Frame { + msec: 2256 + hash: "6fc83e8d4ac99b34062c122a8f7f1850" + } + Frame { + msec: 2272 + hash: "6fc83e8d4ac99b34062c122a8f7f1850" + } + Frame { + msec: 2288 + hash: "6fc83e8d4ac99b34062c122a8f7f1850" + } + Frame { + msec: 2304 + hash: "6fc83e8d4ac99b34062c122a8f7f1850" + } + Frame { + msec: 2320 + hash: "6fc83e8d4ac99b34062c122a8f7f1850" + } + Frame { + msec: 2336 + hash: "6fc83e8d4ac99b34062c122a8f7f1850" + } + Frame { + msec: 2352 + hash: "6fc83e8d4ac99b34062c122a8f7f1850" + } + Frame { + msec: 2368 + hash: "6fc83e8d4ac99b34062c122a8f7f1850" + } + Frame { + msec: 2384 + hash: "6fc83e8d4ac99b34062c122a8f7f1850" + } + Frame { + msec: 2400 + hash: "6fc83e8d4ac99b34062c122a8f7f1850" + } + Frame { + msec: 2416 + hash: "6fc83e8d4ac99b34062c122a8f7f1850" + } + Frame { + msec: 2432 + hash: "6fc83e8d4ac99b34062c122a8f7f1850" + } + Frame { + msec: 2448 + hash: "6fc83e8d4ac99b34062c122a8f7f1850" + } + Frame { + msec: 2464 + hash: "6fc83e8d4ac99b34062c122a8f7f1850" + } + Frame { + msec: 2480 + hash: "6fc83e8d4ac99b34062c122a8f7f1850" + } + Frame { + msec: 2496 + hash: "6fc83e8d4ac99b34062c122a8f7f1850" + } + Frame { + msec: 2512 + hash: "6fc83e8d4ac99b34062c122a8f7f1850" + } + Frame { + msec: 2528 + hash: "fabf4e535bc4cc17497939d2eeae4a2d" + } + Frame { + msec: 2544 + hash: "a7981035f46869f5ae824d0c58b263b2" + } + Frame { + msec: 2560 + hash: "86d8e369bdceb499b244f84ed9e80ba3" + } + Frame { + msec: 2576 + hash: "e28a7dc7ea8690da75670b5a6e93a26b" + } + Frame { + msec: 2592 + hash: "bf4e815360a67bd80732bd8812269b21" + } + Frame { + msec: 2608 + hash: "a6f8c56cb93da8acc0c90e35596a60d4" + } + Frame { + msec: 2624 + hash: "1e60656f0758605169e51b57bd03af36" + } + Frame { + msec: 2640 + hash: "c069b26b9fae47e0104070d702ba9562" + } + Frame { + msec: 2656 + hash: "457eb2ca1adff6cbb158afa140b2f20b" + } + Frame { + msec: 2672 + hash: "4e5e750b0d94b6777aebff85d38225d9" + } + Frame { + msec: 2688 + hash: "96d9840c2354a8786a8470309be97544" + } + Frame { + msec: 2704 + hash: "ac7570cc7eeff1acd8c47f2d9328f8be" + } + Frame { + msec: 2720 + hash: "887f937bb263c54f29659f27f2b7a3e3" + } + Frame { + msec: 2736 + hash: "616371183c82b97f69a4c6e2367b8066" + } + Frame { + msec: 2752 + hash: "36de8ffa9abe850fb681b37aea45ef8b" + } + Frame { + msec: 2768 + hash: "0505101f0edaaf7ff17deeaaddc6bbf9" + } + Frame { + msec: 2784 + hash: "e8c53dd8343d7d4c384c2f8507ff0631" + } + Frame { + msec: 2800 + hash: "e8c53dd8343d7d4c384c2f8507ff0631" + } + Frame { + msec: 2816 + hash: "e8c53dd8343d7d4c384c2f8507ff0631" + } + Frame { + msec: 2832 + hash: "e8c53dd8343d7d4c384c2f8507ff0631" + } + Frame { + msec: 2848 + hash: "e8c53dd8343d7d4c384c2f8507ff0631" + } + Frame { + msec: 2864 + hash: "e8c53dd8343d7d4c384c2f8507ff0631" + } + Frame { + msec: 2880 + image: "dynamic.2.png" + } + Frame { + msec: 2896 + hash: "e8c53dd8343d7d4c384c2f8507ff0631" + } + Frame { + msec: 2912 + hash: "e8c53dd8343d7d4c384c2f8507ff0631" + } + Frame { + msec: 2928 + hash: "e8c53dd8343d7d4c384c2f8507ff0631" + } + Frame { + msec: 2944 + hash: "e8c53dd8343d7d4c384c2f8507ff0631" + } + Frame { + msec: 2960 + hash: "e8c53dd8343d7d4c384c2f8507ff0631" + } + Frame { + msec: 2976 + hash: "e8c53dd8343d7d4c384c2f8507ff0631" + } + Frame { + msec: 2992 + hash: "e8c53dd8343d7d4c384c2f8507ff0631" + } + Frame { + msec: 3008 + hash: "e8c53dd8343d7d4c384c2f8507ff0631" + } + Frame { + msec: 3024 + hash: "99e4d853d64a381e8db27707b5ff2b25" + } + Frame { + msec: 3040 + hash: "ab0e62aeffc0d57a5e1d63e6cf49b809" + } + Frame { + msec: 3056 + hash: "4ab11bbf1fb6adb0eec8895f78a24a41" + } + Frame { + msec: 3072 + hash: "634ff2ceb39a3f263a3362238a4ae252" + } + Frame { + msec: 3088 + hash: "7f4856873dc23a02297b2497101de9b9" + } + Frame { + msec: 3104 + hash: "bca3919e9d8e6dc5badd8090401dc934" + } + Frame { + msec: 3120 + hash: "824bfe40c3657cfe1368563640e4cfce" + } + Frame { + msec: 3136 + hash: "f831c1600f68bda139697c406ca70c5e" + } + Frame { + msec: 3152 + hash: "f8102ca251a9ff46a8fe5a24cff0d2d6" + } + Frame { + msec: 3168 + hash: "f33407ad684aa16efc6615d1cf6fa4b9" + } + Frame { + msec: 3184 + hash: "a73d27f776a6ebfc90309b34421700e5" + } + Frame { + msec: 3200 + hash: "ff2a4e2663fc50dfec35152f0e79f935" + } + Frame { + msec: 3216 + hash: "4935f5f58f2672e9d240625151044bda" + } + Frame { + msec: 3232 + hash: "f3ad5c203f621fe4d5d321c3c1880743" + } + Frame { + msec: 3248 + hash: "d4fb7cd2e1f6a533dae65ddbb50da8ac" + } + Frame { + msec: 3264 + hash: "91705e9234c4f02d0a730f6270f9e95f" + } + Frame { + msec: 3280 + hash: "41e177bec783497b996d6d5f6dac1a15" + } + Frame { + msec: 3296 + hash: "41e177bec783497b996d6d5f6dac1a15" + } + Frame { + msec: 3312 + hash: "41e177bec783497b996d6d5f6dac1a15" + } + Frame { + msec: 3328 + hash: "41e177bec783497b996d6d5f6dac1a15" + } + Frame { + msec: 3344 + hash: "41e177bec783497b996d6d5f6dac1a15" + } + Frame { + msec: 3360 + hash: "41e177bec783497b996d6d5f6dac1a15" + } + Frame { + msec: 3376 + hash: "41e177bec783497b996d6d5f6dac1a15" + } + Frame { + msec: 3392 + hash: "41e177bec783497b996d6d5f6dac1a15" + } + Frame { + msec: 3408 + hash: "41e177bec783497b996d6d5f6dac1a15" + } + Frame { + msec: 3424 + hash: "41e177bec783497b996d6d5f6dac1a15" + } + Frame { + msec: 3440 + hash: "41e177bec783497b996d6d5f6dac1a15" + } + Frame { + msec: 3456 + hash: "41e177bec783497b996d6d5f6dac1a15" + } + Frame { + msec: 3472 + hash: "41e177bec783497b996d6d5f6dac1a15" + } + Frame { + msec: 3488 + hash: "41e177bec783497b996d6d5f6dac1a15" + } + Frame { + msec: 3504 + hash: "41e177bec783497b996d6d5f6dac1a15" + } + Frame { + msec: 3520 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 3536 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 3552 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 3568 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 3584 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 3600 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 3616 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 3632 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 3648 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 3664 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 3680 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 3696 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 3712 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 3728 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 3744 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 3760 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 3776 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 3792 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 3808 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 3824 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 3840 + image: "dynamic.3.png" + } + Frame { + msec: 3856 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 3872 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 3888 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 3904 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 3920 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 3936 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 3952 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 3968 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 3984 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 4000 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 4016 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 4032 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 4048 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 4064 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 4080 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 4096 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 4112 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 4128 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 4144 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 4160 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 4176 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 4192 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 4208 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 4224 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 4240 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 4256 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 4272 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 4288 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 4304 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 4320 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 4336 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 4352 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 4368 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 4384 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 4400 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 4416 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 4432 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 4448 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 4464 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 4480 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 4496 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 4512 + hash: "496dc6261695bcf04a8e574146544e98" + } + Frame { + msec: 4528 + hash: "9681be99003f8a14cc5654d06d2c8255" + } + Frame { + msec: 4544 + hash: "bcb592a2335aa2e35956881fd028f4e6" + } + Frame { + msec: 4560 + hash: "f914b25fdcb02a02b71220d82b7b2a75" + } + Frame { + msec: 4576 + hash: "63c82c08eb7f2bd50b54b94c952df3f2" + } + Frame { + msec: 4592 + hash: "8a8dc82be81fa55605c6c2e749895120" + } + Frame { + msec: 4608 + hash: "271f8d79b8052dfcd840ffa9ba9ffeec" + } + Frame { + msec: 4624 + hash: "8f77bbd0585b57e69ac1919bd81ee3b1" + } + Frame { + msec: 4640 + hash: "b974260a2f90e141ebc33ced98fbca88" + } + Frame { + msec: 4656 + hash: "77ada180f8a45652a6fa636d7ece4d9d" + } + Frame { + msec: 4672 + hash: "4c8dc2e33cd989cb3b0938c6c75b5f95" + } + Frame { + msec: 4688 + hash: "a145954989508b925a444e14f0c27a20" + } + Frame { + msec: 4704 + hash: "8d27ff203819174747ae4a5cee8d0ae8" + } + Frame { + msec: 4720 + hash: "830f34b0dab780c6efe2294872ba8508" + } + Frame { + msec: 4736 + hash: "5d70a4bbd815569cfe5735b596bad080" + } + Frame { + msec: 4752 + hash: "964527bb82ea006e03b030c787a8597c" + } + Frame { + msec: 4768 + hash: "1ad54954b818fa9e6032ac4b6114e7db" + } + Frame { + msec: 4784 + hash: "47865243cc252aef67774001af70c54c" + } + Frame { + msec: 4800 + image: "dynamic.4.png" + } + Frame { + msec: 4816 + hash: "47865243cc252aef67774001af70c54c" + } + Frame { + msec: 4832 + hash: "47865243cc252aef67774001af70c54c" + } + Frame { + msec: 4848 + hash: "47865243cc252aef67774001af70c54c" + } + Frame { + msec: 4864 + hash: "47865243cc252aef67774001af70c54c" + } + Frame { + msec: 4880 + hash: "47865243cc252aef67774001af70c54c" + } + Frame { + msec: 4896 + hash: "47865243cc252aef67774001af70c54c" + } + Frame { + msec: 4912 + hash: "47865243cc252aef67774001af70c54c" + } + Frame { + msec: 4928 + hash: "47865243cc252aef67774001af70c54c" + } + Frame { + msec: 4944 + hash: "47865243cc252aef67774001af70c54c" + } + Frame { + msec: 4960 + hash: "47865243cc252aef67774001af70c54c" + } + Frame { + msec: 4976 + hash: "47865243cc252aef67774001af70c54c" + } + Frame { + msec: 4992 + hash: "47865243cc252aef67774001af70c54c" + } + Frame { + msec: 5008 + hash: "47865243cc252aef67774001af70c54c" + } + Frame { + msec: 5024 + hash: "47865243cc252aef67774001af70c54c" + } + Frame { + msec: 5040 + hash: "baeb8adffc13e230e797e0437f2ad5fa" + } + Frame { + msec: 5056 + hash: "d2e440fcad0ee2b7b35d7e5c4e581f73" + } + Frame { + msec: 5072 + hash: "fb8acb2f69234d3ee089281d0297ad7c" + } + Frame { + msec: 5088 + hash: "7fda29a83dc535ed8d6b35e999400311" + } + Frame { + msec: 5104 + hash: "6482e3eb10cfdbdeb57dd38ba3e3d67e" + } + Frame { + msec: 5120 + hash: "4d222549bc2565c1598a532460aae4e6" + } + Frame { + msec: 5136 + hash: "776d1b0f9945c0e1ceda0cf117264919" + } + Frame { + msec: 5152 + hash: "f2c362b34a0982ee1a11dea6b063945e" + } + Frame { + msec: 5168 + hash: "115f02b8893972b5b1d63525ce70762e" + } + Frame { + msec: 5184 + hash: "7f2d53581fe2c6c45a628fa4cd9b5742" + } + Frame { + msec: 5200 + hash: "b5ed1120c4edf842b15d5144adbd93b0" + } + Frame { + msec: 5216 + hash: "3511938df57c4cdce316692de204b057" + } + Frame { + msec: 5232 + hash: "99583918d068ab5d132fe7a699c2a7a6" + } + Frame { + msec: 5248 + hash: "c0ce9df18479dbb57fb1dbc777f4f0e5" + } + Frame { + msec: 5264 + hash: "b24db7b5c406328380fcf9927fb26c5c" + } + Frame { + msec: 5280 + hash: "b24db7b5c406328380fcf9927fb26c5c" + } + Frame { + msec: 5296 + hash: "b24db7b5c406328380fcf9927fb26c5c" + } + Frame { + msec: 5312 + hash: "b24db7b5c406328380fcf9927fb26c5c" + } + Frame { + msec: 5328 + hash: "b24db7b5c406328380fcf9927fb26c5c" + } + Frame { + msec: 5344 + hash: "b24db7b5c406328380fcf9927fb26c5c" + } + Frame { + msec: 5360 + hash: "b24db7b5c406328380fcf9927fb26c5c" + } + Frame { + msec: 5376 + hash: "b24db7b5c406328380fcf9927fb26c5c" + } + Frame { + msec: 5392 + hash: "b24db7b5c406328380fcf9927fb26c5c" + } + Frame { + msec: 5408 + hash: "b24db7b5c406328380fcf9927fb26c5c" + } + Frame { + msec: 5424 + hash: "b24db7b5c406328380fcf9927fb26c5c" + } + Frame { + msec: 5440 + hash: "b24db7b5c406328380fcf9927fb26c5c" + } + Frame { + msec: 5456 + hash: "b24db7b5c406328380fcf9927fb26c5c" + } + Frame { + msec: 5472 + hash: "b24db7b5c406328380fcf9927fb26c5c" + } + Frame { + msec: 5488 + hash: "b24db7b5c406328380fcf9927fb26c5c" + } + Frame { + msec: 5504 + hash: "b24db7b5c406328380fcf9927fb26c5c" + } + Frame { + msec: 5520 + hash: "b24db7b5c406328380fcf9927fb26c5c" + } + Frame { + msec: 5536 + hash: "98cc64411264d8a635a6afe6b11cee6e" + } + Frame { + msec: 5552 + hash: "b86434b7af8ad1db946c43a2791d69ab" + } + Frame { + msec: 5568 + hash: "f45616f9e33658d1dddb537e842c8768" + } + Frame { + msec: 5584 + hash: "e49d8955e27cdc19a37c331e56c81af1" + } + Frame { + msec: 5600 + hash: "b2dbe764906b50195f65dc11a5842515" + } + Frame { + msec: 5616 + hash: "71ce7c63d65c29cdffd83f5ae07f0b93" + } + Frame { + msec: 5632 + hash: "901d01e1fc777ec185cd023ad0ace4c1" + } + Frame { + msec: 5648 + hash: "a3f31de30fc2e92bae1f735504216216" + } + Frame { + msec: 5664 + hash: "0fc52dd8102506e3e7671fa548551b23" + } + Frame { + msec: 5680 + hash: "fb92809e728416035dbb91116ad8fe0e" + } + Frame { + msec: 5696 + hash: "9003dc8ca4f781909035cb03dc45864f" + } + Frame { + msec: 5712 + hash: "2bff1de793ad8521fd54413849c3cf29" + } + Frame { + msec: 5728 + hash: "8362e4db7c4446282d844a4fc6632d19" + } + Frame { + msec: 5744 + hash: "b874fa274c6ec77c106ff4a0288f9169" + } + Frame { + msec: 5760 + image: "dynamic.5.png" + } + Frame { + msec: 5776 + hash: "e64ac8e11e36cafb25c947c5802d54b9" + } + Frame { + msec: 5792 + hash: "e64ac8e11e36cafb25c947c5802d54b9" + } + Frame { + msec: 5808 + hash: "e64ac8e11e36cafb25c947c5802d54b9" + } + Frame { + msec: 5824 + hash: "e64ac8e11e36cafb25c947c5802d54b9" + } + Frame { + msec: 5840 + hash: "e64ac8e11e36cafb25c947c5802d54b9" + } + Frame { + msec: 5856 + hash: "e64ac8e11e36cafb25c947c5802d54b9" + } + Frame { + msec: 5872 + hash: "e64ac8e11e36cafb25c947c5802d54b9" + } + Frame { + msec: 5888 + hash: "e64ac8e11e36cafb25c947c5802d54b9" + } + Frame { + msec: 5904 + hash: "e64ac8e11e36cafb25c947c5802d54b9" + } + Frame { + msec: 5920 + hash: "e64ac8e11e36cafb25c947c5802d54b9" + } + Frame { + msec: 5936 + hash: "e64ac8e11e36cafb25c947c5802d54b9" + } + Frame { + msec: 5952 + hash: "e64ac8e11e36cafb25c947c5802d54b9" + } + Frame { + msec: 5968 + hash: "e64ac8e11e36cafb25c947c5802d54b9" + } + Frame { + msec: 5984 + hash: "e64ac8e11e36cafb25c947c5802d54b9" + } + Frame { + msec: 6000 + hash: "e64ac8e11e36cafb25c947c5802d54b9" + } + Frame { + msec: 6016 + hash: "e64ac8e11e36cafb25c947c5802d54b9" + } + Frame { + msec: 6032 + hash: "7621e64568058b82bcb6f6b46cee3ebc" + } + Frame { + msec: 6048 + hash: "f77f6de6fc88813f49427b4888a59dbf" + } + Frame { + msec: 6064 + hash: "d3a48f596219372ac25941e4c5ec5b2b" + } + Frame { + msec: 6080 + hash: "d572d932b613f9ca1e0acf144f127dd1" + } + Frame { + msec: 6096 + hash: "edf317eaf51d933bcd0f57f214921a81" + } + Frame { + msec: 6112 + hash: "e0cee7959a5a8a08ad03d75e7b5c6ca1" + } + Frame { + msec: 6128 + hash: "96877a15f44d4a2c8d9974cb28b9e1b6" + } + Frame { + msec: 6144 + hash: "c0ffb0ef6dd9d007d201feebd2f68e44" + } + Frame { + msec: 6160 + hash: "209fb930223243fa19c5dde9e85ec518" + } + Frame { + msec: 6176 + hash: "ae98ac4dba0e78eb8fb7f7dbe29b2832" + } + Frame { + msec: 6192 + hash: "c94a7d68ce007d83df77a595a5815a96" + } + Frame { + msec: 6208 + hash: "4c28e409bf5a6c1289bcab8cd59a9e42" + } + Frame { + msec: 6224 + hash: "ea1009f1a3446dd5ce937e6949794794" + } + Frame { + msec: 6240 + hash: "940c16766c2f87feef48e1187672ca9b" + } + Frame { + msec: 6256 + hash: "93664c87c8dcfadc0345f646b2508625" + } + Frame { + msec: 6272 + hash: "93664c87c8dcfadc0345f646b2508625" + } + Frame { + msec: 6288 + hash: "93664c87c8dcfadc0345f646b2508625" + } + Frame { + msec: 6304 + hash: "93664c87c8dcfadc0345f646b2508625" + } + Frame { + msec: 6320 + hash: "93664c87c8dcfadc0345f646b2508625" + } + Frame { + msec: 6336 + hash: "93664c87c8dcfadc0345f646b2508625" + } + Frame { + msec: 6352 + hash: "93664c87c8dcfadc0345f646b2508625" + } + Frame { + msec: 6368 + hash: "93664c87c8dcfadc0345f646b2508625" + } + Frame { + msec: 6384 + hash: "93664c87c8dcfadc0345f646b2508625" + } +} diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/dynamic.qml b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/dynamic.qml index 8a522a5..b5685d1 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/dynamic.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/dynamic.qml @@ -1,7 +1,7 @@ import QtQuick 1.0 -//Expected to fail until QTBUG-14839 is resolved Item { + property string skip: "Expected to fail until QTBUG-14839 is resolved" width: 120; height: 60; property int step: 0 function tick() diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext.0.png Binary files differnew file mode 100644 index 0000000..6c610ea --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext.0.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext.qml new file mode 100644 index 0000000..fdf2310 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext.qml @@ -0,0 +1,11 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + image: "plaintext.0.png" + } +} diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext.0.png Binary files differnew file mode 100644 index 0000000..c4c56f3 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext.0.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext.qml new file mode 100644 index 0000000..3da391d --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext.qml @@ -0,0 +1,11 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + image: "richtext.0.png" + } +} diff --git a/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp b/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp index 7cd96e2..b52b430 100644 --- a/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp +++ b/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp @@ -143,7 +143,7 @@ void tst_qmlvisual::visual_data() foreach (const QString &file, files) { QString testdata = toTestScript(file); - if (testdata.isEmpty() || !QFile::exists(testdata+".qml")) + if (testdata.isEmpty()) continue; QTest::newRow(file.toLatin1().constData()) << file << testdata; diff --git a/tests/auto/declarative/qmlvisual/webview/autosize/autosize.qml b/tests/auto/declarative/qmlvisual/webview/autosize/autosize.qml index b6280a6..1cd0c7b 100644 --- a/tests/auto/declarative/qmlvisual/webview/autosize/autosize.qml +++ b/tests/auto/declarative/qmlvisual/webview/autosize/autosize.qml @@ -1,9 +1,10 @@ import QtQuick 1.0 -import org.webkit 1.0 +import QtWebKit 1.0 // The WebView size is determined by the width, height, // preferredWidth, and preferredHeight properties. Rectangle { + property string skip: "WebView tests not counting until resources allocated to WebView maintenance" id: rect color: "white" width: 200 diff --git a/tests/auto/declarative/qmlvisual/webview/autosize/data/autosize.qml b/tests/auto/declarative/qmlvisual/webview/autosize/data/autosize.qml new file mode 100644 index 0000000..6122138 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/webview/autosize/data/autosize.qml @@ -0,0 +1,115 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "b2d863e57dee2a297d038e18acc70f92" + } + Frame { + msec: 32 + hash: "903a4c7e619abba5342c8c827f26a722" + } + Frame { + msec: 48 + hash: "903a4c7e619abba5342c8c827f26a722" + } + Frame { + msec: 64 + hash: "903a4c7e619abba5342c8c827f26a722" + } + Frame { + msec: 80 + hash: "903a4c7e619abba5342c8c827f26a722" + } + Frame { + msec: 96 + hash: "903a4c7e619abba5342c8c827f26a722" + } + Frame { + msec: 112 + hash: "903a4c7e619abba5342c8c827f26a722" + } + Frame { + msec: 128 + hash: "903a4c7e619abba5342c8c827f26a722" + } + Frame { + msec: 144 + hash: "903a4c7e619abba5342c8c827f26a722" + } + Frame { + msec: 160 + hash: "903a4c7e619abba5342c8c827f26a722" + } + Frame { + msec: 176 + hash: "903a4c7e619abba5342c8c827f26a722" + } + Frame { + msec: 192 + hash: "903a4c7e619abba5342c8c827f26a722" + } + Frame { + msec: 208 + hash: "903a4c7e619abba5342c8c827f26a722" + } + Frame { + msec: 224 + hash: "903a4c7e619abba5342c8c827f26a722" + } + Frame { + msec: 240 + hash: "903a4c7e619abba5342c8c827f26a722" + } + Frame { + msec: 256 + hash: "903a4c7e619abba5342c8c827f26a722" + } + Frame { + msec: 272 + hash: "903a4c7e619abba5342c8c827f26a722" + } + Frame { + msec: 288 + hash: "903a4c7e619abba5342c8c827f26a722" + } + Frame { + msec: 304 + hash: "903a4c7e619abba5342c8c827f26a722" + } + Frame { + msec: 320 + hash: "903a4c7e619abba5342c8c827f26a722" + } + Frame { + msec: 336 + hash: "903a4c7e619abba5342c8c827f26a722" + } + Frame { + msec: 352 + hash: "903a4c7e619abba5342c8c827f26a722" + } + Frame { + msec: 368 + hash: "903a4c7e619abba5342c8c827f26a722" + } + Frame { + msec: 384 + hash: "903a4c7e619abba5342c8c827f26a722" + } + Frame { + msec: 400 + hash: "903a4c7e619abba5342c8c827f26a722" + } + Frame { + msec: 416 + hash: "903a4c7e619abba5342c8c827f26a722" + } + Frame { + msec: 432 + hash: "903a4c7e619abba5342c8c827f26a722" + } +} diff --git a/tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.qml b/tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.qml new file mode 100644 index 0000000..bfe40da --- /dev/null +++ b/tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.qml @@ -0,0 +1,3759 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 32 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 48 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 64 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 80 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 96 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 112 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 128 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 144 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 160 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 176 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 192 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 208 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 224 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 240 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 256 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 272 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 288 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 304 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 320 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 336 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 352 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 368 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 384 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 400 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 416 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 195; y: 25 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 187; y: 35 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 432 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 153; y: 77 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 448 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 145; y: 87 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 139; y: 99 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 464 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 135; y: 111 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 129; y: 121 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 480 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 125; y: 131 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 121; y: 139 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 117; y: 149 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 496 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 111; y: 157 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 512 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 107; y: 165 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 101; y: 171 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 528 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 97; y: 177 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 95; y: 185 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 544 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 91; y: 189 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 89; y: 195 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 560 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 85; y: 199 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 84; y: 201 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 576 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 83; y: 203 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 82; y: 204 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 81; y: 204 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 592 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 80; y: 204 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 608 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 79; y: 205 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 78; y: 206 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 624 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 77; y: 207 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 76; y: 208 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 75; y: 210 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 640 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 71; y: 216 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 656 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 70; y: 218 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 70; y: 220 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 672 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 69; y: 222 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 68; y: 224 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 688 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 67; y: 225 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 704 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 720 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 736 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 752 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 768 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 784 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 67; y: 225 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 800 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 66; y: 224 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 816 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 66; y: 222 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 832 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 65; y: 221 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 61; y: 217 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 848 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 60; y: 215 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 864 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 59; y: 214 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 57; y: 213 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 880 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 55; y: 213 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 896 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 912 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 928 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 944 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 960 + image: "evaluateJavaScript.0.png" + } + Frame { + msec: 976 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 992 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1008 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 55; y: 213 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1024 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1040 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1056 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1072 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1088 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 55; y: 213 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1104 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1120 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1136 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1152 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1168 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1184 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1200 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1216 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1232 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1248 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1264 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1280 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1296 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 57; y: 212 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 63; y: 210 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1312 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 65; y: 210 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 67; y: 209 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1328 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 69; y: 208 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 71; y: 207 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1344 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 73; y: 207 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 74; y: 206 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 75; y: 206 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1360 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1376 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1392 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1408 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1424 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1440 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1456 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1472 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1488 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1504 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1520 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1536 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1552 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1568 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1584 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1600 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1616 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1632 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1648 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1664 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1680 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Frame { + msec: 1696 + hash: "f35c69aed43a795ff02b46d7b01ef64a" + } + Key { + type: 6 + key: 83 + modifiers: 0 + text: "73" + autorep: false + count: 1 + } + Frame { + msec: 1712 + hash: "244200622435603a75f58366496daf8b" + } + Frame { + msec: 1728 + hash: "244200622435603a75f58366496daf8b" + } + Frame { + msec: 1744 + hash: "244200622435603a75f58366496daf8b" + } + Frame { + msec: 1760 + hash: "244200622435603a75f58366496daf8b" + } + Frame { + msec: 1776 + hash: "244200622435603a75f58366496daf8b" + } + Key { + type: 7 + key: 83 + modifiers: 0 + text: "73" + autorep: false + count: 1 + } + Frame { + msec: 1792 + hash: "244200622435603a75f58366496daf8b" + } + Frame { + msec: 1808 + hash: "244200622435603a75f58366496daf8b" + } + Frame { + msec: 1824 + hash: "244200622435603a75f58366496daf8b" + } + Frame { + msec: 1840 + hash: "244200622435603a75f58366496daf8b" + } + Frame { + msec: 1856 + hash: "244200622435603a75f58366496daf8b" + } + Frame { + msec: 1872 + hash: "244200622435603a75f58366496daf8b" + } + Frame { + msec: 1888 + hash: "244200622435603a75f58366496daf8b" + } + Frame { + msec: 1904 + hash: "244200622435603a75f58366496daf8b" + } + Frame { + msec: 1920 + image: "evaluateJavaScript.1.png" + } + Frame { + msec: 1936 + hash: "244200622435603a75f58366496daf8b" + } + Frame { + msec: 1952 + hash: "244200622435603a75f58366496daf8b" + } + Frame { + msec: 1968 + hash: "244200622435603a75f58366496daf8b" + } + Key { + type: 6 + key: 83 + modifiers: 0 + text: "73" + autorep: false + count: 1 + } + Frame { + msec: 1984 + hash: "44dc10a2914a391b57e68c2002a95adf" + } + Frame { + msec: 2000 + hash: "44dc10a2914a391b57e68c2002a95adf" + } + Frame { + msec: 2016 + hash: "44dc10a2914a391b57e68c2002a95adf" + } + Frame { + msec: 2032 + hash: "44dc10a2914a391b57e68c2002a95adf" + } + Frame { + msec: 2048 + hash: "44dc10a2914a391b57e68c2002a95adf" + } + Key { + type: 7 + key: 83 + modifiers: 0 + text: "73" + autorep: false + count: 1 + } + Frame { + msec: 2064 + hash: "44dc10a2914a391b57e68c2002a95adf" + } + Frame { + msec: 2080 + hash: "44dc10a2914a391b57e68c2002a95adf" + } + Frame { + msec: 2096 + hash: "44dc10a2914a391b57e68c2002a95adf" + } + Frame { + msec: 2112 + hash: "44dc10a2914a391b57e68c2002a95adf" + } + Frame { + msec: 2128 + hash: "44dc10a2914a391b57e68c2002a95adf" + } + Frame { + msec: 2144 + hash: "44dc10a2914a391b57e68c2002a95adf" + } + Frame { + msec: 2160 + hash: "44dc10a2914a391b57e68c2002a95adf" + } + Frame { + msec: 2176 + hash: "44dc10a2914a391b57e68c2002a95adf" + } + Frame { + msec: 2192 + hash: "44dc10a2914a391b57e68c2002a95adf" + } + Key { + type: 6 + key: 83 + modifiers: 0 + text: "73" + autorep: false + count: 1 + } + Frame { + msec: 2208 + hash: "c93921d0611e95373338c14cfcc17481" + } + Frame { + msec: 2224 + hash: "c93921d0611e95373338c14cfcc17481" + } + Frame { + msec: 2240 + hash: "c93921d0611e95373338c14cfcc17481" + } + Frame { + msec: 2256 + hash: "c93921d0611e95373338c14cfcc17481" + } + Key { + type: 7 + key: 83 + modifiers: 0 + text: "73" + autorep: false + count: 1 + } + Frame { + msec: 2272 + hash: "c93921d0611e95373338c14cfcc17481" + } + Frame { + msec: 2288 + hash: "c93921d0611e95373338c14cfcc17481" + } + Frame { + msec: 2304 + hash: "c93921d0611e95373338c14cfcc17481" + } + Frame { + msec: 2320 + hash: "c93921d0611e95373338c14cfcc17481" + } + Frame { + msec: 2336 + hash: "c93921d0611e95373338c14cfcc17481" + } + Frame { + msec: 2352 + hash: "c93921d0611e95373338c14cfcc17481" + } + Frame { + msec: 2368 + hash: "c93921d0611e95373338c14cfcc17481" + } + Frame { + msec: 2384 + hash: "c93921d0611e95373338c14cfcc17481" + } + Frame { + msec: 2400 + hash: "c93921d0611e95373338c14cfcc17481" + } + Frame { + msec: 2416 + hash: "c93921d0611e95373338c14cfcc17481" + } + Key { + type: 6 + key: 83 + modifiers: 0 + text: "73" + autorep: false + count: 1 + } + Frame { + msec: 2432 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 2448 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 2464 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 2480 + hash: "9266775c7f2156977ff56fcd45246229" + } + Key { + type: 7 + key: 83 + modifiers: 0 + text: "73" + autorep: false + count: 1 + } + Frame { + msec: 2496 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 2512 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 2528 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 2544 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 2560 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 2576 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 2592 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 2608 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 2624 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 2640 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 2656 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 2672 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 2688 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 2704 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 2720 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 2736 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 2752 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 2768 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 2784 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 2800 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 2816 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 2832 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 2848 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 2864 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 2880 + image: "evaluateJavaScript.2.png" + } + Frame { + msec: 2896 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 2912 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 2928 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 2944 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 2960 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 2976 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 2992 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 3008 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 3024 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 3040 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 3056 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 3072 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 3088 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 3104 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 3120 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 3136 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 3152 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 3168 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 3184 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 3200 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 3216 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 3232 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 3248 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 3264 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 3280 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 3296 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 3312 + hash: "9266775c7f2156977ff56fcd45246229" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 74; y: 206 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3328 + hash: "9266775c7f2156977ff56fcd45246229" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 72; y: 206 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3344 + hash: "9266775c7f2156977ff56fcd45246229" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 70; y: 206 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 68; y: 206 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 65; y: 206 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3360 + hash: "9266775c7f2156977ff56fcd45246229" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 63; y: 206 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3376 + hash: "9266775c7f2156977ff56fcd45246229" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 61; y: 206 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 59; y: 206 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3392 + hash: "9266775c7f2156977ff56fcd45246229" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 57; y: 206 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 55; y: 206 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3408 + hash: "9266775c7f2156977ff56fcd45246229" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 54; y: 206 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 53; y: 206 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3424 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 3440 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 3456 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 3472 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 3488 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 3504 + hash: "9266775c7f2156977ff56fcd45246229" + } + Frame { + msec: 3520 + hash: "9266775c7f2156977ff56fcd45246229" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 52; y: 206 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 52; y: 206 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3536 + hash: "b62d9027299daa6ab8304d812ed00f83" + } + Frame { + msec: 3552 + hash: "b62d9027299daa6ab8304d812ed00f83" + } + Frame { + msec: 3568 + hash: "b62d9027299daa6ab8304d812ed00f83" + } + Frame { + msec: 3584 + hash: "b62d9027299daa6ab8304d812ed00f83" + } + Frame { + msec: 3600 + hash: "b62d9027299daa6ab8304d812ed00f83" + } + Frame { + msec: 3616 + hash: "b62d9027299daa6ab8304d812ed00f83" + } + Frame { + msec: 3632 + hash: "b62d9027299daa6ab8304d812ed00f83" + } + Frame { + msec: 3648 + hash: "b62d9027299daa6ab8304d812ed00f83" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 52; y: 206 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3664 + hash: "b62d9027299daa6ab8304d812ed00f83" + } + Frame { + msec: 3680 + hash: "b62d9027299daa6ab8304d812ed00f83" + } + Frame { + msec: 3696 + hash: "b62d9027299daa6ab8304d812ed00f83" + } + Frame { + msec: 3712 + hash: "b62d9027299daa6ab8304d812ed00f83" + } + Frame { + msec: 3728 + hash: "b62d9027299daa6ab8304d812ed00f83" + } + Frame { + msec: 3744 + hash: "b62d9027299daa6ab8304d812ed00f83" + } + Frame { + msec: 3760 + hash: "b62d9027299daa6ab8304d812ed00f83" + } + Frame { + msec: 3776 + hash: "b62d9027299daa6ab8304d812ed00f83" + } + Frame { + msec: 3792 + hash: "b62d9027299daa6ab8304d812ed00f83" + } + Frame { + msec: 3808 + hash: "b62d9027299daa6ab8304d812ed00f83" + } + Frame { + msec: 3824 + hash: "b62d9027299daa6ab8304d812ed00f83" + } + Frame { + msec: 3840 + image: "evaluateJavaScript.3.png" + } + Frame { + msec: 3856 + hash: "b62d9027299daa6ab8304d812ed00f83" + } + Frame { + msec: 3872 + hash: "b62d9027299daa6ab8304d812ed00f83" + } + Frame { + msec: 3888 + hash: "b62d9027299daa6ab8304d812ed00f83" + } + Frame { + msec: 3904 + hash: "b62d9027299daa6ab8304d812ed00f83" + } + Frame { + msec: 3920 + hash: "b62d9027299daa6ab8304d812ed00f83" + } + Frame { + msec: 3936 + hash: "b62d9027299daa6ab8304d812ed00f83" + } + Frame { + msec: 3952 + hash: "b62d9027299daa6ab8304d812ed00f83" + } + Frame { + msec: 3968 + hash: "b62d9027299daa6ab8304d812ed00f83" + } + Frame { + msec: 3984 + hash: "b62d9027299daa6ab8304d812ed00f83" + } + Key { + type: 6 + key: 65 + modifiers: 0 + text: "61" + autorep: false + count: 1 + } + Frame { + msec: 4000 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4016 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4032 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4048 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4064 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4080 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4096 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4112 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Key { + type: 7 + key: 65 + modifiers: 0 + text: "61" + autorep: false + count: 1 + } + Frame { + msec: 4128 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4144 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4160 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4176 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4192 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4208 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4224 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4240 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4256 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4272 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4288 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4304 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4320 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4336 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4352 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4368 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4384 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4400 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4416 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4432 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4448 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4464 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4480 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4496 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4512 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4528 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4544 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4560 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4576 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4592 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4608 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4624 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4640 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4656 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4672 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4688 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4704 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4720 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4736 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4752 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4768 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Frame { + msec: 4784 + hash: "6cea5b700e402072a9953c81b605ef22" + } + Key { + type: 6 + key: 65 + modifiers: 0 + text: "61" + autorep: false + count: 1 + } + Frame { + msec: 4800 + image: "evaluateJavaScript.4.png" + } + Frame { + msec: 4816 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 4832 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 4848 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 4864 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 4880 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 4896 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 4912 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 4928 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Key { + type: 7 + key: 65 + modifiers: 0 + text: "61" + autorep: false + count: 1 + } + Frame { + msec: 4944 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 4960 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 4976 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 4992 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5008 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5024 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5040 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5056 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5072 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5088 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5104 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5120 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5136 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5152 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5168 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5184 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5200 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5216 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5232 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5248 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5264 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5280 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5296 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5312 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5328 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5344 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5360 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5376 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5392 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5408 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5424 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5440 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5456 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5472 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5488 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5504 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5520 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5536 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5552 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5568 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5584 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5600 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5616 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5632 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5648 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5664 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5680 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5696 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5712 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5728 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5744 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5760 + image: "evaluateJavaScript.5.png" + } + Frame { + msec: 5776 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5792 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5808 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 5824 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 54; y: 206 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5840 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 56; y: 206 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 62; y: 204 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 65; y: 204 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5856 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 71; y: 202 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 79; y: 200 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5872 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 82; y: 200 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 90; y: 196 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5888 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 96; y: 192 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 102; y: 188 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5904 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 108; y: 182 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 112; y: 176 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5920 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 116; y: 168 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 120; y: 158 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5936 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 124; y: 148 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 128; y: 136 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5952 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 130; y: 124 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 134; y: 112 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5968 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 138; y: 100 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 142; y: 88 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5984 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 144; y: 78 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6000 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 150; y: 68 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 154; y: 62 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 158; y: 56 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6016 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 162; y: 48 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6032 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 166; y: 44 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 168; y: 38 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 172; y: 32 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6048 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 174; y: 26 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 176; y: 20 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6064 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 177; y: 18 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6080 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 178; y: 16 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 178; y: 14 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6096 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 178; y: 12 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6112 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 178; y: 11 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6128 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 178; y: 10 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6144 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 179; y: 9 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6160 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 180; y: 7 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6176 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 181; y: 5 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 181; y: 4 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6192 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 182; y: 2 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 183; y: 1 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6208 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6224 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6240 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6256 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6272 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6288 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6304 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6320 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6336 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6352 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6368 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6384 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6400 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6416 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6432 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6448 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6464 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6480 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6496 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6512 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6528 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6544 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6560 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6576 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6592 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6608 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6624 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6640 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6656 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6672 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6688 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6704 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6720 + image: "evaluateJavaScript.6.png" + } + Frame { + msec: 6736 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6752 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6768 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6784 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6800 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6816 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6832 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6848 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6864 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 176; y: 1 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 174; y: 15 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 172; y: 31 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6880 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 166; y: 47 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 162; y: 63 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6896 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 156; y: 81 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 150; y: 95 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6912 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 144; y: 107 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 138; y: 119 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6928 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 132; y: 127 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 126; y: 133 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6944 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 122; y: 137 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 120; y: 138 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6960 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 120; y: 139 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6976 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 6992 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 7008 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 7024 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 7040 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 7056 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 7072 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 119; y: 137 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7088 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 7104 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 7120 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 117; y: 137 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7136 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 116; y: 139 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 115; y: 141 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7152 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 113; y: 149 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 109; y: 155 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7168 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 107; y: 165 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 103; y: 171 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7184 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 99; y: 179 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 98; y: 181 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7200 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 96; y: 187 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 95; y: 189 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7216 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 95; y: 190 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7232 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 7248 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 7264 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 7280 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 96; y: 188 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7296 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 96; y: 187 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 96; y: 186 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7312 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 96; y: 185 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 97; y: 184 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7328 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 97; y: 183 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 97; y: 182 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7344 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 98; y: 180 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7360 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 98; y: 178 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7376 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 99; y: 177 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 99; y: 176 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 99; y: 174 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7392 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 7408 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 100; y: 172 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 100; y: 171 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7424 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 100; y: 170 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7440 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 100; y: 169 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7456 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 101; y: 167 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7472 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 7488 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 7504 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 101; y: 167 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7520 + hash: "04e2e16813a9cafc37077a675e279f5f" + } + Frame { + msec: 7536 + hash: "04e2e16813a9cafc37077a675e279f5f" + } + Frame { + msec: 7552 + hash: "04e2e16813a9cafc37077a675e279f5f" + } + Frame { + msec: 7568 + hash: "04e2e16813a9cafc37077a675e279f5f" + } + Frame { + msec: 7584 + hash: "04e2e16813a9cafc37077a675e279f5f" + } + Frame { + msec: 7600 + hash: "04e2e16813a9cafc37077a675e279f5f" + } + Frame { + msec: 7616 + hash: "04e2e16813a9cafc37077a675e279f5f" + } + Frame { + msec: 7632 + hash: "04e2e16813a9cafc37077a675e279f5f" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 101; y: 166 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 101; y: 166 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7648 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 7664 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 7680 + image: "evaluateJavaScript.7.png" + } + Frame { + msec: 7696 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 7712 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 7728 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 7744 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 7760 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 7776 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 7792 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 7808 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 7824 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 103; y: 166 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7840 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 7856 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 105; y: 166 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7872 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 106; y: 165 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 107; y: 164 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7888 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 108; y: 164 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 109; y: 163 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7904 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 111; y: 163 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 112; y: 162 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7920 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 116; y: 158 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7936 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 118; y: 157 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 122; y: 153 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7952 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 128; y: 147 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 134; y: 139 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7968 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 140; y: 133 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 146; y: 125 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 150; y: 117 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7984 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 156; y: 109 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 160; y: 99 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 8000 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 164; y: 89 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 166; y: 77 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 8016 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 170; y: 67 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 172; y: 55 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 8032 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 176; y: 45 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 8048 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 178; y: 35 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 178; y: 27 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 180; y: 19 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 8064 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 180; y: 11 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 182; y: 5 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 8080 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8096 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8112 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8128 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8144 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8160 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8176 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8192 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8208 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8224 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8240 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8256 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8272 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8288 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8304 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8320 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8336 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8352 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8368 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8384 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8400 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8416 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8432 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8448 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8464 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8480 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8496 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8512 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8528 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8544 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8560 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8576 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8592 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8608 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8624 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8640 + image: "evaluateJavaScript.8.png" + } + Frame { + msec: 8656 + hash: "792140067e09d04b31e78be1fc9a40a2" + } + Frame { + msec: 8672 + hash: "792140067e09d04b31e78be1fc9a40a2" + } +} diff --git a/tests/auto/declarative/qmlvisual/webview/javascript/data/windowObjects.qml b/tests/auto/declarative/qmlvisual/webview/javascript/data/windowObjects.qml new file mode 100644 index 0000000..07aa13d --- /dev/null +++ b/tests/auto/declarative/qmlvisual/webview/javascript/data/windowObjects.qml @@ -0,0 +1,2643 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 32 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 48 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 64 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 80 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 96 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 112 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 128 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 144 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 160 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 176 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 192 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 208 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 224 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 240 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 256 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 272 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 288 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 304 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 320 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 336 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 352 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 368 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 384 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 400 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 416 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 432 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 448 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 464 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 480 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 496 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 512 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 528 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 544 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 560 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 576 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 592 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 608 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 624 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 640 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 656 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 672 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 688 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 704 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 720 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 736 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 752 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 768 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 784 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 800 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 816 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 832 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 848 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 864 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 880 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 896 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 912 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 928 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 944 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 960 + image: "windowObjects.0.png" + } + Frame { + msec: 976 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 992 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1008 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1024 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1040 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 155; y: 9 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 145; y: 23 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1056 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 137; y: 37 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 127; y: 53 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1072 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 119; y: 67 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 111; y: 77 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1088 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 103; y: 87 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1104 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 97; y: 93 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 91; y: 101 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 87; y: 109 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1120 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 83; y: 117 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 81; y: 125 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1136 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 81; y: 133 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 79; y: 139 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1152 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 79; y: 142 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 79; y: 145 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1168 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 78; y: 146 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 78; y: 147 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1184 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1200 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1216 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1232 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1248 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 82; y: 143 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1264 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1280 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 83; y: 142 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 83; y: 141 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 84; y: 139 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1296 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 85; y: 138 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1312 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1328 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1344 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 86; y: 137 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 87; y: 137 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1360 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 88; y: 137 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1376 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 89; y: 138 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 89; y: 139 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1392 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 90; y: 141 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 90; y: 142 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1408 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 91; y: 144 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1424 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 91; y: 146 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 91; y: 148 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 91; y: 149 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1440 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 91; y: 151 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 91; y: 153 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1456 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 90; y: 154 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 90; y: 155 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1472 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 89; y: 156 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1488 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1504 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1520 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1536 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1552 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1568 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1584 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1600 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1616 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1632 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1648 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1664 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1680 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1696 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1712 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1728 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1744 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1760 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1776 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1792 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1808 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1824 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1840 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1856 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1872 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1888 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1904 + hash: "b1a19797afefa71e30f4594064aa4951" + } + Frame { + msec: 1920 + image: "windowObjects.1.png" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 89; y: 156 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1936 + hash: "fca76207a4fa6f2c4bb01d28aa018f0c" + } + Frame { + msec: 1952 + hash: "fca76207a4fa6f2c4bb01d28aa018f0c" + } + Frame { + msec: 1968 + hash: "fca76207a4fa6f2c4bb01d28aa018f0c" + } + Frame { + msec: 1984 + hash: "fca76207a4fa6f2c4bb01d28aa018f0c" + } + Frame { + msec: 2000 + hash: "fca76207a4fa6f2c4bb01d28aa018f0c" + } + Frame { + msec: 2016 + hash: "fca76207a4fa6f2c4bb01d28aa018f0c" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 89; y: 156 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2032 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2048 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2064 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2080 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2096 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2112 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2128 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2144 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2160 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2176 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2192 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2208 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2224 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2240 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2256 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2272 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2288 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 89; y: 157 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 88; y: 158 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 87; y: 160 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2304 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 87; y: 161 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 83; y: 167 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2320 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 82; y: 169 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 80; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2336 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 78; y: 183 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 74; y: 189 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2352 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 72; y: 195 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 68; y: 201 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2368 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 64; y: 207 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 62; y: 213 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2384 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 61; y: 215 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 59; y: 221 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2400 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 58; y: 222 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 57; y: 224 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2416 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2432 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2448 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2464 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2480 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2496 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2512 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2528 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2544 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2560 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2576 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2592 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2608 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2624 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2640 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2656 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2672 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2688 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2704 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2720 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2736 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 49; y: 225 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 50; y: 224 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2752 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 50; y: 223 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2768 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 51; y: 222 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2784 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 51; y: 221 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 52; y: 220 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2800 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 52; y: 218 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2816 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 53; y: 217 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2832 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2848 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2864 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 54; y: 216 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2880 + image: "windowObjects.2.png" + } + Frame { + msec: 2896 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 55; y: 215 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2912 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2928 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 56; y: 214 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2944 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2960 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 2976 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 57; y: 214 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 57; y: 214 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2992 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 3008 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 3024 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 3040 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 3056 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 3072 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 3088 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 3104 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 57; y: 214 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3120 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 3136 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 3152 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 3168 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 3184 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 3200 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 3216 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Frame { + msec: 3232 + hash: "6927f81ca01ef75d204994aa82c60c4d" + } + Key { + type: 6 + key: 83 + modifiers: 0 + text: "73" + autorep: false + count: 1 + } + Frame { + msec: 3248 + hash: "2165224e8f66a797ae5c991462fb56d8" + } + Frame { + msec: 3264 + hash: "2165224e8f66a797ae5c991462fb56d8" + } + Frame { + msec: 3280 + hash: "2165224e8f66a797ae5c991462fb56d8" + } + Frame { + msec: 3296 + hash: "2165224e8f66a797ae5c991462fb56d8" + } + Key { + type: 7 + key: 83 + modifiers: 0 + text: "73" + autorep: false + count: 1 + } + Frame { + msec: 3312 + hash: "2165224e8f66a797ae5c991462fb56d8" + } + Frame { + msec: 3328 + hash: "2165224e8f66a797ae5c991462fb56d8" + } + Frame { + msec: 3344 + hash: "2165224e8f66a797ae5c991462fb56d8" + } + Frame { + msec: 3360 + hash: "2165224e8f66a797ae5c991462fb56d8" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 57; y: 212 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3376 + hash: "2165224e8f66a797ae5c991462fb56d8" + } + Frame { + msec: 3392 + hash: "2165224e8f66a797ae5c991462fb56d8" + } + Frame { + msec: 3408 + hash: "2165224e8f66a797ae5c991462fb56d8" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 57; y: 211 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3424 + hash: "2165224e8f66a797ae5c991462fb56d8" + } + Key { + type: 6 + key: 83 + modifiers: 0 + text: "73" + autorep: false + count: 1 + } + Frame { + msec: 3440 + hash: "c6ac7e0be8b7b2a80966344389def97a" + } + Frame { + msec: 3456 + hash: "c6ac7e0be8b7b2a80966344389def97a" + } + Frame { + msec: 3472 + hash: "c6ac7e0be8b7b2a80966344389def97a" + } + Frame { + msec: 3488 + hash: "40f333072bb9f1d334d5ae432d9641b9" + } + Frame { + msec: 3504 + hash: "40f333072bb9f1d334d5ae432d9641b9" + } + Key { + type: 7 + key: 83 + modifiers: 0 + text: "73" + autorep: false + count: 1 + } + Frame { + msec: 3520 + hash: "40f333072bb9f1d334d5ae432d9641b9" + } + Frame { + msec: 3536 + hash: "40f333072bb9f1d334d5ae432d9641b9" + } + Frame { + msec: 3552 + hash: "40f333072bb9f1d334d5ae432d9641b9" + } + Frame { + msec: 3568 + hash: "40f333072bb9f1d334d5ae432d9641b9" + } + Frame { + msec: 3584 + hash: "40f333072bb9f1d334d5ae432d9641b9" + } + Frame { + msec: 3600 + hash: "40f333072bb9f1d334d5ae432d9641b9" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 58; y: 210 + modifiers: 0 + sendToViewport: true + } + Key { + type: 6 + key: 83 + modifiers: 0 + text: "73" + autorep: false + count: 1 + } + Frame { + msec: 3616 + hash: "96f727ef0dacfda9ea77fb5651493030" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 60; y: 209 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 61; y: 207 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3632 + hash: "96f727ef0dacfda9ea77fb5651493030" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 62; y: 205 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3648 + hash: "96f727ef0dacfda9ea77fb5651493030" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 62; y: 204 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 63; y: 203 + modifiers: 0 + sendToViewport: true + } + Key { + type: 7 + key: 83 + modifiers: 0 + text: "73" + autorep: false + count: 1 + } + Frame { + msec: 3664 + hash: "96f727ef0dacfda9ea77fb5651493030" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 63; y: 202 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 64; y: 200 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3680 + hash: "96f727ef0dacfda9ea77fb5651493030" + } + Frame { + msec: 3696 + hash: "96f727ef0dacfda9ea77fb5651493030" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 65; y: 198 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 66; y: 197 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 67; y: 195 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3712 + hash: "96f727ef0dacfda9ea77fb5651493030" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 68; y: 194 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 69; y: 192 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3728 + hash: "96f727ef0dacfda9ea77fb5651493030" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 70; y: 190 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 70; y: 188 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3744 + hash: "96f727ef0dacfda9ea77fb5651493030" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 70; y: 186 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 70; y: 185 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3760 + hash: "96f727ef0dacfda9ea77fb5651493030" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 71; y: 183 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 71; y: 181 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3776 + hash: "96f727ef0dacfda9ea77fb5651493030" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 72; y: 179 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 73; y: 178 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3792 + hash: "96f727ef0dacfda9ea77fb5651493030" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 73; y: 176 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 73; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3808 + hash: "96f727ef0dacfda9ea77fb5651493030" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 74; y: 174 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 74; y: 173 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3824 + hash: "96f727ef0dacfda9ea77fb5651493030" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 74; y: 172 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3840 + image: "windowObjects.3.png" + } + Frame { + msec: 3856 + hash: "96f727ef0dacfda9ea77fb5651493030" + } + Frame { + msec: 3872 + hash: "96f727ef0dacfda9ea77fb5651493030" + } + Frame { + msec: 3888 + hash: "96f727ef0dacfda9ea77fb5651493030" + } + Frame { + msec: 3904 + hash: "96f727ef0dacfda9ea77fb5651493030" + } + Frame { + msec: 3920 + hash: "96f727ef0dacfda9ea77fb5651493030" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 75; y: 171 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 76; y: 171 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3936 + hash: "96f727ef0dacfda9ea77fb5651493030" + } + Frame { + msec: 3952 + hash: "96f727ef0dacfda9ea77fb5651493030" + } + Frame { + msec: 3968 + hash: "96f727ef0dacfda9ea77fb5651493030" + } + Frame { + msec: 3984 + hash: "ed7b3d93d690df73be5cbee8c41a1931" + } + Frame { + msec: 4000 + hash: "ed7b3d93d690df73be5cbee8c41a1931" + } + Frame { + msec: 4016 + hash: "ed7b3d93d690df73be5cbee8c41a1931" + } + Frame { + msec: 4032 + hash: "ed7b3d93d690df73be5cbee8c41a1931" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 76; y: 170 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4048 + hash: "ed7b3d93d690df73be5cbee8c41a1931" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 77; y: 169 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 78; y: 168 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4064 + hash: "ed7b3d93d690df73be5cbee8c41a1931" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 79; y: 168 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4080 + hash: "ed7b3d93d690df73be5cbee8c41a1931" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 81; y: 167 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 81; y: 166 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4096 + hash: "ed7b3d93d690df73be5cbee8c41a1931" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 82; y: 165 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4112 + hash: "ed7b3d93d690df73be5cbee8c41a1931" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 83; y: 164 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4128 + hash: "ed7b3d93d690df73be5cbee8c41a1931" + } + Frame { + msec: 4144 + hash: "ed7b3d93d690df73be5cbee8c41a1931" + } + Frame { + msec: 4160 + hash: "ed7b3d93d690df73be5cbee8c41a1931" + } + Frame { + msec: 4176 + hash: "ed7b3d93d690df73be5cbee8c41a1931" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 83; y: 164 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4192 + hash: "5b3505be865f704640e81cea092d35ba" + } + Frame { + msec: 4208 + hash: "5b3505be865f704640e81cea092d35ba" + } + Frame { + msec: 4224 + hash: "5b3505be865f704640e81cea092d35ba" + } + Frame { + msec: 4240 + hash: "5b3505be865f704640e81cea092d35ba" + } + Frame { + msec: 4256 + hash: "5b3505be865f704640e81cea092d35ba" + } + Frame { + msec: 4272 + hash: "5b3505be865f704640e81cea092d35ba" + } + Frame { + msec: 4288 + hash: "5b3505be865f704640e81cea092d35ba" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 83; y: 164 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4304 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 4320 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 4336 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 4352 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 4368 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 4384 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 4400 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 4416 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 4432 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 4448 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 4464 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 85; y: 158 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 85; y: 156 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4480 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 86; y: 154 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 86; y: 152 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4496 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 87; y: 150 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 89; y: 144 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4512 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 93; y: 138 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 99; y: 134 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4528 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 101; y: 128 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 105; y: 122 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4544 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 109; y: 114 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 113; y: 108 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4560 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 114; y: 106 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 114; y: 105 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4576 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 115; y: 104 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 115; y: 102 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4592 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 115; y: 100 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 116; y: 98 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4608 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 120; y: 92 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 122; y: 86 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4624 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 126; y: 76 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 130; y: 66 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4640 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 132; y: 56 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 134; y: 46 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4656 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 136; y: 38 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 138; y: 30 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4672 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 140; y: 22 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 141; y: 20 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4688 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 143; y: 14 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 144; y: 12 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4704 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 144; y: 11 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 144; y: 9 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4720 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 144; y: 7 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 144; y: 6 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4736 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 143; y: 4 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 143; y: 2 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4752 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 143; y: 1 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4768 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 4784 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 4800 + image: "windowObjects.4.png" + } + Frame { + msec: 4816 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 4832 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 4848 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 4864 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 4880 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 4896 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 4912 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 4928 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 4944 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 4960 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 4976 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 4992 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5008 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5024 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5040 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5056 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5072 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5088 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5104 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5120 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5136 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5152 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5168 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5184 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5200 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5216 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5232 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5248 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5264 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5280 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5296 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5312 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5328 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5344 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5360 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5376 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5392 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5408 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5424 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5440 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5456 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5472 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5488 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5504 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5520 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5536 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5552 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5568 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } + Frame { + msec: 5584 + hash: "cb5a42e7ab70e05a8bbecabb587f9e5e" + } +} diff --git a/tests/auto/declarative/qmlvisual/webview/javascript/evaluateJavaScript.qml b/tests/auto/declarative/qmlvisual/webview/javascript/evaluateJavaScript.qml index bee2618..9ea2b64 100644 --- a/tests/auto/declarative/qmlvisual/webview/javascript/evaluateJavaScript.qml +++ b/tests/auto/declarative/qmlvisual/webview/javascript/evaluateJavaScript.qml @@ -1,7 +1,8 @@ import QtQuick 1.0 -import org.webkit 1.0 +import QtWebKit 1.0 Column { + property string skip: "WebView tests not counting until resources allocated to WebView maintenance" WebView { id: webview width: 200 diff --git a/tests/auto/declarative/qmlvisual/webview/javascript/windowObjects.qml b/tests/auto/declarative/qmlvisual/webview/javascript/windowObjects.qml index 9e22e20..0b78539 100644 --- a/tests/auto/declarative/qmlvisual/webview/javascript/windowObjects.qml +++ b/tests/auto/declarative/qmlvisual/webview/javascript/windowObjects.qml @@ -1,7 +1,8 @@ import QtQuick 1.0 -import org.webkit 1.0 +import QtWebKit 1.0 Column { + property string skip: "WebView tests not counting until resources allocated to WebView maintenance" WebView { width: 200 height: 200 diff --git a/tests/auto/declarative/qmlvisual/webview/settings/data/fontFamily.qml b/tests/auto/declarative/qmlvisual/webview/settings/data/fontFamily.qml new file mode 100644 index 0000000..34d1116 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/webview/settings/data/fontFamily.qml @@ -0,0 +1,395 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 32 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 48 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 64 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 80 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 96 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 112 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 128 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 144 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 160 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 176 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 192 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 208 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 224 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 240 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 256 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 272 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 288 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 304 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 320 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 336 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 352 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 368 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 384 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 400 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 416 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 432 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 448 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 464 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 480 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 496 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 512 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 528 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 544 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 560 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 576 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 592 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 608 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 624 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 640 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 656 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 672 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 688 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 196; y: 25 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 194; y: 19 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 190; y: 13 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 704 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 720 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 736 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 752 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 768 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 784 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 800 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 816 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 832 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 848 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 864 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 880 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 896 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 912 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 928 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 944 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 960 + image: "fontFamily.0.png" + } + Frame { + msec: 976 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 992 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 1008 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 1024 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 1040 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 1056 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 1072 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 1088 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 1104 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 1120 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 1136 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 1152 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 1168 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 1184 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 1200 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 1216 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 1232 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 1248 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 1264 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 1280 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 1296 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 1312 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 1328 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 1344 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 1360 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 1376 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 1392 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 1408 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 1424 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 1440 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } + Frame { + msec: 1456 + hash: "5d66fdee6a0a96bb24e89244f02eacc9" + } +} diff --git a/tests/auto/declarative/qmlvisual/webview/settings/data/fontSize.qml b/tests/auto/declarative/qmlvisual/webview/settings/data/fontSize.qml new file mode 100644 index 0000000..efe3875 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/webview/settings/data/fontSize.qml @@ -0,0 +1,339 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 32 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 48 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 64 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 80 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 96 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 112 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 128 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 144 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 160 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 176 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 192 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 208 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 224 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 240 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 256 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 272 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 288 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 304 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 320 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 336 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 352 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 368 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 384 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 400 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 416 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 432 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 448 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 464 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 480 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 496 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 512 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 528 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 544 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 560 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 576 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 592 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 608 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 624 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 640 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 656 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 672 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 688 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 704 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 720 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 736 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 752 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 768 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 784 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 800 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 816 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 832 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 848 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 864 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 880 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 896 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 912 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 928 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 944 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 960 + image: "fontSize.0.png" + } + Frame { + msec: 976 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 992 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 1008 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 1024 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 1040 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 1056 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 1072 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 1088 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 1104 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 1120 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 1136 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 1152 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 1168 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 1184 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 1200 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 1216 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 1232 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 1248 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 1264 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 1280 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 1296 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 1312 + hash: "962e77f522956d38f3b1b890df749f0a" + } + Frame { + msec: 1328 + hash: "962e77f522956d38f3b1b890df749f0a" + } +} diff --git a/tests/auto/declarative/qmlvisual/webview/settings/data/noAutoLoadImages.qml b/tests/auto/declarative/qmlvisual/webview/settings/data/noAutoLoadImages.qml new file mode 100644 index 0000000..624a16b --- /dev/null +++ b/tests/auto/declarative/qmlvisual/webview/settings/data/noAutoLoadImages.qml @@ -0,0 +1,595 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 32 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 48 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 64 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 80 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 96 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 112 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 128 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 144 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 160 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 176 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 192 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 208 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 224 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 240 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 256 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 272 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 288 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 304 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 320 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 336 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 352 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 368 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 384 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 400 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 416 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 432 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 448 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 464 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 480 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 496 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 512 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 528 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 544 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 560 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 576 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 592 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 608 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 624 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 640 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 656 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 672 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 688 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 704 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 720 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 736 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 752 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 768 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 784 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 800 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 816 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 832 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 848 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 864 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 880 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 896 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 912 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 928 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 944 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 960 + image: "noAutoLoadImages.0.png" + } + Frame { + msec: 976 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 992 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1008 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1024 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1040 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1056 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1072 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1088 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1104 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1120 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1136 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1152 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1168 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1184 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1200 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1216 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1232 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1248 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1264 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1280 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1296 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1312 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1328 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1344 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1360 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1376 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1392 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1408 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1424 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1440 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1456 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1472 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1488 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1504 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1520 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1536 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1552 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1568 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1584 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1600 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1616 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1632 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1648 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1664 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1680 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1696 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1712 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1728 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1744 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1760 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1776 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1792 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1808 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1824 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1840 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1856 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1872 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1888 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1904 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1920 + image: "noAutoLoadImages.1.png" + } + Frame { + msec: 1936 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1952 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1968 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 1984 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 2000 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 2016 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 2032 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 2048 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 2064 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 2080 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 2096 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 2112 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 2128 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 2144 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 2160 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 2176 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 2192 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 2208 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 2224 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 2240 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 2256 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 2272 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 2288 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 2304 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 2320 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 2336 + hash: "5146cfbeefc51268eca7717d84775750" + } + Frame { + msec: 2352 + hash: "5146cfbeefc51268eca7717d84775750" + } +} diff --git a/tests/auto/declarative/qmlvisual/webview/settings/data/setFontFamily.qml b/tests/auto/declarative/qmlvisual/webview/settings/data/setFontFamily.qml new file mode 100644 index 0000000..414d64f --- /dev/null +++ b/tests/auto/declarative/qmlvisual/webview/settings/data/setFontFamily.qml @@ -0,0 +1,351 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 32 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 48 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 64 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 80 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 96 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 112 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 128 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 144 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 160 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 176 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 192 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 208 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 224 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 240 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 256 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 272 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 288 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 304 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 320 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 336 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 352 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 368 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 384 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 400 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 416 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 432 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 448 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 464 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 480 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 496 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 512 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 528 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 544 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 560 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 576 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 592 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 608 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 624 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 640 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 656 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 672 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 688 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 704 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 720 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 736 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 752 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 768 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 784 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 800 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 816 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 832 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 848 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 864 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 880 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 896 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 912 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 928 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 944 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 960 + image: "setFontFamily.0.png" + } + Frame { + msec: 976 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 992 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 1008 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 1024 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 1040 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 1056 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 1072 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 1088 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 1104 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 1120 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 1136 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 1152 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 1168 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 1184 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 1200 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 1216 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 1232 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 1248 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 1264 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 1280 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 1296 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 1312 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 1328 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 1344 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 1360 + hash: "7ef8bb83c146898bd75de8951a932b58" + } + Frame { + msec: 1376 + hash: "7ef8bb83c146898bd75de8951a932b58" + } +} diff --git a/tests/auto/declarative/qmlvisual/webview/settings/fontFamily.qml b/tests/auto/declarative/qmlvisual/webview/settings/fontFamily.qml index 68acced..7c32704 100644 --- a/tests/auto/declarative/qmlvisual/webview/settings/fontFamily.qml +++ b/tests/auto/declarative/qmlvisual/webview/settings/fontFamily.qml @@ -1,7 +1,8 @@ import QtQuick 1.0 -import org.webkit 1.0 +import QtWebKit 1.0 WebView { + property string skip: "WebView tests not counting until resources allocated to WebView maintenance" id: web width: 200 height: 200 diff --git a/tests/auto/declarative/qmlvisual/webview/settings/fontSize.qml b/tests/auto/declarative/qmlvisual/webview/settings/fontSize.qml index 4a0db01..988ff64 100644 --- a/tests/auto/declarative/qmlvisual/webview/settings/fontSize.qml +++ b/tests/auto/declarative/qmlvisual/webview/settings/fontSize.qml @@ -1,7 +1,8 @@ import QtQuick 1.0 -import org.webkit 1.0 +import QtWebKit 1.0 Grid { + property string skip: "WebView tests not counting until resources allocated to WebView maintenance" columns: 3 Rectangle { Text { color: "green"; text: "Normal" } diff --git a/tests/auto/declarative/qmlvisual/webview/settings/noAutoLoadImages.qml b/tests/auto/declarative/qmlvisual/webview/settings/noAutoLoadImages.qml index 3d50664..c465be8 100644 --- a/tests/auto/declarative/qmlvisual/webview/settings/noAutoLoadImages.qml +++ b/tests/auto/declarative/qmlvisual/webview/settings/noAutoLoadImages.qml @@ -1,7 +1,8 @@ import QtQuick 1.0 -import org.webkit 1.0 +import QtWebKit 1.0 Grid { + property string skip: "WebView tests not counting until resources allocated to WebView maintenance" columns: 2 Rectangle { Text { id: label; x:10; y:170; color: "green"; text: "No image" } diff --git a/tests/auto/declarative/qmlvisual/webview/settings/setFontFamily.qml b/tests/auto/declarative/qmlvisual/webview/settings/setFontFamily.qml index ae5ddd2..11de161 100644 --- a/tests/auto/declarative/qmlvisual/webview/settings/setFontFamily.qml +++ b/tests/auto/declarative/qmlvisual/webview/settings/setFontFamily.qml @@ -1,7 +1,8 @@ import QtQuick 1.0 -import org.webkit 1.0 +import QtWebKit 1.0 WebView { + property string skip: "WebView tests not counting until resources allocated to WebView maintenance" url: "test.html" width: 300 height: 300 diff --git a/tests/auto/declarative/qmlvisual/webview/zooming/data/pageWidth.qml b/tests/auto/declarative/qmlvisual/webview/zooming/data/pageWidth.qml new file mode 100644 index 0000000..2e60b7f --- /dev/null +++ b/tests/auto/declarative/qmlvisual/webview/zooming/data/pageWidth.qml @@ -0,0 +1,227 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 32 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 48 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 64 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 80 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 96 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 112 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 128 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 144 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 160 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 176 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 192 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 208 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 224 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 240 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 256 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 272 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 288 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 304 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 320 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 336 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 352 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 368 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 384 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 400 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 416 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 432 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 448 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 464 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 480 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 496 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 512 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 528 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 544 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 560 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 576 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 592 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 608 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 624 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 640 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 656 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 672 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 688 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 704 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 720 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 736 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 752 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 768 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 784 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 800 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 816 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 832 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 848 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 864 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } + Frame { + msec: 880 + hash: "9a2554b1b322ea71115fa91d0100d2ff" + } +} diff --git a/tests/auto/declarative/qmlvisual/webview/zooming/data/renderControl.qml b/tests/auto/declarative/qmlvisual/webview/zooming/data/renderControl.qml new file mode 100644 index 0000000..464e009 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/webview/zooming/data/renderControl.qml @@ -0,0 +1,415 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "4f999826cd5ebe4f58bfd255e1c22be0" + } + Frame { + msec: 32 + hash: "3aa9bd1bd75219f82578689ac6d81c7e" + } + Frame { + msec: 48 + hash: "19d5f48f1c73d52483be96c887d3fd76" + } + Frame { + msec: 64 + hash: "9b85eef4e0746cc43aaefd442efdd824" + } + Frame { + msec: 80 + hash: "fca0034fb720e40198ede95a0ab0fadb" + } + Frame { + msec: 96 + hash: "9f63ddbd927a4b08242f3410a9ed7283" + } + Frame { + msec: 112 + hash: "4f5804c3c3ee195470a462293307cfd5" + } + Frame { + msec: 128 + hash: "d0434f08a8097b97b76c1194317a38ba" + } + Frame { + msec: 144 + hash: "921880d300e56f9605923a13fcd8b967" + } + Frame { + msec: 160 + hash: "f5dc87abf36332c68fd4450a6236dcb4" + } + Frame { + msec: 176 + hash: "c54f220cd5768afa1c12579007e17eff" + } + Frame { + msec: 192 + hash: "e1c70c3896d5a937296f205b09991b31" + } + Frame { + msec: 208 + hash: "d135f70f761add1358062a0386c62d18" + } + Frame { + msec: 224 + hash: "53cb2ed2b65e77cf0cd70530f32854ad" + } + Frame { + msec: 240 + hash: "2ff4feb61d958a800b38b282c3400293" + } + Frame { + msec: 256 + hash: "59f5585ec472efa29c5eba8b972ab3bd" + } + Frame { + msec: 272 + hash: "3aef5e1ff6da15e0e9f2e620dbabbab2" + } + Frame { + msec: 288 + hash: "2931299f667752efe9fca727534385e1" + } + Frame { + msec: 304 + hash: "2ed90e61c41b994ccea924191b66fc71" + } + Frame { + msec: 320 + hash: "1424c634067c896973c2c10793957933" + } + Frame { + msec: 336 + hash: "c4d30d511053a7caeefdae753236cf5b" + } + Frame { + msec: 352 + hash: "32300e07e34e8f316770c790a5ef9f6d" + } + Frame { + msec: 368 + hash: "95312dc2a4d88a48605fea170712354d" + } + Frame { + msec: 384 + hash: "3d146357d1532640cefb64fbae75bc0d" + } + Frame { + msec: 400 + hash: "5b78740511a456a3647d8392b2008f7f" + } + Frame { + msec: 416 + hash: "dddb065cefa27a862d108429c9984191" + } + Frame { + msec: 432 + hash: "0857067a0ee381e0f462ef8aceb0b696" + } + Frame { + msec: 448 + hash: "1f5e7e064cc62ff2e0585c98875351df" + } + Frame { + msec: 464 + hash: "c7f6bb852bdb2b99cbb5a8ca34f1585a" + } + Frame { + msec: 480 + hash: "f2284dea5812f167cae08c687fc1a3e9" + } + Frame { + msec: 496 + hash: "deec54bc32c46921e5032bce7daa1dad" + } + Frame { + msec: 512 + hash: "1271d3704de17bfe463c76fd73c3132b" + } + Frame { + msec: 528 + hash: "0568b0ecd47cd1c34b9de477e68e5751" + } + Frame { + msec: 544 + hash: "f070dd88e42697a9e43573f9f41b3540" + } + Frame { + msec: 560 + hash: "f5ced2827b06ea514f05866f1e4099f0" + } + Frame { + msec: 576 + hash: "59f5585ec472efa29c5eba8b972ab3bd" + } + Frame { + msec: 592 + hash: "2ff4feb61d958a800b38b282c3400293" + } + Frame { + msec: 608 + hash: "53cb2ed2b65e77cf0cd70530f32854ad" + } + Frame { + msec: 624 + hash: "d135f70f761add1358062a0386c62d18" + } + Frame { + msec: 640 + hash: "e1c70c3896d5a937296f205b09991b31" + } + Frame { + msec: 656 + hash: "c54f220cd5768afa1c12579007e17eff" + } + Frame { + msec: 672 + hash: "f5dc87abf36332c68fd4450a6236dcb4" + } + Frame { + msec: 688 + hash: "921880d300e56f9605923a13fcd8b967" + } + Frame { + msec: 704 + hash: "d0434f08a8097b97b76c1194317a38ba" + } + Frame { + msec: 720 + hash: "4f5804c3c3ee195470a462293307cfd5" + } + Frame { + msec: 736 + hash: "9f63ddbd927a4b08242f3410a9ed7283" + } + Frame { + msec: 752 + hash: "fca0034fb720e40198ede95a0ab0fadb" + } + Frame { + msec: 768 + hash: "9b85eef4e0746cc43aaefd442efdd824" + } + Frame { + msec: 784 + hash: "19d5f48f1c73d52483be96c887d3fd76" + } + Frame { + msec: 800 + hash: "3aa9bd1bd75219f82578689ac6d81c7e" + } + Frame { + msec: 816 + hash: "4f999826cd5ebe4f58bfd255e1c22be0" + } + Frame { + msec: 832 + hash: "3aa9bd1bd75219f82578689ac6d81c7e" + } + Frame { + msec: 848 + hash: "19d5f48f1c73d52483be96c887d3fd76" + } + Frame { + msec: 864 + hash: "9b85eef4e0746cc43aaefd442efdd824" + } + Frame { + msec: 880 + hash: "fca0034fb720e40198ede95a0ab0fadb" + } + Frame { + msec: 896 + hash: "9f63ddbd927a4b08242f3410a9ed7283" + } + Frame { + msec: 912 + hash: "4f5804c3c3ee195470a462293307cfd5" + } + Frame { + msec: 928 + hash: "d0434f08a8097b97b76c1194317a38ba" + } + Frame { + msec: 944 + hash: "921880d300e56f9605923a13fcd8b967" + } + Frame { + msec: 960 + image: "renderControl.0.png" + } + Frame { + msec: 976 + hash: "c54f220cd5768afa1c12579007e17eff" + } + Frame { + msec: 992 + hash: "e1c70c3896d5a937296f205b09991b31" + } + Frame { + msec: 1008 + hash: "d135f70f761add1358062a0386c62d18" + } + Frame { + msec: 1024 + hash: "53cb2ed2b65e77cf0cd70530f32854ad" + } + Frame { + msec: 1040 + hash: "2ff4feb61d958a800b38b282c3400293" + } + Frame { + msec: 1056 + hash: "59f5585ec472efa29c5eba8b972ab3bd" + } + Frame { + msec: 1072 + hash: "3aef5e1ff6da15e0e9f2e620dbabbab2" + } + Frame { + msec: 1088 + hash: "2931299f667752efe9fca727534385e1" + } + Frame { + msec: 1104 + hash: "2ed90e61c41b994ccea924191b66fc71" + } + Frame { + msec: 1120 + hash: "1424c634067c896973c2c10793957933" + } + Frame { + msec: 1136 + hash: "c4d30d511053a7caeefdae753236cf5b" + } + Frame { + msec: 1152 + hash: "32300e07e34e8f316770c790a5ef9f6d" + } + Frame { + msec: 1168 + hash: "95312dc2a4d88a48605fea170712354d" + } + Frame { + msec: 1184 + hash: "3d146357d1532640cefb64fbae75bc0d" + } + Frame { + msec: 1200 + hash: "5b78740511a456a3647d8392b2008f7f" + } + Frame { + msec: 1216 + hash: "dddb065cefa27a862d108429c9984191" + } + Frame { + msec: 1232 + hash: "0857067a0ee381e0f462ef8aceb0b696" + } + Frame { + msec: 1248 + hash: "1f5e7e064cc62ff2e0585c98875351df" + } + Frame { + msec: 1264 + hash: "c7f6bb852bdb2b99cbb5a8ca34f1585a" + } + Frame { + msec: 1280 + hash: "f2284dea5812f167cae08c687fc1a3e9" + } + Frame { + msec: 1296 + hash: "deec54bc32c46921e5032bce7daa1dad" + } + Frame { + msec: 1312 + hash: "1271d3704de17bfe463c76fd73c3132b" + } + Frame { + msec: 1328 + hash: "0568b0ecd47cd1c34b9de477e68e5751" + } + Frame { + msec: 1344 + hash: "f070dd88e42697a9e43573f9f41b3540" + } + Frame { + msec: 1360 + hash: "f5ced2827b06ea514f05866f1e4099f0" + } + Frame { + msec: 1376 + hash: "59f5585ec472efa29c5eba8b972ab3bd" + } + Frame { + msec: 1392 + hash: "2ff4feb61d958a800b38b282c3400293" + } + Frame { + msec: 1408 + hash: "53cb2ed2b65e77cf0cd70530f32854ad" + } + Frame { + msec: 1424 + hash: "d135f70f761add1358062a0386c62d18" + } + Frame { + msec: 1440 + hash: "e1c70c3896d5a937296f205b09991b31" + } + Frame { + msec: 1456 + hash: "c54f220cd5768afa1c12579007e17eff" + } + Frame { + msec: 1472 + hash: "f5dc87abf36332c68fd4450a6236dcb4" + } + Frame { + msec: 1488 + hash: "921880d300e56f9605923a13fcd8b967" + } + Frame { + msec: 1504 + hash: "d0434f08a8097b97b76c1194317a38ba" + } + Frame { + msec: 1520 + hash: "4f5804c3c3ee195470a462293307cfd5" + } + Frame { + msec: 1536 + hash: "9f63ddbd927a4b08242f3410a9ed7283" + } + Frame { + msec: 1552 + hash: "fca0034fb720e40198ede95a0ab0fadb" + } + Frame { + msec: 1568 + hash: "9b85eef4e0746cc43aaefd442efdd824" + } + Frame { + msec: 1584 + hash: "19d5f48f1c73d52483be96c887d3fd76" + } + Frame { + msec: 1600 + hash: "3aa9bd1bd75219f82578689ac6d81c7e" + } + Frame { + msec: 1616 + hash: "4f999826cd5ebe4f58bfd255e1c22be0" + } + Frame { + msec: 1632 + hash: "3aa9bd1bd75219f82578689ac6d81c7e" + } +} diff --git a/tests/auto/declarative/qmlvisual/webview/zooming/data/resolution.qml b/tests/auto/declarative/qmlvisual/webview/zooming/data/resolution.qml new file mode 100644 index 0000000..edf8040 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/webview/zooming/data/resolution.qml @@ -0,0 +1,1319 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "ac1d9c1cc13813b5e94c692a209a4e36" + } + Frame { + msec: 32 + hash: "1f189a436cf74ae83a03c3bb63c24ec2" + } + Frame { + msec: 48 + hash: "369f761053d5910e00672aa866f698ba" + } + Frame { + msec: 64 + hash: "30a191ae899121ae22d10acee6593415" + } + Frame { + msec: 80 + hash: "7af041898748bb5950643b057ca59eea" + } + Frame { + msec: 96 + hash: "e0a2ed91e78ff9a994deb9649a8afc16" + } + Frame { + msec: 112 + hash: "649ad1a3fb57fb088e4e5cfd749bf2e5" + } + Frame { + msec: 128 + hash: "9053a92e343ebb79bd2831f5ab94a1b5" + } + Frame { + msec: 144 + hash: "dc78b09e27bbc0a2cfec83436eef4446" + } + Frame { + msec: 160 + hash: "2aaa3749f93734dd203e1fea91a9f24a" + } + Frame { + msec: 176 + hash: "8df8dd33eada434231332b81e03430ce" + } + Frame { + msec: 192 + hash: "b5b1beb4dd4720eaa8b888fbef1ba875" + } + Frame { + msec: 208 + hash: "e531d33ef14b58ad843a6be6d7cb0961" + } + Frame { + msec: 224 + hash: "011c0bcca7717b08bc53738718203f7e" + } + Frame { + msec: 240 + hash: "412a630348aa44d56f36f04982035e36" + } + Frame { + msec: 256 + hash: "45528cdc62622b6d01e44466cd85bd38" + } + Frame { + msec: 272 + hash: "0901c99f959d6c10a0b6ea46a282d8fd" + } + Frame { + msec: 288 + hash: "3f200fca4815d555f22912d9fcdc20ee" + } + Frame { + msec: 304 + hash: "5e3c58e2f3a57f4ea48f4315d37ed813" + } + Frame { + msec: 320 + hash: "e8d98ec2d13ef4324feba11be95d0735" + } + Frame { + msec: 336 + hash: "4f3b79b341b63499a20f1e1e2cd979f9" + } + Frame { + msec: 352 + hash: "5ddbc3bc10292bec41531e83c0921c59" + } + Frame { + msec: 368 + hash: "9bc9801e83267689cd2750226f2b08ce" + } + Frame { + msec: 384 + hash: "f87195f2393914a0bbed9a454de01ff5" + } + Frame { + msec: 400 + hash: "4e0fd7f45e53a8d44c416eb9235ec877" + } + Frame { + msec: 416 + hash: "a579d6324fb4bf9ac5ceaba2aa708764" + } + Frame { + msec: 432 + hash: "b9f3f08168fb55ba01e56e670db565de" + } + Frame { + msec: 448 + hash: "cbd63ec868578e295a83170f42b23678" + } + Frame { + msec: 464 + hash: "2ed9d0e09b61dee8b2703e580007d7a5" + } + Frame { + msec: 480 + hash: "92fa2d9ef05140eb9d0fcf78b55f202e" + } + Frame { + msec: 496 + hash: "9a3f9dc04a900020f0e488309d7b4757" + } + Frame { + msec: 512 + hash: "93b4876c3e185ff4875a7447b0bf4f0f" + } + Frame { + msec: 528 + hash: "41b40e36f77d04e62f72ad34aa50709a" + } + Frame { + msec: 544 + hash: "2ea69aeb32fee61b61aa9c4efb2834bf" + } + Frame { + msec: 560 + hash: "0971ac1e05ea2ba387c78d4d103f5ea1" + } + Frame { + msec: 576 + hash: "98e46dff678f293fd6a4e9313ab3aec7" + } + Frame { + msec: 592 + hash: "82b94393071d6c32dd8028e1ee69e7fb" + } + Frame { + msec: 608 + hash: "240df67aa72a24546eb6e043e0d3d205" + } + Frame { + msec: 624 + hash: "56c4113cc341c254ccab66f3bc313154" + } + Frame { + msec: 640 + hash: "20d758c1537ed1a9aff657414b50926c" + } + Frame { + msec: 656 + hash: "ae252d835a05e01c2a12ae820335049a" + } + Frame { + msec: 672 + hash: "4d53256fbb012e738ba3868e2482250d" + } + Frame { + msec: 688 + hash: "261a341cab38986fb2f53b8e430f04a3" + } + Frame { + msec: 704 + hash: "1030f795d310f742ba491a2a90ff52d8" + } + Frame { + msec: 720 + hash: "59d24ebfedd2a87bdbd755d06c4361d2" + } + Frame { + msec: 736 + hash: "a6eaa480b3f93d33ae23bb36b7691b92" + } + Frame { + msec: 752 + hash: "cb6cf1e6e89da3fcbad323f744aef18d" + } + Frame { + msec: 768 + hash: "33a4f07cf7f5d16f006541c61ae2e4ee" + } + Frame { + msec: 784 + hash: "6e857b106486ea0aaa5321d4a7a07eae" + } + Frame { + msec: 800 + hash: "0f80edaf3eecf7a8c015d3fcecc0a494" + } + Frame { + msec: 816 + hash: "24b45d00d70904694c30ebd422c739ce" + } + Frame { + msec: 832 + hash: "c0ca66fefb19294852b9be0c4ba36481" + } + Frame { + msec: 848 + hash: "047846d243e7613193a8ddd526c4268e" + } + Frame { + msec: 864 + hash: "ca85f90e450ccda6b76e6a29a3187a63" + } + Frame { + msec: 880 + hash: "fcd803f5640d054190c2ddc9a6406bb9" + } + Frame { + msec: 896 + hash: "f81152b8a464bfa8343f52efcb0c8b8c" + } + Frame { + msec: 912 + hash: "e86be73d83699584dca986dfdb030b36" + } + Frame { + msec: 928 + hash: "d9798e4ebaf72c35b19a56b336d2ea93" + } + Frame { + msec: 944 + hash: "460f13d8e05b529c0e4fba39b1449ff1" + } + Frame { + msec: 960 + image: "resolution.0.png" + } + Frame { + msec: 976 + hash: "8b2f13580c6de9ec231809330d2d0362" + } + Frame { + msec: 992 + hash: "94a2cc520340573557e6a310f2ea125e" + } + Frame { + msec: 1008 + hash: "a8df78ab2e800349ec887ea6b1f5dcb8" + } + Frame { + msec: 1024 + hash: "0f3a56dbe26d453847ed4847c0e81d1a" + } + Frame { + msec: 1040 + hash: "96c89325862a982235b4b75922ec4669" + } + Frame { + msec: 1056 + hash: "ead6352a4ca47da59422e8d6a5844aa4" + } + Frame { + msec: 1072 + hash: "b50a6b14f15882e2c1ae6e3babeecdf8" + } + Frame { + msec: 1088 + hash: "2f32245c3388b86194e8183a290e99b8" + } + Frame { + msec: 1104 + hash: "2b54d49d30ccbf11ccb5ba8d62ba7d83" + } + Frame { + msec: 1120 + hash: "495b25d87cb6d1d4bdea4d5ec62c698e" + } + Frame { + msec: 1136 + hash: "3d45b061939783b6359fa4cdb908ecc0" + } + Frame { + msec: 1152 + hash: "e9e601c2a65a09b6354fff2c162106d6" + } + Frame { + msec: 1168 + hash: "8cfba8a724e85403b573caf7bbac9d83" + } + Frame { + msec: 1184 + hash: "5910765354645b724e14681cbdea227e" + } + Frame { + msec: 1200 + hash: "4358af7f2ccfc0919614351bfd5a7405" + } + Frame { + msec: 1216 + hash: "032e064336b458a6de03fdc98684cc34" + } + Frame { + msec: 1232 + hash: "c81d87bf83ee7e834a4b15dd103f7082" + } + Frame { + msec: 1248 + hash: "9d4416b55ed3b9e45a2314e9be5a5f2d" + } + Frame { + msec: 1264 + hash: "5b96da1a52a0413f9e8edbc9291a2502" + } + Frame { + msec: 1280 + hash: "aaa4008281ebc60b15616c818816e195" + } + Frame { + msec: 1296 + hash: "81ebf882aeb89648300dfc2e8e2cf11b" + } + Frame { + msec: 1312 + hash: "4e686e6cee12902f92e0ece915386fb3" + } + Frame { + msec: 1328 + hash: "6ff8d9bd6ec4dce414cdc7330646156e" + } + Frame { + msec: 1344 + hash: "dac6334e8b221527ef74b4f93eeef7c3" + } + Frame { + msec: 1360 + hash: "e58dbf419d1831e001e802600803aaa5" + } + Frame { + msec: 1376 + hash: "e8685f9b12c9ccb9d0e471946f1f6f9c" + } + Frame { + msec: 1392 + hash: "0936715ff8d38c2c813ebef0683a3246" + } + Frame { + msec: 1408 + hash: "37ad0a5532af8b083a7d4c4b044075ca" + } + Frame { + msec: 1424 + hash: "52ae25414d353d994cba36918644949a" + } + Frame { + msec: 1440 + hash: "07719485f9a7d0012eb0f3f211f0f21b" + } + Frame { + msec: 1456 + hash: "2d1a4f2c8d4a8d6316a31a81a2d20c61" + } + Frame { + msec: 1472 + hash: "3b279fb9e7b3efe05becc1651ba59493" + } + Frame { + msec: 1488 + hash: "4b9c126dcdf499f9de4e09d4f6ab86bf" + } + Frame { + msec: 1504 + hash: "6a1b8d8ea46949cb65e8f4155ab94819" + } + Frame { + msec: 1520 + hash: "6dbd2106b91ffbbb8a845e6cddbd47d7" + } + Frame { + msec: 1536 + hash: "8244eda92302f2b5cff01f05d438bf20" + } + Frame { + msec: 1552 + hash: "f939bd80ae865e365e554a532ade38f5" + } + Frame { + msec: 1568 + hash: "92d135616eee6737333b3d86d0aa5956" + } + Frame { + msec: 1584 + hash: "ca75854d6e5a77c8e609d65971b5671a" + } + Frame { + msec: 1600 + hash: "b0a113800cd05768b57bac6b9a338b1d" + } + Frame { + msec: 1616 + hash: "7af1a2aa6a201e36c3a969be4330af04" + } + Frame { + msec: 1632 + hash: "e54e8a2cfb0e6678b2a7cc64b8ae08bc" + } + Frame { + msec: 1648 + hash: "5d212c7efd9cf7d3eb5219b0bbe766d7" + } + Frame { + msec: 1664 + hash: "f4f2c95380c0f76c9e89820cdbeb5b31" + } + Frame { + msec: 1680 + hash: "b8eefbf5ade1a6b9eef9608f66a46474" + } + Frame { + msec: 1696 + hash: "d699ace9babbb152aad2fa852114c099" + } + Frame { + msec: 1712 + hash: "ceb3dea0d2b93cc5882a2b38ab3d1b95" + } + Frame { + msec: 1728 + hash: "08175810bfb80e1c5816b0d0aebbac4a" + } + Frame { + msec: 1744 + hash: "86abce93f50e7e7ebbd90690cfb20dd2" + } + Frame { + msec: 1760 + hash: "2918979f2682bd32beb5eaf7ecb3e463" + } + Frame { + msec: 1776 + hash: "b165ab96b0d51d41578bf99cbf7f6d02" + } + Frame { + msec: 1792 + hash: "d56cfdb2c65372cb36aeb13fd9c73deb" + } + Frame { + msec: 1808 + hash: "c53f0e4dc8204e5892ed4f367a6bade3" + } + Frame { + msec: 1824 + hash: "b3ae62e13149160f3695ed5c116411aa" + } + Frame { + msec: 1840 + hash: "057e4a0428ea2ff9893becd40e6d2977" + } + Frame { + msec: 1856 + hash: "10c050131093cc0d3f4b80c44eb1218b" + } + Frame { + msec: 1872 + hash: "17ce5a6dace37f4eb316f37ea26a8a2c" + } + Frame { + msec: 1888 + hash: "6e00c7e74bfaed5cf06aba54c8b73e57" + } + Frame { + msec: 1904 + hash: "5a03b1b698ca28d2afd9c67aef3bc2e9" + } + Frame { + msec: 1920 + image: "resolution.1.png" + } + Frame { + msec: 1936 + hash: "0fab102a33521e8893afdb6a11a3c5c9" + } + Frame { + msec: 1952 + hash: "232e8f1b060ef55e37a372bec4435d11" + } + Frame { + msec: 1968 + hash: "2107724eac0d1b8735060876f80d303a" + } + Frame { + msec: 1984 + hash: "cf5d12d2707975ad364750d5ba787944" + } + Frame { + msec: 2000 + hash: "2457c88828c2cb39feb1d34556077139" + } + Frame { + msec: 2016 + hash: "5f08d6dab8199b3f0f57d32cf2da4d67" + } + Frame { + msec: 2032 + hash: "2457c88828c2cb39feb1d34556077139" + } + Frame { + msec: 2048 + hash: "cf5d12d2707975ad364750d5ba787944" + } + Frame { + msec: 2064 + hash: "2107724eac0d1b8735060876f80d303a" + } + Frame { + msec: 2080 + hash: "232e8f1b060ef55e37a372bec4435d11" + } + Frame { + msec: 2096 + hash: "0a93c515cd328978ebd8103539a2fd63" + } + Frame { + msec: 2112 + hash: "63d6c7beac12e3bd83f9ef58c233c7d2" + } + Frame { + msec: 2128 + hash: "5a03b1b698ca28d2afd9c67aef3bc2e9" + } + Frame { + msec: 2144 + hash: "6e00c7e74bfaed5cf06aba54c8b73e57" + } + Frame { + msec: 2160 + hash: "17ce5a6dace37f4eb316f37ea26a8a2c" + } + Frame { + msec: 2176 + hash: "10c050131093cc0d3f4b80c44eb1218b" + } + Frame { + msec: 2192 + hash: "057e4a0428ea2ff9893becd40e6d2977" + } + Frame { + msec: 2208 + hash: "b3ae62e13149160f3695ed5c116411aa" + } + Frame { + msec: 2224 + hash: "c53f0e4dc8204e5892ed4f367a6bade3" + } + Frame { + msec: 2240 + hash: "d56cfdb2c65372cb36aeb13fd9c73deb" + } + Frame { + msec: 2256 + hash: "b165ab96b0d51d41578bf99cbf7f6d02" + } + Frame { + msec: 2272 + hash: "2918979f2682bd32beb5eaf7ecb3e463" + } + Frame { + msec: 2288 + hash: "86abce93f50e7e7ebbd90690cfb20dd2" + } + Frame { + msec: 2304 + hash: "08175810bfb80e1c5816b0d0aebbac4a" + } + Frame { + msec: 2320 + hash: "ceb3dea0d2b93cc5882a2b38ab3d1b95" + } + Frame { + msec: 2336 + hash: "d699ace9babbb152aad2fa852114c099" + } + Frame { + msec: 2352 + hash: "b8eefbf5ade1a6b9eef9608f66a46474" + } + Frame { + msec: 2368 + hash: "f4f2c95380c0f76c9e89820cdbeb5b31" + } + Frame { + msec: 2384 + hash: "5d212c7efd9cf7d3eb5219b0bbe766d7" + } + Frame { + msec: 2400 + hash: "e54e8a2cfb0e6678b2a7cc64b8ae08bc" + } + Frame { + msec: 2416 + hash: "d9408487f747ffb8eff5e1da92207285" + } + Frame { + msec: 2432 + hash: "e6b3fa1829535ac90d1548f45aadb9be" + } + Frame { + msec: 2448 + hash: "ca75854d6e5a77c8e609d65971b5671a" + } + Frame { + msec: 2464 + hash: "92d135616eee6737333b3d86d0aa5956" + } + Frame { + msec: 2480 + hash: "f939bd80ae865e365e554a532ade38f5" + } + Frame { + msec: 2496 + hash: "8244eda92302f2b5cff01f05d438bf20" + } + Frame { + msec: 2512 + hash: "6dbd2106b91ffbbb8a845e6cddbd47d7" + } + Frame { + msec: 2528 + hash: "6a1b8d8ea46949cb65e8f4155ab94819" + } + Frame { + msec: 2544 + hash: "4b9c126dcdf499f9de4e09d4f6ab86bf" + } + Frame { + msec: 2560 + hash: "3b279fb9e7b3efe05becc1651ba59493" + } + Frame { + msec: 2576 + hash: "bb40b884b56defb61ad86757fd51b9e6" + } + Frame { + msec: 2592 + hash: "07719485f9a7d0012eb0f3f211f0f21b" + } + Frame { + msec: 2608 + hash: "52ae25414d353d994cba36918644949a" + } + Frame { + msec: 2624 + hash: "37ad0a5532af8b083a7d4c4b044075ca" + } + Frame { + msec: 2640 + hash: "0936715ff8d38c2c813ebef0683a3246" + } + Frame { + msec: 2656 + hash: "e8685f9b12c9ccb9d0e471946f1f6f9c" + } + Frame { + msec: 2672 + hash: "e58dbf419d1831e001e802600803aaa5" + } + Frame { + msec: 2688 + hash: "dac6334e8b221527ef74b4f93eeef7c3" + } + Frame { + msec: 2704 + hash: "6ff8d9bd6ec4dce414cdc7330646156e" + } + Frame { + msec: 2720 + hash: "4e686e6cee12902f92e0ece915386fb3" + } + Frame { + msec: 2736 + hash: "81ebf882aeb89648300dfc2e8e2cf11b" + } + Frame { + msec: 2752 + hash: "aaa4008281ebc60b15616c818816e195" + } + Frame { + msec: 2768 + hash: "5b96da1a52a0413f9e8edbc9291a2502" + } + Frame { + msec: 2784 + hash: "9d4416b55ed3b9e45a2314e9be5a5f2d" + } + Frame { + msec: 2800 + hash: "c81d87bf83ee7e834a4b15dd103f7082" + } + Frame { + msec: 2816 + hash: "9fdf30d57c49a6644377ba40140b1969" + } + Frame { + msec: 2832 + hash: "4358af7f2ccfc0919614351bfd5a7405" + } + Frame { + msec: 2848 + hash: "5910765354645b724e14681cbdea227e" + } + Frame { + msec: 2864 + hash: "8cfba8a724e85403b573caf7bbac9d83" + } + Frame { + msec: 2880 + image: "resolution.2.png" + } + Frame { + msec: 2896 + hash: "3d45b061939783b6359fa4cdb908ecc0" + } + Frame { + msec: 2912 + hash: "495b25d87cb6d1d4bdea4d5ec62c698e" + } + Frame { + msec: 2928 + hash: "2b54d49d30ccbf11ccb5ba8d62ba7d83" + } + Frame { + msec: 2944 + hash: "2f32245c3388b86194e8183a290e99b8" + } + Frame { + msec: 2960 + hash: "b50a6b14f15882e2c1ae6e3babeecdf8" + } + Frame { + msec: 2976 + hash: "ead6352a4ca47da59422e8d6a5844aa4" + } + Frame { + msec: 2992 + hash: "96c89325862a982235b4b75922ec4669" + } + Frame { + msec: 3008 + hash: "0f3a56dbe26d453847ed4847c0e81d1a" + } + Frame { + msec: 3024 + hash: "a8df78ab2e800349ec887ea6b1f5dcb8" + } + Frame { + msec: 3040 + hash: "94a2cc520340573557e6a310f2ea125e" + } + Frame { + msec: 3056 + hash: "8b2f13580c6de9ec231809330d2d0362" + } + Frame { + msec: 3072 + hash: "5f76ef4f6b8e703fd0822859cd9a1353" + } + Frame { + msec: 3088 + hash: "460f13d8e05b529c0e4fba39b1449ff1" + } + Frame { + msec: 3104 + hash: "d9798e4ebaf72c35b19a56b336d2ea93" + } + Frame { + msec: 3120 + hash: "e86be73d83699584dca986dfdb030b36" + } + Frame { + msec: 3136 + hash: "f81152b8a464bfa8343f52efcb0c8b8c" + } + Frame { + msec: 3152 + hash: "fcd803f5640d054190c2ddc9a6406bb9" + } + Frame { + msec: 3168 + hash: "ca85f90e450ccda6b76e6a29a3187a63" + } + Frame { + msec: 3184 + hash: "047846d243e7613193a8ddd526c4268e" + } + Frame { + msec: 3200 + hash: "c0ca66fefb19294852b9be0c4ba36481" + } + Frame { + msec: 3216 + hash: "d4a075656790c4f2c50addcd2cc660b5" + } + Frame { + msec: 3232 + hash: "0f80edaf3eecf7a8c015d3fcecc0a494" + } + Frame { + msec: 3248 + hash: "6e857b106486ea0aaa5321d4a7a07eae" + } + Frame { + msec: 3264 + hash: "33a4f07cf7f5d16f006541c61ae2e4ee" + } + Frame { + msec: 3280 + hash: "cb6cf1e6e89da3fcbad323f744aef18d" + } + Frame { + msec: 3296 + hash: "a6eaa480b3f93d33ae23bb36b7691b92" + } + Frame { + msec: 3312 + hash: "59d24ebfedd2a87bdbd755d06c4361d2" + } + Frame { + msec: 3328 + hash: "1030f795d310f742ba491a2a90ff52d8" + } + Frame { + msec: 3344 + hash: "261a341cab38986fb2f53b8e430f04a3" + } + Frame { + msec: 3360 + hash: "4d53256fbb012e738ba3868e2482250d" + } + Frame { + msec: 3376 + hash: "ae252d835a05e01c2a12ae820335049a" + } + Frame { + msec: 3392 + hash: "20d758c1537ed1a9aff657414b50926c" + } + Frame { + msec: 3408 + hash: "56c4113cc341c254ccab66f3bc313154" + } + Frame { + msec: 3424 + hash: "240df67aa72a24546eb6e043e0d3d205" + } + Frame { + msec: 3440 + hash: "82b94393071d6c32dd8028e1ee69e7fb" + } + Frame { + msec: 3456 + hash: "98e46dff678f293fd6a4e9313ab3aec7" + } + Frame { + msec: 3472 + hash: "0971ac1e05ea2ba387c78d4d103f5ea1" + } + Frame { + msec: 3488 + hash: "2ea69aeb32fee61b61aa9c4efb2834bf" + } + Frame { + msec: 3504 + hash: "41b40e36f77d04e62f72ad34aa50709a" + } + Frame { + msec: 3520 + hash: "93b4876c3e185ff4875a7447b0bf4f0f" + } + Frame { + msec: 3536 + hash: "9a3f9dc04a900020f0e488309d7b4757" + } + Frame { + msec: 3552 + hash: "92fa2d9ef05140eb9d0fcf78b55f202e" + } + Frame { + msec: 3568 + hash: "2ed9d0e09b61dee8b2703e580007d7a5" + } + Frame { + msec: 3584 + hash: "cbd63ec868578e295a83170f42b23678" + } + Frame { + msec: 3600 + hash: "b9f3f08168fb55ba01e56e670db565de" + } + Frame { + msec: 3616 + hash: "a579d6324fb4bf9ac5ceaba2aa708764" + } + Frame { + msec: 3632 + hash: "4e0fd7f45e53a8d44c416eb9235ec877" + } + Frame { + msec: 3648 + hash: "f87195f2393914a0bbed9a454de01ff5" + } + Frame { + msec: 3664 + hash: "9bc9801e83267689cd2750226f2b08ce" + } + Frame { + msec: 3680 + hash: "5ddbc3bc10292bec41531e83c0921c59" + } + Frame { + msec: 3696 + hash: "4f3b79b341b63499a20f1e1e2cd979f9" + } + Frame { + msec: 3712 + hash: "e8d98ec2d13ef4324feba11be95d0735" + } + Frame { + msec: 3728 + hash: "5e3c58e2f3a57f4ea48f4315d37ed813" + } + Frame { + msec: 3744 + hash: "3f200fca4815d555f22912d9fcdc20ee" + } + Frame { + msec: 3760 + hash: "0901c99f959d6c10a0b6ea46a282d8fd" + } + Frame { + msec: 3776 + hash: "a186b8e984c999e8609472a7a5fa0610" + } + Frame { + msec: 3792 + hash: "412a630348aa44d56f36f04982035e36" + } + Frame { + msec: 3808 + hash: "011c0bcca7717b08bc53738718203f7e" + } + Frame { + msec: 3824 + hash: "e531d33ef14b58ad843a6be6d7cb0961" + } + Frame { + msec: 3840 + image: "resolution.3.png" + } + Frame { + msec: 3856 + hash: "8df8dd33eada434231332b81e03430ce" + } + Frame { + msec: 3872 + hash: "2aaa3749f93734dd203e1fea91a9f24a" + } + Frame { + msec: 3888 + hash: "dc78b09e27bbc0a2cfec83436eef4446" + } + Frame { + msec: 3904 + hash: "9053a92e343ebb79bd2831f5ab94a1b5" + } + Frame { + msec: 3920 + hash: "649ad1a3fb57fb088e4e5cfd749bf2e5" + } + Frame { + msec: 3936 + hash: "3579849956c1101000ef09949aa4c0f9" + } + Frame { + msec: 3952 + hash: "7af041898748bb5950643b057ca59eea" + } + Frame { + msec: 3968 + hash: "30a191ae899121ae22d10acee6593415" + } + Frame { + msec: 3984 + hash: "369f761053d5910e00672aa866f698ba" + } + Frame { + msec: 4000 + hash: "1f189a436cf74ae83a03c3bb63c24ec2" + } + Frame { + msec: 4016 + hash: "ac1d9c1cc13813b5e94c692a209a4e36" + } + Frame { + msec: 4032 + hash: "f0e0b5c041bcf38d8d9144d466ad74a9" + } + Frame { + msec: 4048 + hash: "38a35c94ebcf33f6720fea33821a54e1" + } + Frame { + msec: 4064 + hash: "061d139f43a3dd63daf887b82721f42f" + } + Frame { + msec: 4080 + hash: "623747b5fe99e5ffaa62f4daa3f840ef" + } + Frame { + msec: 4096 + hash: "4dd5081a387ffda296811b64b9235d7d" + } + Frame { + msec: 4112 + hash: "1598cf2fe996f99ab4c15f84d89cd7bd" + } + Frame { + msec: 4128 + hash: "30cac85bf1a622d438a64b6ccb59a8ca" + } + Frame { + msec: 4144 + hash: "114e54ae3e1493750a022f1c019e7f77" + } + Frame { + msec: 4160 + hash: "a585efc3aae3a426e6af5f4a8cc23b10" + } + Frame { + msec: 4176 + hash: "c0f315549baad93dd885d58b185e7ed7" + } + Frame { + msec: 4192 + hash: "3a00f5f034bef58ca341bf9e1056f46f" + } + Frame { + msec: 4208 + hash: "b3022d07dee989499a35aea21e07e4c1" + } + Frame { + msec: 4224 + hash: "e722464809e94fb7d8c752506f0d3ac2" + } + Frame { + msec: 4240 + hash: "82ea3d06367ce9dc582dbdbc186cc70a" + } + Frame { + msec: 4256 + hash: "359040facbe531c7f6b805b8bfc5b17a" + } + Frame { + msec: 4272 + hash: "264c7b65bae7e3945d87c17edfda6889" + } + Frame { + msec: 4288 + hash: "d941ec8e363942af02f36d4672521801" + } + Frame { + msec: 4304 + hash: "e46e145b4d07d1697c1d9efce80c80de" + } + Frame { + msec: 4320 + hash: "d8bed5c42bc5725d811db4dacdab1581" + } + Frame { + msec: 4336 + hash: "aa221160b4a11b30cb73eaa8ccaa9dfd" + } + Frame { + msec: 4352 + hash: "f411483477906d83f872b306cd021406" + } + Frame { + msec: 4368 + hash: "d9c52e4f99416fa1043a9c34a1c29f5a" + } + Frame { + msec: 4384 + hash: "ec2890446f34b8a5d47ae97ba2853d0f" + } + Frame { + msec: 4400 + hash: "6a3e6ef7d832fa7ec813b38171cb3602" + } + Frame { + msec: 4416 + hash: "6dfd75b6cb780f7d80466f3450d0b255" + } + Frame { + msec: 4432 + hash: "170774843dc6f28f51f07c445e046bd8" + } + Frame { + msec: 4448 + hash: "eab348bef656739d9723d3bd659c43ff" + } + Frame { + msec: 4464 + hash: "f06e546bb710002cdf1cefd51ffa47c4" + } + Frame { + msec: 4480 + hash: "52f7ff1348d9aa7cdf43cd81f0a71625" + } + Frame { + msec: 4496 + hash: "55a5b1befa3b7a4674a62d492b5527ea" + } + Frame { + msec: 4512 + hash: "699c093fddc6b9293a011d8d6eccd36d" + } + Frame { + msec: 4528 + hash: "b988e1ad7dc7d26ffeea8f71a69a9abf" + } + Frame { + msec: 4544 + hash: "8dea2b47492f83f961a47536a10aad0c" + } + Frame { + msec: 4560 + hash: "925ea8105779ffd801a3c62129d64bed" + } + Frame { + msec: 4576 + hash: "aa5d957c4f452b1f1c70ea672ce4a0b9" + } + Frame { + msec: 4592 + hash: "85d3ea97a1fb152ae8ad65a17693a16d" + } + Frame { + msec: 4608 + hash: "069b2bc8b86f822c5e7ceca3664e78a6" + } + Frame { + msec: 4624 + hash: "209071b7f72d8c25b9ce27c05397fe56" + } + Frame { + msec: 4640 + hash: "068dea708612620d34bd57c6affb44b1" + } + Frame { + msec: 4656 + hash: "36b53a0845220645059fed803a6ffcbc" + } + Frame { + msec: 4672 + hash: "2c84e15006a39a554eb2047bae9d4f6f" + } + Frame { + msec: 4688 + hash: "1bdab31534f4b5a7e9d27ede3e9acb57" + } + Frame { + msec: 4704 + hash: "688689eeb584b0c74f0322af35857dd5" + } + Frame { + msec: 4720 + hash: "024939fea5b6c6f9d3e26a0abf42ae3c" + } + Frame { + msec: 4736 + hash: "2efb2f47c6f0be3743f0f4dc7a66b08e" + } + Frame { + msec: 4752 + hash: "4631f3756af880693d3654c16cbe47bb" + } + Frame { + msec: 4768 + hash: "2fd77649c1e1ade97534ef530ad05612" + } + Frame { + msec: 4784 + hash: "5d13517bac111c8af49c444d41a42ea1" + } + Frame { + msec: 4800 + image: "resolution.4.png" + } + Frame { + msec: 4816 + hash: "8bd8efe405a42730304dcc120a6e718c" + } + Frame { + msec: 4832 + hash: "a83c543977e3f1dd4c020375eb3273fd" + } + Frame { + msec: 4848 + hash: "c52f38469fec77afc7f0a44b992e3d0d" + } + Frame { + msec: 4864 + hash: "af645449d6ec3f42449ffc59193aaaa4" + } + Frame { + msec: 4880 + hash: "2eb982cf754c77c109158076957775ae" + } + Frame { + msec: 4896 + hash: "9bf2fd4a4e45f302b34b7f038937d3d7" + } + Frame { + msec: 4912 + hash: "5520e309d68c8eedf76a9392714a6150" + } + Frame { + msec: 4928 + hash: "9dcd043a25e33b788729c0a0531301e7" + } + Frame { + msec: 4944 + hash: "1475b9bcfe08c66135673f4284c9bbcd" + } + Frame { + msec: 4960 + hash: "9af1f355bcf4d5f05b42040ebba75e09" + } + Frame { + msec: 4976 + hash: "8b6e04980ea60ca2ff06053d35c06881" + } + Frame { + msec: 4992 + hash: "def466e377a44afc4b2a9a9ebb258f86" + } + Frame { + msec: 5008 + hash: "18f6d6f5a3fdaee0037580df0f4f9ef0" + } + Frame { + msec: 5024 + hash: "ae2579498558f6f93489999c7c82cbcd" + } + Frame { + msec: 5040 + hash: "623d8e756c2c131150554272df231bf9" + } + Frame { + msec: 5056 + hash: "c13146576229848b8a1e1b382fbf749d" + } + Frame { + msec: 5072 + hash: "f963a399aeea1d34ec3bd30a5b991035" + } + Frame { + msec: 5088 + hash: "45a4db021ba0a53ad783c14a3b66aa38" + } + Frame { + msec: 5104 + hash: "2031618470e3bb3a3435fe0e270a15d4" + } + Frame { + msec: 5120 + hash: "f7cc01c301f29110db8364fecc8751f1" + } + Frame { + msec: 5136 + hash: "2d366fa500257ec0a12863f3637d0c47" + } + Frame { + msec: 5152 + hash: "4ba700e7f9ffba4889ca26d903a63029" + } + Frame { + msec: 5168 + hash: "329bec5e3d6a131b4bd9a056659bdb3e" + } + Frame { + msec: 5184 + hash: "48f7356707cdbcb401c135207ee38821" + } + Frame { + msec: 5200 + hash: "5314e448affe60d193d07a784035ecce" + } + Frame { + msec: 5216 + hash: "c87e98becdf99c214ad4987985b4af07" + } + Frame { + msec: 5232 + hash: "ea81d2a967b619980d7e42937ec74668" + } + Frame { + msec: 5248 + hash: "845319d4e0f6ee97697e59c606220e7a" + } +} diff --git a/tests/auto/declarative/qmlvisual/webview/zooming/data/zoomTextOnly.qml b/tests/auto/declarative/qmlvisual/webview/zooming/data/zoomTextOnly.qml new file mode 100644 index 0000000..4aab708 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/webview/zooming/data/zoomTextOnly.qml @@ -0,0 +1,655 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "4e401b5ebff6e442fa108e94a5dba668" + } + Frame { + msec: 32 + hash: "c2f8551d0442d0736b71c54fc965562b" + } + Frame { + msec: 48 + hash: "4fc1ef611b24ec5737310859b12c83d3" + } + Frame { + msec: 64 + hash: "7df07aea83bc5c3213e7871854661820" + } + Frame { + msec: 80 + hash: "0ae4ee18cc675749f008b897fe35cc40" + } + Frame { + msec: 96 + hash: "0ae4ee18cc675749f008b897fe35cc40" + } + Frame { + msec: 112 + hash: "f5c917c7ca26bb916dd4df84eafc8e94" + } + Frame { + msec: 128 + hash: "0696257de0441666bd264f8db6383d15" + } + Frame { + msec: 144 + hash: "0b43fdee23346c30c60b822a20131cc3" + } + Frame { + msec: 160 + hash: "98dbd004cf4809dbc90bfa9272378644" + } + Frame { + msec: 176 + hash: "32d0e9005ebb9dfd410d348e336bcd93" + } + Frame { + msec: 192 + hash: "8a64b18006ad0bd2c373a2a9395ce52e" + } + Frame { + msec: 208 + hash: "7dc26fd658f626b8fe18545cf93dc4ec" + } + Frame { + msec: 224 + hash: "6712be93cf1ed2b7b202367418b6d2d7" + } + Frame { + msec: 240 + hash: "524840a3453af4e97ac82b559308cce3" + } + Frame { + msec: 256 + hash: "11436091b24c02af94dfa75a5fd1a001" + } + Frame { + msec: 272 + hash: "d3689b53474b4b26630d70ba01c057b4" + } + Frame { + msec: 288 + hash: "16e2b66f28ed80d80d9b5264d89624d5" + } + Frame { + msec: 304 + hash: "87636076959de7e5a0a8bd8b31354ed4" + } + Frame { + msec: 320 + hash: "a6916da6bfac27aa87d75da2bbb73f31" + } + Frame { + msec: 336 + hash: "58cfba3aae4bf54a5b445e0e34571d2d" + } + Frame { + msec: 352 + hash: "1475ae722afd169cc0c8e1fde39eb6b7" + } + Frame { + msec: 368 + hash: "14d08c2ca430631af8ede1013f4f4da0" + } + Frame { + msec: 384 + hash: "ace9db9112d147569dc0cf1a1b680d6c" + } + Frame { + msec: 400 + hash: "08bc6815601417f3731eaae398d0861d" + } + Frame { + msec: 416 + hash: "809870dfd9b05ce07170edd945348ddf" + } + Frame { + msec: 432 + hash: "5784deb0f3270cf7a0d0964cd9d31458" + } + Frame { + msec: 448 + hash: "2f06ee407e5175d4b954e31c39c9522c" + } + Frame { + msec: 464 + hash: "48a7dbed293fbbd5ea202190837a411f" + } + Frame { + msec: 480 + hash: "abf3d90803cfa12d35d2752be7ea02d8" + } + Frame { + msec: 496 + hash: "a60edcf8d792f93a839e6ddbafbf993f" + } + Frame { + msec: 512 + hash: "7e8dfe86ea0849022355b12578d4cb1a" + } + Frame { + msec: 528 + hash: "3c84122b0933ee870f178d39469e51e2" + } + Frame { + msec: 544 + hash: "25f463e91febf5b6d8819fd5010bc1c2" + } + Frame { + msec: 560 + hash: "d423a9bc912237d0f20b924849ba0cb1" + } + Frame { + msec: 576 + hash: "5bd3cc309a5fce6183654975543250b2" + } + Frame { + msec: 592 + hash: "4e401b5ebff6e442fa108e94a5dba668" + } + Frame { + msec: 608 + hash: "9a4bf1400da038f2088dd4c49403d852" + } + Frame { + msec: 624 + hash: "a37024356613bd5d678e0b2f7b8f5959" + } + Frame { + msec: 640 + hash: "4f37d72c10e51f68a2359086094da249" + } + Frame { + msec: 656 + hash: "6093bcb7673f8e58fe5a7b0143638822" + } + Frame { + msec: 672 + hash: "c272aeea2b9c450fbd732305ccc01b93" + } + Frame { + msec: 688 + hash: "6a4e2ee45b26037421e2a5f2d6ee517e" + } + Frame { + msec: 704 + hash: "d912afcbce6c9d879a07ffc3c51b36d1" + } + Frame { + msec: 720 + hash: "2578335ac6f21c8aec2c87515562c321" + } + Frame { + msec: 736 + hash: "5b77af55f0a723ba762d283f41e91c98" + } + Frame { + msec: 752 + hash: "b420fc71b22fa608a9c0cdbbbc61c447" + } + Frame { + msec: 768 + hash: "3f7a9cecf2a590e8728137fabfd3f5f3" + } + Frame { + msec: 784 + hash: "c51f12a2f438f137785c70e3af4922fd" + } + Frame { + msec: 800 + hash: "5d97175fc4d986e5b21758d4ac785025" + } + Frame { + msec: 816 + hash: "94f922f3460ad76cd05cb5b321977a94" + } + Frame { + msec: 832 + hash: "5747adbc4f0b22ed359793d72d3e7d1f" + } + Frame { + msec: 848 + hash: "255d1d45d3343972f156dfab7d13ce41" + } + Frame { + msec: 864 + hash: "e5b54132ffb83acad30622e969405bc0" + } + Frame { + msec: 880 + hash: "2c05cf00e3417883e789f58c2728dc97" + } + Frame { + msec: 896 + hash: "9d66290b1aae1de3025d24d3efc4ca1c" + } + Frame { + msec: 912 + hash: "5e9b0783b1b4221145a4febbae56b30f" + } + Frame { + msec: 928 + hash: "21eea497c26600b03d868661232b3ebe" + } + Frame { + msec: 944 + hash: "2383c415170ac6444f1c193ed698f682" + } + Frame { + msec: 960 + image: "zoomTextOnly.0.png" + } + Frame { + msec: 976 + hash: "4ed0f85dec4eb0bb740ac3780b6872c0" + } + Frame { + msec: 992 + hash: "0a18bccca4efeadfced8e5cb1715a1f3" + } + Frame { + msec: 1008 + hash: "823e65df9075eb0e9a3aad6b15ec3342" + } + Frame { + msec: 1024 + hash: "823e65df9075eb0e9a3aad6b15ec3342" + } + Frame { + msec: 1040 + hash: "0a18bccca4efeadfced8e5cb1715a1f3" + } + Frame { + msec: 1056 + hash: "4ed0f85dec4eb0bb740ac3780b6872c0" + } + Frame { + msec: 1072 + hash: "fae77663566351fa3bb506b459496a9d" + } + Frame { + msec: 1088 + hash: "2383c415170ac6444f1c193ed698f682" + } + Frame { + msec: 1104 + hash: "2e05365256bebbdf3229f99b94263b6c" + } + Frame { + msec: 1120 + hash: "5e9b0783b1b4221145a4febbae56b30f" + } + Frame { + msec: 1136 + hash: "9d66290b1aae1de3025d24d3efc4ca1c" + } + Frame { + msec: 1152 + hash: "2c05cf00e3417883e789f58c2728dc97" + } + Frame { + msec: 1168 + hash: "e5b54132ffb83acad30622e969405bc0" + } + Frame { + msec: 1184 + hash: "255d1d45d3343972f156dfab7d13ce41" + } + Frame { + msec: 1200 + hash: "5747adbc4f0b22ed359793d72d3e7d1f" + } + Frame { + msec: 1216 + hash: "94f922f3460ad76cd05cb5b321977a94" + } + Frame { + msec: 1232 + hash: "5d97175fc4d986e5b21758d4ac785025" + } + Frame { + msec: 1248 + hash: "c51f12a2f438f137785c70e3af4922fd" + } + Frame { + msec: 1264 + hash: "3f7a9cecf2a590e8728137fabfd3f5f3" + } + Frame { + msec: 1280 + hash: "b420fc71b22fa608a9c0cdbbbc61c447" + } + Frame { + msec: 1296 + hash: "5b77af55f0a723ba762d283f41e91c98" + } + Frame { + msec: 1312 + hash: "2578335ac6f21c8aec2c87515562c321" + } + Frame { + msec: 1328 + hash: "a9b5438bd48dbafd307d571877416003" + } + Frame { + msec: 1344 + hash: "6a4e2ee45b26037421e2a5f2d6ee517e" + } + Frame { + msec: 1360 + hash: "c272aeea2b9c450fbd732305ccc01b93" + } + Frame { + msec: 1376 + hash: "37c7e50c270e8feb4dd9018580284a85" + } + Frame { + msec: 1392 + hash: "4f37d72c10e51f68a2359086094da249" + } + Frame { + msec: 1408 + hash: "a37024356613bd5d678e0b2f7b8f5959" + } + Frame { + msec: 1424 + hash: "9a4bf1400da038f2088dd4c49403d852" + } + Frame { + msec: 1440 + hash: "4e401b5ebff6e442fa108e94a5dba668" + } + Frame { + msec: 1456 + hash: "5bd3cc309a5fce6183654975543250b2" + } + Frame { + msec: 1472 + hash: "d423a9bc912237d0f20b924849ba0cb1" + } + Frame { + msec: 1488 + hash: "25f463e91febf5b6d8819fd5010bc1c2" + } + Frame { + msec: 1504 + hash: "3c84122b0933ee870f178d39469e51e2" + } + Frame { + msec: 1520 + hash: "7e8dfe86ea0849022355b12578d4cb1a" + } + Frame { + msec: 1536 + hash: "a60edcf8d792f93a839e6ddbafbf993f" + } + Frame { + msec: 1552 + hash: "abf3d90803cfa12d35d2752be7ea02d8" + } + Frame { + msec: 1568 + hash: "48a7dbed293fbbd5ea202190837a411f" + } + Frame { + msec: 1584 + hash: "2f06ee407e5175d4b954e31c39c9522c" + } + Frame { + msec: 1600 + hash: "5784deb0f3270cf7a0d0964cd9d31458" + } + Frame { + msec: 1616 + hash: "809870dfd9b05ce07170edd945348ddf" + } + Frame { + msec: 1632 + hash: "08bc6815601417f3731eaae398d0861d" + } + Frame { + msec: 1648 + hash: "ace9db9112d147569dc0cf1a1b680d6c" + } + Frame { + msec: 1664 + hash: "14d08c2ca430631af8ede1013f4f4da0" + } + Frame { + msec: 1680 + hash: "1475ae722afd169cc0c8e1fde39eb6b7" + } + Frame { + msec: 1696 + hash: "58cfba3aae4bf54a5b445e0e34571d2d" + } + Frame { + msec: 1712 + hash: "a6916da6bfac27aa87d75da2bbb73f31" + } + Frame { + msec: 1728 + hash: "87636076959de7e5a0a8bd8b31354ed4" + } + Frame { + msec: 1744 + hash: "16e2b66f28ed80d80d9b5264d89624d5" + } + Frame { + msec: 1760 + hash: "d3689b53474b4b26630d70ba01c057b4" + } + Frame { + msec: 1776 + hash: "11436091b24c02af94dfa75a5fd1a001" + } + Frame { + msec: 1792 + hash: "524840a3453af4e97ac82b559308cce3" + } + Frame { + msec: 1808 + hash: "6712be93cf1ed2b7b202367418b6d2d7" + } + Frame { + msec: 1824 + hash: "7dc26fd658f626b8fe18545cf93dc4ec" + } + Frame { + msec: 1840 + hash: "8a64b18006ad0bd2c373a2a9395ce52e" + } + Frame { + msec: 1856 + hash: "32d0e9005ebb9dfd410d348e336bcd93" + } + Frame { + msec: 1872 + hash: "98dbd004cf4809dbc90bfa9272378644" + } + Frame { + msec: 1888 + hash: "0b43fdee23346c30c60b822a20131cc3" + } + Frame { + msec: 1904 + hash: "0696257de0441666bd264f8db6383d15" + } + Frame { + msec: 1920 + image: "zoomTextOnly.1.png" + } + Frame { + msec: 1936 + hash: "0ae4ee18cc675749f008b897fe35cc40" + } + Frame { + msec: 1952 + hash: "0ae4ee18cc675749f008b897fe35cc40" + } + Frame { + msec: 1968 + hash: "7df07aea83bc5c3213e7871854661820" + } + Frame { + msec: 1984 + hash: "4fc1ef611b24ec5737310859b12c83d3" + } + Frame { + msec: 2000 + hash: "c2f8551d0442d0736b71c54fc965562b" + } + Frame { + msec: 2016 + hash: "4ec29787e437f9619ce0f0a0f4889d0f" + } + Frame { + msec: 2032 + hash: "c2f8551d0442d0736b71c54fc965562b" + } + Frame { + msec: 2048 + hash: "4fc1ef611b24ec5737310859b12c83d3" + } + Frame { + msec: 2064 + hash: "7df07aea83bc5c3213e7871854661820" + } + Frame { + msec: 2080 + hash: "0ae4ee18cc675749f008b897fe35cc40" + } + Frame { + msec: 2096 + hash: "0ae4ee18cc675749f008b897fe35cc40" + } + Frame { + msec: 2112 + hash: "f5c917c7ca26bb916dd4df84eafc8e94" + } + Frame { + msec: 2128 + hash: "0696257de0441666bd264f8db6383d15" + } + Frame { + msec: 2144 + hash: "0b43fdee23346c30c60b822a20131cc3" + } + Frame { + msec: 2160 + hash: "98dbd004cf4809dbc90bfa9272378644" + } + Frame { + msec: 2176 + hash: "32d0e9005ebb9dfd410d348e336bcd93" + } + Frame { + msec: 2192 + hash: "8a64b18006ad0bd2c373a2a9395ce52e" + } + Frame { + msec: 2208 + hash: "7dc26fd658f626b8fe18545cf93dc4ec" + } + Frame { + msec: 2224 + hash: "6712be93cf1ed2b7b202367418b6d2d7" + } + Frame { + msec: 2240 + hash: "524840a3453af4e97ac82b559308cce3" + } + Frame { + msec: 2256 + hash: "11436091b24c02af94dfa75a5fd1a001" + } + Frame { + msec: 2272 + hash: "d3689b53474b4b26630d70ba01c057b4" + } + Frame { + msec: 2288 + hash: "16e2b66f28ed80d80d9b5264d89624d5" + } + Frame { + msec: 2304 + hash: "87636076959de7e5a0a8bd8b31354ed4" + } + Frame { + msec: 2320 + hash: "a6916da6bfac27aa87d75da2bbb73f31" + } + Frame { + msec: 2336 + hash: "58cfba3aae4bf54a5b445e0e34571d2d" + } + Frame { + msec: 2352 + hash: "1475ae722afd169cc0c8e1fde39eb6b7" + } + Frame { + msec: 2368 + hash: "14d08c2ca430631af8ede1013f4f4da0" + } + Frame { + msec: 2384 + hash: "ace9db9112d147569dc0cf1a1b680d6c" + } + Frame { + msec: 2400 + hash: "08bc6815601417f3731eaae398d0861d" + } + Frame { + msec: 2416 + hash: "809870dfd9b05ce07170edd945348ddf" + } + Frame { + msec: 2432 + hash: "5784deb0f3270cf7a0d0964cd9d31458" + } + Frame { + msec: 2448 + hash: "2f06ee407e5175d4b954e31c39c9522c" + } + Frame { + msec: 2464 + hash: "48a7dbed293fbbd5ea202190837a411f" + } + Frame { + msec: 2480 + hash: "abf3d90803cfa12d35d2752be7ea02d8" + } + Frame { + msec: 2496 + hash: "a60edcf8d792f93a839e6ddbafbf993f" + } + Frame { + msec: 2512 + hash: "7e8dfe86ea0849022355b12578d4cb1a" + } + Frame { + msec: 2528 + hash: "3c84122b0933ee870f178d39469e51e2" + } + Frame { + msec: 2544 + hash: "25f463e91febf5b6d8819fd5010bc1c2" + } + Frame { + msec: 2560 + hash: "d423a9bc912237d0f20b924849ba0cb1" + } + Frame { + msec: 2576 + hash: "5bd3cc309a5fce6183654975543250b2" + } + Frame { + msec: 2592 + hash: "4e401b5ebff6e442fa108e94a5dba668" + } +} diff --git a/tests/auto/declarative/qmlvisual/webview/zooming/data/zooming.qml b/tests/auto/declarative/qmlvisual/webview/zooming/data/zooming.qml new file mode 100644 index 0000000..080d4d0 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/webview/zooming/data/zooming.qml @@ -0,0 +1,2115 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 32 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 48 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 64 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 80 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 96 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 112 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 128 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 144 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 160 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 176 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 192 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 208 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 224 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 240 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 256 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 272 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 288 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 304 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 320 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 336 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 352 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 197; y: 34 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 185; y: 34 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 368 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 169; y: 38 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 384 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 161; y: 40 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 400 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 155; y: 44 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 147; y: 46 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 416 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 141; y: 48 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 138; y: 48 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 432 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 130; y: 48 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 127; y: 48 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 448 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 125; y: 48 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 123; y: 48 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 464 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 480 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 121; y: 49 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 496 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 512 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 117; y: 53 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 116; y: 53 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 528 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 115; y: 54 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 544 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 113; y: 54 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 560 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 111; y: 53 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 111; y: 52 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 576 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 110; y: 50 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 592 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 109; y: 48 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 608 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 108; y: 46 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 624 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 108; y: 45 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 107; y: 44 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 640 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 106; y: 43 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 656 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 105; y: 42 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 672 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 105; y: 41 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 688 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 704 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 720 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 736 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 105; y: 40 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 752 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 105; y: 39 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 768 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 105; y: 37 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 105; y: 36 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 784 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 105; y: 35 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 105; y: 34 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 800 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 816 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 106; y: 33 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 832 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 848 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 864 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 880 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 896 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 106; y: 33 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 912 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 928 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 944 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 960 + image: "zooming.0.png" + } + Frame { + msec: 976 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 106; y: 33 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 992 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 1008 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 1024 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 1040 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 1056 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 4 + button: 1 + buttons: 1 + x: 106; y: 33 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1072 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 1088 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 1104 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 1120 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 106; y: 33 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1136 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 1152 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 1168 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 1184 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 106; y: 34 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 106; y: 36 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1200 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 105; y: 38 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1216 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 103; y: 44 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1232 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 102; y: 46 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 98; y: 50 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1248 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 94; y: 56 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 90; y: 62 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1264 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 88; y: 70 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 84; y: 78 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1280 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 84; y: 86 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 84; y: 94 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1296 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 84; y: 104 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 86; y: 114 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1312 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 88; y: 124 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 92; y: 136 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1328 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 94; y: 146 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 96; y: 156 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1344 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 96; y: 164 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 96; y: 172 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1360 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 96; y: 180 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 96; y: 188 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1376 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 96; y: 190 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 96; y: 193 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1392 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 95; y: 195 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 95; y: 197 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1408 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 95; y: 198 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 95; y: 200 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1424 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 94; y: 201 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 94; y: 202 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1440 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 94; y: 204 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1456 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 93; y: 205 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1472 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 92; y: 206 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1488 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 92; y: 208 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1504 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 92; y: 210 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1520 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 92; y: 211 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 91; y: 212 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1536 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 1552 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 1568 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 1584 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 1600 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 1616 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 1632 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 91; y: 213 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1648 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 1664 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 1680 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 1696 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 1712 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 91; y: 214 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 91; y: 214 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1728 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 1744 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 1760 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 1776 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 91; y: 214 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1792 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 1808 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 1824 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 1840 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 4 + button: 1 + buttons: 1 + x: 91; y: 214 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1856 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 1872 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 1888 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 1904 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 1920 + image: "zooming.1.png" + } + Frame { + msec: 1936 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 91; y: 214 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1952 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 1968 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 1984 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 2000 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 2016 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 2032 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 2048 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 2064 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 2080 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 2096 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 2112 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 2128 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 91; y: 212 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2144 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 2160 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 2176 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 2192 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 89; y: 211 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2208 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 88; y: 211 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2224 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 2240 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 86; y: 211 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2256 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 85; y: 211 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 84; y: 211 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2272 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 82; y: 211 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 80; y: 211 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2288 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 77; y: 211 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 75; y: 211 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2304 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 69; y: 213 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 66; y: 213 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2320 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 64; y: 213 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 62; y: 213 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2336 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 60; y: 213 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 58; y: 213 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2352 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 56; y: 213 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 55; y: 212 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2368 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 2384 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 2400 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 2416 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 2432 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 2448 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 2464 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 2480 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 56; y: 213 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2496 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 58; y: 214 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 59; y: 214 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2512 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 61; y: 215 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 62; y: 216 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2528 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 63; y: 216 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2544 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 2560 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 2576 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 2592 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 64; y: 216 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 64; y: 216 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2608 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 2624 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 2640 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 2656 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 2672 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 63; y: 216 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 63; y: 216 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2688 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 62; y: 216 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2704 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 2720 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 2736 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 2752 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 4 + button: 1 + buttons: 1 + x: 62; y: 216 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2768 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 2784 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 2800 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 2816 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 62; y: 216 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2832 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 2848 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 2864 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 62; y: 215 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2880 + image: "zooming.2.png" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 62; y: 214 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2896 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 62; y: 213 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2912 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 62; y: 212 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 63; y: 211 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2928 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 63; y: 209 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 64; y: 208 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2944 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 66; y: 202 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 70; y: 198 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2960 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 72; y: 192 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 74; y: 186 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2976 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 76; y: 180 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 80; y: 170 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2992 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 84; y: 162 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 88; y: 152 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3008 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 94; y: 142 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 98; y: 130 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3024 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 102; y: 118 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 108; y: 108 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3040 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 112; y: 98 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 114; y: 90 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3056 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 120; y: 80 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 122; y: 72 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3072 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 126; y: 66 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 128; y: 58 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3088 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 132; y: 52 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 134; y: 46 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3104 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 136; y: 40 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 140; y: 32 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3120 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 144; y: 24 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 150; y: 18 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3136 + hash: "c98df558c41f1837398eead42392b780" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 154; y: 10 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 160; y: 4 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3152 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3168 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3184 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3200 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3216 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3232 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3248 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3264 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3280 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3296 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3312 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3328 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3344 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3360 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3376 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3392 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3408 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3424 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3440 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3456 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3472 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3488 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3504 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3520 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3536 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3552 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3568 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3584 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3600 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3616 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3632 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3648 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3664 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3680 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3696 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3712 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3728 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3744 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3760 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3776 + hash: "c98df558c41f1837398eead42392b780" + } + Frame { + msec: 3792 + hash: "c98df558c41f1837398eead42392b780" + } +} diff --git a/tests/auto/declarative/qmlvisual/webview/zooming/pageWidth.qml b/tests/auto/declarative/qmlvisual/webview/zooming/pageWidth.qml index 1617bda..a2b11ac 100644 --- a/tests/auto/declarative/qmlvisual/webview/zooming/pageWidth.qml +++ b/tests/auto/declarative/qmlvisual/webview/zooming/pageWidth.qml @@ -1,10 +1,11 @@ import QtQuick 1.0 -import org.webkit 1.0 +import QtWebKit 1.0 WebView { - width: 200 - height: 250 - url: "resolution.html" - webPageWidth: 400 - preferredWidth: 200 + property string skip: "WebView tests not counting until resources allocated to WebView maintenance" + //width: 200 + //height: 250 + //url: "resolution.html" + // webPageWidth: 400 + // preferredWidth: 200 } diff --git a/tests/auto/declarative/qmlvisual/webview/zooming/renderControl.qml b/tests/auto/declarative/qmlvisual/webview/zooming/renderControl.qml index e46f726..c07f1e1 100644 --- a/tests/auto/declarative/qmlvisual/webview/zooming/renderControl.qml +++ b/tests/auto/declarative/qmlvisual/webview/zooming/renderControl.qml @@ -1,7 +1,8 @@ import QtQuick 1.0 -import org.webkit 1.0 +import QtWebKit 1.0 Rectangle { + property string skip: "WebView tests not counting until resources allocated to WebView maintenance" width: 200 height: 250 clip: true diff --git a/tests/auto/declarative/qmlvisual/webview/zooming/resolution.qml b/tests/auto/declarative/qmlvisual/webview/zooming/resolution.qml index e9189db..cf5f50f 100644 --- a/tests/auto/declarative/qmlvisual/webview/zooming/resolution.qml +++ b/tests/auto/declarative/qmlvisual/webview/zooming/resolution.qml @@ -1,7 +1,9 @@ import QtQuick 1.0 -import org.webkit 1.0 +import QtWebKit 1.0 WebView { + property string skip: "WebView tests not counting until resources allocated to WebView maintenance" + /* width: 200 * zoomFactor height: 250 * zoomFactor scale: 1/zoomFactor @@ -13,4 +15,5 @@ WebView { NumberAnimation { from: 1; to: 5; duration: 2000 } NumberAnimation { from: 5; to: 1; duration: 2000 } } + */ } diff --git a/tests/auto/declarative/qmlvisual/webview/zooming/zoomTextOnly.qml b/tests/auto/declarative/qmlvisual/webview/zooming/zoomTextOnly.qml index 52222be..03c925f 100644 --- a/tests/auto/declarative/qmlvisual/webview/zooming/zoomTextOnly.qml +++ b/tests/auto/declarative/qmlvisual/webview/zooming/zoomTextOnly.qml @@ -1,14 +1,17 @@ import QtQuick 1.0 -import org.webkit 1.0 +import QtWebKit 1.0 WebView { + property string skip: "WebView tests not counting until resources allocated to WebView maintenance" width: 200 height: 250 url: "zoomTextOnly.html" settings.zoomTextOnly: true + /* SequentialAnimation on zoomFactor { loops: Animation.Infinite NumberAnimation { from: 2; to: 0.25; duration: 1000 } NumberAnimation { from: 0.25; to: 2; duration: 1000 } } + */ } diff --git a/tests/auto/declarative/qmlvisual/webview/zooming/zooming.qml b/tests/auto/declarative/qmlvisual/webview/zooming/zooming.qml index dc973c2..03fd780 100644 --- a/tests/auto/declarative/qmlvisual/webview/zooming/zooming.qml +++ b/tests/auto/declarative/qmlvisual/webview/zooming/zooming.qml @@ -1,10 +1,11 @@ import QtQuick 1.0 -import org.webkit 1.0 +import QtWebKit 1.0 // Note that zooming is better done using zoomFactor and careful // control of rendering to avoid excessive re-rendering during // zoom animations. This test is written for simplicity. WebView { + property string skip: "WebView tests not counting until resources allocated to WebView maintenance" width: 200 height: 250 Behavior on x { NumberAnimation { } } diff --git a/tools/qml/qdeclarativetester.cpp b/tools/qml/qdeclarativetester.cpp index a0ef4a1..67ea03d 100644 --- a/tools/qml/qdeclarativetester.cpp +++ b/tools/qml/qdeclarativetester.cpp @@ -128,10 +128,8 @@ void QDeclarativeTester::executefailure() { hasFailed = true; - if (options & QDeclarativeViewer::ExitOnFailure){ - testSkip(); - exit(hasFailed?-1:0); - } + if (options & QDeclarativeViewer::ExitOnFailure) + exit(-1); } void QDeclarativeTester::imagefailure() |