diff options
author | Martin Jones <martin.jones@nokia.com> | 2009-11-13 05:34:22 (GMT) |
---|---|---|
committer | Martin Jones <martin.jones@nokia.com> | 2009-11-13 05:34:22 (GMT) |
commit | 3585025a5e7551190e93179be430072709e75751 (patch) | |
tree | e67f32434436e7df7f78474572a90e2f7188f048 | |
parent | f01e6e8993856cdcddc51868e91ef25b35695546 (diff) | |
parent | 6b641dde82a42fb6a0ed63335022ab390aa72014 (diff) | |
download | Qt-3585025a5e7551190e93179be430072709e75751.zip Qt-3585025a5e7551190e93179be430072709e75751.tar.gz Qt-3585025a5e7551190e93179be430072709e75751.tar.bz2 |
Merge branch 'kinetic-declarativeui' of git@scm.dev.nokia.troll.no:qt/kinetic into kinetic-declarativeui
46 files changed, 3651 insertions, 1557 deletions
@@ -56,6 +56,7 @@ my %moduleheaders = ( # restrict the module headers to those found in relative p # global variables (modified by options) my $module = 0; my $showonly = 0; +my $quiet = 0; my $remove_stale = 1; my $force_win = 0; my $force_relative = 0; @@ -84,6 +85,7 @@ sub showUsage print " -windows Force platform to Windows (default: " . ($force_win ? "yes" : "no") . ")\n"; print " -showonly Show action but not perform (default: " . ($showonly ? "yes" : "no") . ")\n"; print " -outdir <PATH> Specify output directory for sync (default: $out_basedir)\n"; + print " -quiet Only report problems, not activity (default: " . ($quiet ? "yes" : "no") . ")\n"; print " -help This help\n"; exit 0; } @@ -488,7 +490,7 @@ sub symlinkFile my ($file,$ifile) = @_; if ($isunix) { - print "symlink created for $file "; + print "symlink created for $file " unless $quiet; if ( $force_relative && ($ifile =~ /^$basedir/)) { my $t = getcwd(); my $c = -1; @@ -496,9 +498,9 @@ sub symlinkFile $t =~ s-^$basedir/--; $p .= "../" while( ($c = index( $t, "/", $c + 1)) != -1 ); $file =~ s-^$basedir/-$p-; - print " ($file)\n"; + print " ($file)\n" unless $quiet; } - print "\n"; + print "\n" unless $quiet; return symlink($file, $ifile); } return copyFile($file, $ifile); @@ -625,7 +627,7 @@ while ( @ARGV ) { $force_relative--; } } elsif ("$var" eq "module") { - print "module :$val:\n"; + print "module :$val:\n" unless $quiet; die "No such module: $val" unless(defined $modules{$val}); push @modules_to_sync, $val; } elsif ("$var" eq "output") { @@ -835,7 +837,7 @@ foreach (@modules_to_sync) { } } } - print "header created for $iheader ($header_copies)\n" if($header_copies > 0); + print "header created for $iheader ($header_copies)\n" if($header_copies > 0 && !$quiet); } } } @@ -867,7 +869,7 @@ foreach (@modules_to_sync) { if($master_include && $master_contents) { my $master_dir = dirname($master_include); mkpath $master_dir, 0777; - print "header (master) created for $lib\n"; + print "header (master) created for $lib\n" unless $quiet; open MASTERINCLUDE, ">$master_include"; print MASTERINCLUDE "$master_contents"; close MASTERINCLUDE; @@ -891,7 +893,7 @@ foreach (@modules_to_sync) { if($headers_pri_file && $master_contents) { my $headers_pri_dir = dirname($headers_pri_file); mkpath $headers_pri_dir, 0777; - print "headers.pri file created for $lib\n"; + print "headers.pri file created for $lib\n" unless $quiet; open HEADERS_PRI_FILE, ">$headers_pri_file"; print HEADERS_PRI_FILE "$headers_pri_contents"; close HEADERS_PRI_FILE; diff --git a/doc/src/declarative/globalobject.qdoc b/doc/src/declarative/globalobject.qdoc index a39d858..3cf1ca3 100644 --- a/doc/src/declarative/globalobject.qdoc +++ b/doc/src/declarative/globalobject.qdoc @@ -123,6 +123,11 @@ This function plays the audio file located at \c soundLocation. Only .wav files \section3 Qt.openUrlExternally(url target) This function attempts to open the specified \c target url in an external application, based on the user's desktop preferences. It will return true if it succeeds, and false otherwise. +\section3 Qt.md5(data) +This function returns a hex string of the md5 hash of \c data. + +\endlist + \section1 Dynamic Object Creation The following functions on the global object allow you to dynamically create QML items from files or strings. diff --git a/src/declarative/declarative.pro b/src/declarative/declarative.pro index e4901bf..62ae289 100644 --- a/src/declarative/declarative.pro +++ b/src/declarative/declarative.pro @@ -9,8 +9,8 @@ solaris-cc*:QMAKE_CXXFLAGS_RELEASE -= -O2 unix:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui QtXml -# QMAKE_CXXFLAGS = -fprofile-arcs -ftest-coverage -# LIBS += -lgcov +QMAKE_CXXFLAGS = -fprofile-arcs -ftest-coverage -fno-elide-constructors +LIBS += -lgcov INCLUDEPATH += ../../include/QtDeclarative diff --git a/src/declarative/graphicsitems/graphicsitems.pri b/src/declarative/graphicsitems/graphicsitems.pri index ef10e51..da3a0d4 100644 --- a/src/declarative/graphicsitems/graphicsitems.pri +++ b/src/declarative/graphicsitems/graphicsitems.pri @@ -83,5 +83,6 @@ contains(QT_CONFIG, webkit) { QT+=webkit SOURCES += graphicsitems/qmlgraphicswebview.cpp HEADERS += graphicsitems/qmlgraphicswebview_p.h + HEADERS += graphicsitems/qmlgraphicswebview_p_p.h } diff --git a/src/declarative/graphicsitems/qmlgraphicswebview.cpp b/src/declarative/graphicsitems/qmlgraphicswebview.cpp index 6dbf053..00fdd6d 100644 --- a/src/declarative/graphicsitems/qmlgraphicswebview.cpp +++ b/src/declarative/graphicsitems/qmlgraphicswebview.cpp @@ -59,6 +59,7 @@ #include <private/qlistmodelinterface_p.h> #include "qmlgraphicswebview_p.h" +#include "qmlgraphicswebview_p_p.h" #include <private/qmlgraphicspainteditem_p_p.h> QT_BEGIN_NAMESPACE @@ -67,97 +68,6 @@ QML_DEFINE_NOCREATE_TYPE(QAction) static const int MAX_DOUBLECLICK_TIME=500; // XXX need better gesture system -class QmlGraphicsWebSettings : public QObject { - Q_OBJECT - - Q_PROPERTY(QString standardFontFamily READ standardFontFamily WRITE setStandardFontFamily) - Q_PROPERTY(QString fixedFontFamily READ fixedFontFamily WRITE setFixedFontFamily) - Q_PROPERTY(QString serifFontFamily READ serifFontFamily WRITE setSerifFontFamily) - Q_PROPERTY(QString sansSerifFontFamily READ sansSerifFontFamily WRITE setSansSerifFontFamily) - Q_PROPERTY(QString cursiveFontFamily READ cursiveFontFamily WRITE setCursiveFontFamily) - Q_PROPERTY(QString fantasyFontFamily READ fantasyFontFamily WRITE setFantasyFontFamily) - - Q_PROPERTY(int minimumFontSize READ minimumFontSize WRITE setMinimumFontSize) - Q_PROPERTY(int minimumLogicalFontSize READ minimumLogicalFontSize WRITE setMinimumLogicalFontSize) - Q_PROPERTY(int defaultFontSize READ defaultFontSize WRITE setDefaultFontSize) - Q_PROPERTY(int defaultFixedFontSize READ defaultFixedFontSize WRITE setDefaultFixedFontSize) - - Q_PROPERTY(bool autoLoadImages READ autoLoadImages WRITE setAutoLoadImages) - Q_PROPERTY(bool javascriptEnabled READ javascriptEnabled WRITE setJavascriptEnabled) - Q_PROPERTY(bool javaEnabled READ javaEnabled WRITE setJavaEnabled) - Q_PROPERTY(bool pluginsEnabled READ pluginsEnabled WRITE setPluginsEnabled) - Q_PROPERTY(bool privateBrowsingEnabled READ privateBrowsingEnabled WRITE setPrivateBrowsingEnabled) - Q_PROPERTY(bool javascriptCanOpenWindows READ javascriptCanOpenWindows WRITE setJavascriptCanOpenWindows) - Q_PROPERTY(bool javascriptCanAccessClipboard READ javascriptCanAccessClipboard WRITE setJavascriptCanAccessClipboard) - Q_PROPERTY(bool developerExtrasEnabled READ developerExtrasEnabled WRITE setDeveloperExtrasEnabled) - Q_PROPERTY(bool linksIncludedInFocusChain READ linksIncludedInFocusChain WRITE setLinksIncludedInFocusChain) - Q_PROPERTY(bool zoomTextOnly READ zoomTextOnly WRITE setZoomTextOnly) - Q_PROPERTY(bool printElementBackgrounds READ printElementBackgrounds WRITE setPrintElementBackgrounds) - Q_PROPERTY(bool offlineStorageDatabaseEnabled READ offlineStorageDatabaseEnabled WRITE setOfflineStorageDatabaseEnabled) - Q_PROPERTY(bool offlineWebApplicationCacheEnabled READ offlineWebApplicationCacheEnabled WRITE setOfflineWebApplicationCacheEnabled) - Q_PROPERTY(bool localStorageDatabaseEnabled READ localStorageDatabaseEnabled WRITE setLocalStorageDatabaseEnabled) - Q_PROPERTY(bool localContentCanAccessRemoteUrls READ localContentCanAccessRemoteUrls WRITE setLocalContentCanAccessRemoteUrls) - -public: - QmlGraphicsWebSettings() {} - - QString standardFontFamily() const { return s->fontFamily(QWebSettings::StandardFont); } - void setStandardFontFamily(const QString& f) { s->setFontFamily(QWebSettings::StandardFont,f); } - QString fixedFontFamily() const { return s->fontFamily(QWebSettings::FixedFont); } - void setFixedFontFamily(const QString& f) { s->setFontFamily(QWebSettings::FixedFont,f); } - QString serifFontFamily() const { return s->fontFamily(QWebSettings::SerifFont); } - void setSerifFontFamily(const QString& f) { s->setFontFamily(QWebSettings::SerifFont,f); } - QString sansSerifFontFamily() const { return s->fontFamily(QWebSettings::SansSerifFont); } - void setSansSerifFontFamily(const QString& f) { s->setFontFamily(QWebSettings::SansSerifFont,f); } - QString cursiveFontFamily() const { return s->fontFamily(QWebSettings::CursiveFont); } - void setCursiveFontFamily(const QString& f) { s->setFontFamily(QWebSettings::CursiveFont,f); } - QString fantasyFontFamily() const { return s->fontFamily(QWebSettings::FantasyFont); } - void setFantasyFontFamily(const QString& f) { s->setFontFamily(QWebSettings::FantasyFont,f); } - - int minimumFontSize() const { return s->fontSize(QWebSettings::MinimumFontSize); } - void setMinimumFontSize(int size) { s->setFontSize(QWebSettings::MinimumFontSize,size); } - int minimumLogicalFontSize() const { return s->fontSize(QWebSettings::MinimumLogicalFontSize); } - void setMinimumLogicalFontSize(int size) { s->setFontSize(QWebSettings::MinimumLogicalFontSize,size); } - int defaultFontSize() const { return s->fontSize(QWebSettings::DefaultFontSize); } - void setDefaultFontSize(int size) { s->setFontSize(QWebSettings::DefaultFontSize,size); } - int defaultFixedFontSize() const { return s->fontSize(QWebSettings::DefaultFixedFontSize); } - void setDefaultFixedFontSize(int size) { s->setFontSize(QWebSettings::DefaultFixedFontSize,size); } - - bool autoLoadImages() const { return s->testAttribute(QWebSettings::AutoLoadImages); } - void setAutoLoadImages(bool on) { s->setAttribute(QWebSettings::AutoLoadImages, on); } - bool javascriptEnabled() const { return s->testAttribute(QWebSettings::JavascriptEnabled); } - void setJavascriptEnabled(bool on) { s->setAttribute(QWebSettings::JavascriptEnabled, on); } - bool javaEnabled() const { return s->testAttribute(QWebSettings::JavaEnabled); } - void setJavaEnabled(bool on) { s->setAttribute(QWebSettings::JavaEnabled, on); } - bool pluginsEnabled() const { return s->testAttribute(QWebSettings::PluginsEnabled); } - void setPluginsEnabled(bool on) { s->setAttribute(QWebSettings::PluginsEnabled, on); } - bool privateBrowsingEnabled() const { return s->testAttribute(QWebSettings::PrivateBrowsingEnabled); } - void setPrivateBrowsingEnabled(bool on) { s->setAttribute(QWebSettings::PrivateBrowsingEnabled, on); } - bool javascriptCanOpenWindows() const { return s->testAttribute(QWebSettings::JavascriptCanOpenWindows); } - void setJavascriptCanOpenWindows(bool on) { s->setAttribute(QWebSettings::JavascriptCanOpenWindows, on); } - bool javascriptCanAccessClipboard() const { return s->testAttribute(QWebSettings::JavascriptCanAccessClipboard); } - void setJavascriptCanAccessClipboard(bool on) { s->setAttribute(QWebSettings::JavascriptCanAccessClipboard, on); } - bool developerExtrasEnabled() const { return s->testAttribute(QWebSettings::DeveloperExtrasEnabled); } - void setDeveloperExtrasEnabled(bool on) { s->setAttribute(QWebSettings::DeveloperExtrasEnabled, on); } - bool linksIncludedInFocusChain() const { return s->testAttribute(QWebSettings::LinksIncludedInFocusChain); } - void setLinksIncludedInFocusChain(bool on) { s->setAttribute(QWebSettings::LinksIncludedInFocusChain, on); } - bool zoomTextOnly() const { return s->testAttribute(QWebSettings::ZoomTextOnly); } - void setZoomTextOnly(bool on) { s->setAttribute(QWebSettings::ZoomTextOnly, on); } - bool printElementBackgrounds() const { return s->testAttribute(QWebSettings::PrintElementBackgrounds); } - void setPrintElementBackgrounds(bool on) { s->setAttribute(QWebSettings::PrintElementBackgrounds, on); } - bool offlineStorageDatabaseEnabled() const { return s->testAttribute(QWebSettings::OfflineStorageDatabaseEnabled); } - void setOfflineStorageDatabaseEnabled(bool on) { s->setAttribute(QWebSettings::OfflineStorageDatabaseEnabled, on); } - bool offlineWebApplicationCacheEnabled() const { return s->testAttribute(QWebSettings::OfflineWebApplicationCacheEnabled); } - void setOfflineWebApplicationCacheEnabled(bool on) { s->setAttribute(QWebSettings::OfflineWebApplicationCacheEnabled, on); } - bool localStorageDatabaseEnabled() const { return s->testAttribute(QWebSettings::LocalStorageDatabaseEnabled); } - void setLocalStorageDatabaseEnabled(bool on) { s->setAttribute(QWebSettings::LocalStorageDatabaseEnabled, on); } - bool localContentCanAccessRemoteUrls() const { return s->testAttribute(QWebSettings::LocalContentCanAccessRemoteUrls); } - void setLocalContentCanAccessRemoteUrls(bool on) { s->setAttribute(QWebSettings::LocalContentCanAccessRemoteUrls, on); } - - QWebSettings *s; -}; - -QML_DECLARE_TYPE(QmlGraphicsWebSettings) QML_DEFINE_NOCREATE_TYPE(QmlGraphicsWebSettings) class QmlGraphicsWebViewPrivate : public QmlGraphicsPaintedItemPrivate @@ -706,7 +616,7 @@ void QmlGraphicsWebView::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) \i includes (\a clickX, \a clickY) \i fits into the preferredWidth and preferredHeight \i zooms by no more than \a maxzoom - \i is more than 20% above the current zoom + \i is more than 10% above the current zoom \endlist If such a zoom exists, emits zoomTo(zoom,centerX,centerY) and returns true; otherwise, @@ -722,7 +632,7 @@ bool QmlGraphicsWebView::heuristicZoom(int clickX, int clickY, qreal maxzoom) qreal z = qMin(qreal(d->preferredwidth)*ozf/showarea.width(),qreal(d->preferredheight)*ozf/showarea.height()); if (z > maxzoom) z = maxzoom; - if (z/ozf > 1.2) { + if (z/ozf > 1.1) { QRectF r(showarea.left()/ozf*z, showarea.top()/ozf*z, showarea.width()/ozf*z, showarea.height()/ozf*z); emit zoomTo(z,r.x()+r.width()/2, r.y()+r.height()/2); return true; diff --git a/src/declarative/graphicsitems/qmlgraphicswebview_p.h b/src/declarative/graphicsitems/qmlgraphicswebview_p.h index 7c9faf4..1d55830 100644 --- a/src/declarative/graphicsitems/qmlgraphicswebview_p.h +++ b/src/declarative/graphicsitems/qmlgraphicswebview_p.h @@ -128,6 +128,7 @@ public: qreal zoomFactor() const; void setZoomFactor(qreal); Q_INVOKABLE bool heuristicZoom(int clickX, int clickY, qreal maxzoom); + QRect elementAreaAt(int x, int y, int minwidth, int minheight) const; int preferredWidth() const; void setPreferredWidth(int); @@ -223,7 +224,6 @@ protected: virtual void focusChanged(bool); virtual bool sceneEvent(QEvent *event); QmlGraphicsWebView *createWindow(QWebPage::WebWindowType type); - QRect elementAreaAt(int x, int y, int minwidth, int minheight) const; private: void init(); diff --git a/src/declarative/graphicsitems/qmlgraphicswebview_p_p.h b/src/declarative/graphicsitems/qmlgraphicswebview_p_p.h new file mode 100644 index 0000000..5063669 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicswebview_p_p.h @@ -0,0 +1,150 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSWEBVIEW_P_H +#define QMLGRAPHICSWEBVIEW_P_H + +#include <qml.h> +#include <QtWebKit/QWebPage> + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlGraphicsWebSettings : public QObject { + Q_OBJECT + + Q_PROPERTY(QString standardFontFamily READ standardFontFamily WRITE setStandardFontFamily) + Q_PROPERTY(QString fixedFontFamily READ fixedFontFamily WRITE setFixedFontFamily) + Q_PROPERTY(QString serifFontFamily READ serifFontFamily WRITE setSerifFontFamily) + Q_PROPERTY(QString sansSerifFontFamily READ sansSerifFontFamily WRITE setSansSerifFontFamily) + Q_PROPERTY(QString cursiveFontFamily READ cursiveFontFamily WRITE setCursiveFontFamily) + Q_PROPERTY(QString fantasyFontFamily READ fantasyFontFamily WRITE setFantasyFontFamily) + + Q_PROPERTY(int minimumFontSize READ minimumFontSize WRITE setMinimumFontSize) + Q_PROPERTY(int minimumLogicalFontSize READ minimumLogicalFontSize WRITE setMinimumLogicalFontSize) + Q_PROPERTY(int defaultFontSize READ defaultFontSize WRITE setDefaultFontSize) + Q_PROPERTY(int defaultFixedFontSize READ defaultFixedFontSize WRITE setDefaultFixedFontSize) + + Q_PROPERTY(bool autoLoadImages READ autoLoadImages WRITE setAutoLoadImages) + Q_PROPERTY(bool javascriptEnabled READ javascriptEnabled WRITE setJavascriptEnabled) + Q_PROPERTY(bool javaEnabled READ javaEnabled WRITE setJavaEnabled) + Q_PROPERTY(bool pluginsEnabled READ pluginsEnabled WRITE setPluginsEnabled) + Q_PROPERTY(bool privateBrowsingEnabled READ privateBrowsingEnabled WRITE setPrivateBrowsingEnabled) + Q_PROPERTY(bool javascriptCanOpenWindows READ javascriptCanOpenWindows WRITE setJavascriptCanOpenWindows) + Q_PROPERTY(bool javascriptCanAccessClipboard READ javascriptCanAccessClipboard WRITE setJavascriptCanAccessClipboard) + Q_PROPERTY(bool developerExtrasEnabled READ developerExtrasEnabled WRITE setDeveloperExtrasEnabled) + Q_PROPERTY(bool linksIncludedInFocusChain READ linksIncludedInFocusChain WRITE setLinksIncludedInFocusChain) + Q_PROPERTY(bool zoomTextOnly READ zoomTextOnly WRITE setZoomTextOnly) + Q_PROPERTY(bool printElementBackgrounds READ printElementBackgrounds WRITE setPrintElementBackgrounds) + Q_PROPERTY(bool offlineStorageDatabaseEnabled READ offlineStorageDatabaseEnabled WRITE setOfflineStorageDatabaseEnabled) + Q_PROPERTY(bool offlineWebApplicationCacheEnabled READ offlineWebApplicationCacheEnabled WRITE setOfflineWebApplicationCacheEnabled) + Q_PROPERTY(bool localStorageDatabaseEnabled READ localStorageDatabaseEnabled WRITE setLocalStorageDatabaseEnabled) + Q_PROPERTY(bool localContentCanAccessRemoteUrls READ localContentCanAccessRemoteUrls WRITE setLocalContentCanAccessRemoteUrls) + +public: + QmlGraphicsWebSettings() {} + + QString standardFontFamily() const { return s->fontFamily(QWebSettings::StandardFont); } + void setStandardFontFamily(const QString& f) { s->setFontFamily(QWebSettings::StandardFont,f); } + QString fixedFontFamily() const { return s->fontFamily(QWebSettings::FixedFont); } + void setFixedFontFamily(const QString& f) { s->setFontFamily(QWebSettings::FixedFont,f); } + QString serifFontFamily() const { return s->fontFamily(QWebSettings::SerifFont); } + void setSerifFontFamily(const QString& f) { s->setFontFamily(QWebSettings::SerifFont,f); } + QString sansSerifFontFamily() const { return s->fontFamily(QWebSettings::SansSerifFont); } + void setSansSerifFontFamily(const QString& f) { s->setFontFamily(QWebSettings::SansSerifFont,f); } + QString cursiveFontFamily() const { return s->fontFamily(QWebSettings::CursiveFont); } + void setCursiveFontFamily(const QString& f) { s->setFontFamily(QWebSettings::CursiveFont,f); } + QString fantasyFontFamily() const { return s->fontFamily(QWebSettings::FantasyFont); } + void setFantasyFontFamily(const QString& f) { s->setFontFamily(QWebSettings::FantasyFont,f); } + + int minimumFontSize() const { return s->fontSize(QWebSettings::MinimumFontSize); } + void setMinimumFontSize(int size) { s->setFontSize(QWebSettings::MinimumFontSize,size); } + int minimumLogicalFontSize() const { return s->fontSize(QWebSettings::MinimumLogicalFontSize); } + void setMinimumLogicalFontSize(int size) { s->setFontSize(QWebSettings::MinimumLogicalFontSize,size); } + int defaultFontSize() const { return s->fontSize(QWebSettings::DefaultFontSize); } + void setDefaultFontSize(int size) { s->setFontSize(QWebSettings::DefaultFontSize,size); } + int defaultFixedFontSize() const { return s->fontSize(QWebSettings::DefaultFixedFontSize); } + void setDefaultFixedFontSize(int size) { s->setFontSize(QWebSettings::DefaultFixedFontSize,size); } + + bool autoLoadImages() const { return s->testAttribute(QWebSettings::AutoLoadImages); } + void setAutoLoadImages(bool on) { s->setAttribute(QWebSettings::AutoLoadImages, on); } + bool javascriptEnabled() const { return s->testAttribute(QWebSettings::JavascriptEnabled); } + void setJavascriptEnabled(bool on) { s->setAttribute(QWebSettings::JavascriptEnabled, on); } + bool javaEnabled() const { return s->testAttribute(QWebSettings::JavaEnabled); } + void setJavaEnabled(bool on) { s->setAttribute(QWebSettings::JavaEnabled, on); } + bool pluginsEnabled() const { return s->testAttribute(QWebSettings::PluginsEnabled); } + void setPluginsEnabled(bool on) { s->setAttribute(QWebSettings::PluginsEnabled, on); } + bool privateBrowsingEnabled() const { return s->testAttribute(QWebSettings::PrivateBrowsingEnabled); } + void setPrivateBrowsingEnabled(bool on) { s->setAttribute(QWebSettings::PrivateBrowsingEnabled, on); } + bool javascriptCanOpenWindows() const { return s->testAttribute(QWebSettings::JavascriptCanOpenWindows); } + void setJavascriptCanOpenWindows(bool on) { s->setAttribute(QWebSettings::JavascriptCanOpenWindows, on); } + bool javascriptCanAccessClipboard() const { return s->testAttribute(QWebSettings::JavascriptCanAccessClipboard); } + void setJavascriptCanAccessClipboard(bool on) { s->setAttribute(QWebSettings::JavascriptCanAccessClipboard, on); } + bool developerExtrasEnabled() const { return s->testAttribute(QWebSettings::DeveloperExtrasEnabled); } + void setDeveloperExtrasEnabled(bool on) { s->setAttribute(QWebSettings::DeveloperExtrasEnabled, on); } + bool linksIncludedInFocusChain() const { return s->testAttribute(QWebSettings::LinksIncludedInFocusChain); } + void setLinksIncludedInFocusChain(bool on) { s->setAttribute(QWebSettings::LinksIncludedInFocusChain, on); } + bool zoomTextOnly() const { return s->testAttribute(QWebSettings::ZoomTextOnly); } + void setZoomTextOnly(bool on) { s->setAttribute(QWebSettings::ZoomTextOnly, on); } + bool printElementBackgrounds() const { return s->testAttribute(QWebSettings::PrintElementBackgrounds); } + void setPrintElementBackgrounds(bool on) { s->setAttribute(QWebSettings::PrintElementBackgrounds, on); } + bool offlineStorageDatabaseEnabled() const { return s->testAttribute(QWebSettings::OfflineStorageDatabaseEnabled); } + void setOfflineStorageDatabaseEnabled(bool on) { s->setAttribute(QWebSettings::OfflineStorageDatabaseEnabled, on); } + bool offlineWebApplicationCacheEnabled() const { return s->testAttribute(QWebSettings::OfflineWebApplicationCacheEnabled); } + void setOfflineWebApplicationCacheEnabled(bool on) { s->setAttribute(QWebSettings::OfflineWebApplicationCacheEnabled, on); } + bool localStorageDatabaseEnabled() const { return s->testAttribute(QWebSettings::LocalStorageDatabaseEnabled); } + void setLocalStorageDatabaseEnabled(bool on) { s->setAttribute(QWebSettings::LocalStorageDatabaseEnabled, on); } + bool localContentCanAccessRemoteUrls() const { return s->testAttribute(QWebSettings::LocalContentCanAccessRemoteUrls); } + void setLocalContentCanAccessRemoteUrls(bool on) { s->setAttribute(QWebSettings::LocalContentCanAccessRemoteUrls, on); } + + QWebSettings *s; +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsWebSettings) + +QT_END_HEADER + +#endif diff --git a/src/declarative/qml/qmlengine.cpp b/src/declarative/qml/qmlengine.cpp index 6e3cf69..b6f3bde 100644 --- a/src/declarative/qml/qmlengine.cpp +++ b/src/declarative/qml/qmlengine.cpp @@ -88,6 +88,7 @@ #include <private/qmllistscriptclass_p.h> #include <qmlscriptstring.h> #include <private/qmlglobal_p.h> +#include <QtCore/qcryptographichash.h> #ifdef Q_OS_WIN // for %APPDATA% #include "qt_windows.h" @@ -150,6 +151,7 @@ QmlEnginePrivate::QmlEnginePrivate(QmlEngine *e) qtObject.setProperty(QLatin1String("closestAngle"), scriptEngine.newFunction(QmlEnginePrivate::closestAngle, 2)); qtObject.setProperty(QLatin1String("playSound"), scriptEngine.newFunction(QmlEnginePrivate::playSound, 1)); qtObject.setProperty(QLatin1String("openUrlExternally"),scriptEngine.newFunction(desktopOpenUrl, 1)); + qtObject.setProperty(QLatin1String("md5"),scriptEngine.newFunction(md5, 1)); scriptEngine.globalObject().setProperty(QLatin1String("createQmlObject"), scriptEngine.newFunction(QmlEnginePrivate::createQmlObject, 1)); @@ -816,6 +818,18 @@ QScriptValue QmlEnginePrivate::desktopOpenUrl(QScriptContext *ctxt, QScriptEngin return e->newVariant(QVariant(ret)); } +QScriptValue QmlEnginePrivate::md5(QScriptContext *ctxt, QScriptEngine *e) +{ + QByteArray data; + + if (ctxt->argumentCount() >= 1) + data = ctxt->argument(0).toString().toUtf8(); + + QByteArray result = QCryptographicHash::hash(data, QCryptographicHash::Md5); + + return QScriptValue(QLatin1String(result.toHex())); +} + QScriptValue QmlEnginePrivate::closestAngle(QScriptContext *ctxt, QScriptEngine *e) { if(ctxt->argumentCount() < 2) diff --git a/src/declarative/qml/qmlengine_p.h b/src/declarative/qml/qmlengine_p.h index a3e2d52..2e880bb 100644 --- a/src/declarative/qml/qmlengine_p.h +++ b/src/declarative/qml/qmlengine_p.h @@ -272,6 +272,7 @@ public: static QScriptValue closestAngle(QScriptContext*, QScriptEngine*); static QScriptValue playSound(QScriptContext*, QScriptEngine*); static QScriptValue desktopOpenUrl(QScriptContext*, QScriptEngine*); + static QScriptValue md5(QScriptContext*, QScriptEngine*); static QScriptEngine *getScriptEngine(QmlEngine *e) { return &e->d_func()->scriptEngine; } static QmlEngine *getEngine(QScriptEngine *e) { return static_cast<QmlScriptEngine*>(e)->p->q_func(); } diff --git a/src/declarative/qml/qmlxmlhttprequest.cpp b/src/declarative/qml/qmlxmlhttprequest.cpp index e5ee2f5..848533c 100644 --- a/src/declarative/qml/qmlxmlhttprequest.cpp +++ b/src/declarative/qml/qmlxmlhttprequest.cpp @@ -131,10 +131,10 @@ public: QList<NodeImpl *> attributes; }; -class DocumentImpl : public QmlRefCount +class DocumentImpl : public NodeImpl { public: - DocumentImpl() : root(0) { } + DocumentImpl() : root(0) { type = Document; } virtual ~DocumentImpl() { if (root) D(root); } @@ -158,12 +158,13 @@ public: NamedNodeMap(); NamedNodeMap(const NamedNodeMap &); - NamedNodeMap &operator=(const NamedNodeMap &); ~NamedNodeMap(); bool isNull(); NodeImpl *d; QList<NodeImpl *> *list; +private: + NamedNodeMap &operator=(const NamedNodeMap &); }; class NamedNodeMapClass : public QScriptClass @@ -180,7 +181,6 @@ class NodeList public: // JS API static QScriptValue length(QScriptContext *context, QScriptEngine *engine); - static QScriptValue item(QScriptContext *context, QScriptEngine *engine); // C++ API static QScriptValue prototype(QScriptEngine *); @@ -188,11 +188,12 @@ public: NodeList(); NodeList(const NodeList &); - NodeList &operator=(const NodeList &); ~NodeList(); bool isNull(); NodeImpl *d; +private: + NodeList &operator=(const NodeList &); }; class NodeListClass : public QScriptClass @@ -232,11 +233,13 @@ public: Node(); Node(const Node &o); - Node &operator=(const Node &); ~Node(); bool isNull() const; NodeImpl *d; + +private: + Node &operator=(const Node &); }; class Element : public Node @@ -301,31 +304,29 @@ public: // C++ API static QScriptValue prototype(QScriptEngine *); static QScriptValue load(QScriptEngine *engine, const QString &data); - - Document(); - Document(const Document &); - Document &operator=(const Document &); - ~Document(); - bool isNull() const; - - DocumentImpl *d; -private: - Document(DocumentImpl *); }; -}; +}; // namespace Q_DECLARE_METATYPE(Node); Q_DECLARE_METATYPE(NodeList); Q_DECLARE_METATYPE(NamedNodeMap); -Q_DECLARE_METATYPE(Document); QScriptValue Node::nodeName(QScriptContext *context, QScriptEngine *engine) { Node node = qscriptvalue_cast<Node>(context->thisObject()); if (node.isNull()) return engine->undefinedValue(); - return QScriptValue(node.d->name); + switch (node.d->type) { + case NodeImpl::Document: + return QScriptValue(QLatin1String("#document")); + case NodeImpl::CDATA: + return QScriptValue(QLatin1String("#cdata-section")); + case NodeImpl::Text: + return QScriptValue(QLatin1String("#text")); + default: + return QScriptValue(node.d->name); + } } QScriptValue Node::nodeValue(QScriptContext *context, QScriptEngine *engine) @@ -465,12 +466,11 @@ QScriptValue Node::create(QScriptEngine *engine, NodeImpl *data) case NodeImpl::Entity: case NodeImpl::EntityReference: case NodeImpl::Notation: + case NodeImpl::ProcessingInstruction: + return QScriptValue(); case NodeImpl::CDATA: instance.setPrototype(CDATA::prototype(engine)); break; - case NodeImpl::ProcessingInstruction: - instance.setPrototype(Node::prototype(engine)); - break; case NodeImpl::Text: instance.setPrototype(Text::prototype(engine)); break; @@ -556,8 +556,7 @@ QScriptValue Text::isElementContentWhitespace(QScriptContext *context, QScriptEn Node node = qscriptvalue_cast<Node>(context->thisObject()); if (node.isNull()) return engine->undefinedValue(); - // ### implement - return QScriptValue(false); + return node.d->data.trimmed().isEmpty(); } QScriptValue Text::wholeText(QScriptContext *context, QScriptEngine *engine) @@ -565,8 +564,7 @@ QScriptValue Text::wholeText(QScriptContext *context, QScriptEngine *engine) Node node = qscriptvalue_cast<Node>(context->thisObject()); if (node.isNull()) return engine->undefinedValue(); - // ### implement - return QScriptValue(QString()); + return node.d->data; } QScriptValue Text::prototype(QScriptEngine *engine) @@ -646,6 +644,7 @@ QScriptValue Document::load(QScriptEngine *engine, const QString &data) attr->name = a.name().toString(); attr->data = a.value().toString(); attr->parent = node; + A(attr->parent); node->attributes.append(attr); } } @@ -681,7 +680,9 @@ QScriptValue Document::load(QScriptEngine *engine, const QString &data) QScriptValue instance = engine->newObject(); instance.setPrototype(Document::prototype(engine)); - return engine->newVariant(instance, qVariantFromValue(Document(document))); + Node documentNode; + documentNode.d = document; + return engine->newVariant(instance, qVariantFromValue(documentNode)); } Node::Node() @@ -695,14 +696,6 @@ Node::Node(const Node &o) if (d) A(d); } -Node &Node::operator=(const Node &o) -{ - if (o.d) A(o.d); - if (d) D(d); - d = o.d; - return *this; -} - Node::~Node() { if (d) D(d); @@ -761,15 +754,6 @@ NamedNodeMap::NamedNodeMap(const NamedNodeMap &o) if (d) A(d); } -NamedNodeMap &NamedNodeMap::operator=(const NamedNodeMap &o) -{ - if (o.d) A(o.d); - if (d) D(d); - d = o.d; - list = o.list; - return *this; -} - NamedNodeMap::~NamedNodeMap() { if (d) D(d); @@ -780,20 +764,6 @@ bool NamedNodeMap::isNull() return d == 0; } -QScriptValue NodeList::item(QScriptContext *context, QScriptEngine *engine) -{ - NodeList list = qscriptvalue_cast<NodeList>(context->thisObject().data()); - if (list.isNull() || context->argumentCount() != 1) - return engine->undefinedValue(); - - qint32 index = context->argument(0).toInt32(); - - if (index >= list.d->children.count()) - return engine->undefinedValue(); // ### Exception - else - return Node::create(engine, list.d->children.at(index)); -} - QScriptValue NodeList::length(QScriptContext *context, QScriptEngine *engine) { NodeList list = qscriptvalue_cast<NodeList>(context->thisObject().data()); @@ -807,7 +777,6 @@ QScriptValue NodeList::prototype(QScriptEngine *engine) QScriptValue proto = engine->newObject(); proto.setProperty(QLatin1String("length"), engine->newFunction(length), QScriptValue::ReadOnly | QScriptValue::PropertyGetter); - proto.setProperty(QLatin1String("item"), engine->newFunction(item, 1), QScriptValue::ReadOnly); return proto; } @@ -842,14 +811,6 @@ NodeList::NodeList(const NodeList &o) if (d) A(d); } -NodeList &NodeList::operator=(const NodeList &o) -{ - if (o.d) A(o.d); - if (d) D(d); - d = o.d; - return *this; -} - NodeList::~NodeList() { if (d) D(d); @@ -920,81 +881,36 @@ QScriptValue NodeListClass::property(const QScriptValue &object, const QScriptSt return Node::create(engine(), list.d->children.at(id)); } -Document::Document() -: d(0) -{ -} - -Document::Document(DocumentImpl *data) -: d(data) -{ -} - -Document::Document(const Document &o) -: Node(o), d(o.d) -{ - if (d) A(d); -} - -Document &Document::operator=(const Document &o) -{ - if (o.d) A(o.d); - if (d) D(d); - d = o.d; - return *this; -} - -Document::~Document() -{ - if (d) D(d); -} - -bool Document::isNull() const -{ - return d == 0; -} - QScriptValue Document::documentElement(QScriptContext *context, QScriptEngine *engine) { - Document document = qscriptvalue_cast<Document>(context->thisObject()); - if (document.isNull()) return engine->undefinedValue(); - - if (!document.d->root) return engine->nullValue(); + Node document = qscriptvalue_cast<Node>(context->thisObject()); + if (document.isNull() || document.d->type != NodeImpl::Document) return engine->undefinedValue(); - return Node::create(engine, document.d->root); + return Node::create(engine, static_cast<DocumentImpl *>(document.d)->root); } QScriptValue Document::xmlStandalone(QScriptContext *context, QScriptEngine *engine) { - Document document = qscriptvalue_cast<Document>(context->thisObject()); - if (document.isNull()) return engine->undefinedValue(); - - if (context->argumentCount()) - document.d->isStandalone = context->argument(0).toBool(); + Node document = qscriptvalue_cast<Node>(context->thisObject()); + if (document.isNull() || document.d->type != NodeImpl::Document) return engine->undefinedValue(); - return QScriptValue(document.d->isStandalone); + return QScriptValue(static_cast<DocumentImpl *>(document.d)->isStandalone); } QScriptValue Document::xmlVersion(QScriptContext *context, QScriptEngine *engine) { - Document document = qscriptvalue_cast<Document>(context->thisObject()); - if (document.isNull()) return engine->undefinedValue(); + Node document = qscriptvalue_cast<Node>(context->thisObject()); + if (document.isNull() || document.d->type != NodeImpl::Document) return engine->undefinedValue(); - if (context->argumentCount()) - document.d->version = context->argument(0).toString(); - - return QScriptValue(document.d->version); + return QScriptValue(static_cast<DocumentImpl *>(document.d)->version); } QScriptValue Document::xmlEncoding(QScriptContext *context, QScriptEngine *engine) { - Document document = qscriptvalue_cast<Document>(context->thisObject()); - if (document.isNull()) return engine->undefinedValue(); - - if (context->argumentCount()) - document.d->encoding = context->argument(0).toString(); + Node document = qscriptvalue_cast<Node>(context->thisObject()); + if (document.isNull() || document.d->type != NodeImpl::Document) return engine->undefinedValue(); - return QScriptValue(document.d->encoding); + return QScriptValue(static_cast<DocumentImpl *>(document.d)->encoding); } class QmlXMLHttpRequest : public QObject diff --git a/tests/auto/declarative/qmlgraphicsgridview/data/gridview2.qml b/tests/auto/declarative/qmlgraphicsgridview/data/gridview2.qml new file mode 100644 index 0000000..62b5bd3 --- /dev/null +++ b/tests/auto/declarative/qmlgraphicsgridview/data/gridview2.qml @@ -0,0 +1,26 @@ +import Qt 4.6 + +GridView { + anchors.fill: parent + width: 320; height: 200 + cellWidth: 100; cellHeight: 100; cacheBuffer: 200; focus: true + keyNavigationWraps: true; highlightFollowsCurrentItem: false + + model: ListModel { + id: appModel + ListElement { lColor: "red" } + ListElement { lColor: "yellow" } + ListElement { lColor: "green" } + ListElement { lColor: "blue" } + } + + delegate: Item { + width: 100; height: 100 + Rectangle { + color: lColor; x: 4; y: 4 + width: 92; height: 92 + } + } + + highlight: Rectangle { width: 100; height: 100; color: "black" } +} diff --git a/tests/auto/declarative/qmlgraphicsgridview/data/gridview3.qml b/tests/auto/declarative/qmlgraphicsgridview/data/gridview3.qml new file mode 100644 index 0000000..b133d55 --- /dev/null +++ b/tests/auto/declarative/qmlgraphicsgridview/data/gridview3.qml @@ -0,0 +1,6 @@ +import Qt 4.6 + +GridView { + anchors.fill: parent + width: 320; height: 200 +} diff --git a/tests/auto/declarative/qmlgraphicsgridview/tst_qmlgraphicsgridview.cpp b/tests/auto/declarative/qmlgraphicsgridview/tst_qmlgraphicsgridview.cpp index d99b16f..d09aad7 100644 --- a/tests/auto/declarative/qmlgraphicsgridview/tst_qmlgraphicsgridview.cpp +++ b/tests/auto/declarative/qmlgraphicsgridview/tst_qmlgraphicsgridview.cpp @@ -38,6 +38,9 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ + +#include <qmlengine.h> +#include <qmlcomponent.h> #include <QtTest/QtTest> #include <private/qlistmodelinterface_p.h> #include <qmlview.h> @@ -60,6 +63,8 @@ private slots: void moved(); void currentIndex(); void changeFlow(); + void defaultValues(); + void properties(); private: QmlView *createView(const QString &filename); @@ -690,6 +695,52 @@ void tst_QmlGraphicsGridView::changeFlow() delete canvas; } +void tst_QmlGraphicsGridView::defaultValues() +{ + QmlEngine engine; + QmlComponent c(&engine, QUrl("file://" SRCDIR "/data/gridview3.qml")); + QmlGraphicsGridView *obj = qobject_cast<QmlGraphicsGridView*>(c.create()); + + QVERIFY(obj != 0); + QVERIFY(obj->model() == QVariant()); + QVERIFY(obj->delegate() == 0); + QCOMPARE(obj->currentIndex(), -1); + QVERIFY(obj->currentItem() == 0); + QCOMPARE(obj->count(), 0); + QVERIFY(obj->highlight() == 0); + QVERIFY(obj->highlightItem() == 0); + QCOMPARE(obj->highlightFollowsCurrentItem(), true); + QVERIFY(obj->flow() == 0); + QCOMPARE(obj->isWrapEnabled(), false); + QCOMPARE(obj->cacheBuffer(), 0); + QCOMPARE(obj->cellWidth(), 100); //### Should 100 be the default? + QCOMPARE(obj->cellHeight(), 100); + delete obj; +} + +void tst_QmlGraphicsGridView::properties() +{ + QmlEngine engine; + QmlComponent c(&engine, QUrl("file://" SRCDIR "/data/gridview2.qml")); + QmlGraphicsGridView *obj = qobject_cast<QmlGraphicsGridView*>(c.create()); + + QVERIFY(obj != 0); + QVERIFY(obj->model() != QVariant()); + QVERIFY(obj->delegate() != 0); + QCOMPARE(obj->currentIndex(), 0); + QVERIFY(obj->currentItem() != 0); + QCOMPARE(obj->count(), 4); + QVERIFY(obj->highlight() != 0); + QVERIFY(obj->highlightItem() != 0); + QCOMPARE(obj->highlightFollowsCurrentItem(), false); + QVERIFY(obj->flow() == 0); + QCOMPARE(obj->isWrapEnabled(), true); + QCOMPARE(obj->cacheBuffer(), 200); + QCOMPARE(obj->cellWidth(), 100); + QCOMPARE(obj->cellHeight(), 100); + delete obj; +} + QmlView *tst_QmlGraphicsGridView::createView(const QString &filename) { QmlView *canvas = new QmlView(0); diff --git a/tests/auto/declarative/qmlgraphicswebview/data/elements.html b/tests/auto/declarative/qmlgraphicswebview/data/elements.html new file mode 100644 index 0000000..9236867 --- /dev/null +++ b/tests/auto/declarative/qmlgraphicswebview/data/elements.html @@ -0,0 +1,14 @@ +<body leftmargin=0 topmargin=0> +<table width="300px" border=1 cellpadding=0 cellspacing=0> +<tr> +<td align=center width=25%%><p>A</p></td> +<td width=75% height=50px> + <table width=100% border=1 cellpadding=0 cellspacing=0> + <tr> + <td align=center width=50% height=50px><p>B</p></td> + <td align=center width=50% height=50px><p>C</p></td> + </tr> + </table> +</td> +</tr> +</table> diff --git a/tests/auto/declarative/qmlgraphicswebview/data/elements.qml b/tests/auto/declarative/qmlgraphicswebview/data/elements.qml new file mode 100644 index 0000000..7c030e6 --- /dev/null +++ b/tests/auto/declarative/qmlgraphicswebview/data/elements.qml @@ -0,0 +1,7 @@ +import Qt 4.6 + +WebView { + url: "elements.html" + width: 310 + height: 100 +} diff --git a/tests/auto/declarative/qmlgraphicswebview/tst_qmlgraphicswebview.cpp b/tests/auto/declarative/qmlgraphicswebview/tst_qmlgraphicswebview.cpp index 9032300..da43e68 100644 --- a/tests/auto/declarative/qmlgraphicswebview/tst_qmlgraphicswebview.cpp +++ b/tests/auto/declarative/qmlgraphicswebview/tst_qmlgraphicswebview.cpp @@ -43,6 +43,7 @@ #include <QtDeclarative/qmlengine.h> #include <QtDeclarative/qmlcomponent.h> #include <private/qmlgraphicswebview_p.h> +#include <private/qmlgraphicswebview_p_p.h> #include <private/qmlgraphicspositioners_p.h> #include <QtWebKit/qwebpage.h> #include <QtWebKit/qwebframe.h> @@ -57,8 +58,10 @@ public: private slots: void basicProperties(); + void settings(); void historyNav(); void multipleWindows(); + void elementAreaAt(); void loadError(); void setHtml(); void javaScript(); @@ -155,6 +158,71 @@ void tst_qmlgraphicswebview::basicProperties() QTRY_COMPARE(wv->progress(), 1.0); } +void tst_qmlgraphicswebview::settings() +{ + QmlComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/basic.qml")); + checkNoErrors(component); + QmlGraphicsWebView *wv = qobject_cast<QmlGraphicsWebView*>(component.create()); + QVERIFY(wv != 0); + QTRY_COMPARE(wv->progress(), 1.0); + + QmlGraphicsWebSettings *s = wv->settingsObject(); + + // merely tests that setting gets stored (in QWebSettings) + // behavioural tests are in WebKit. + for (int b=0; b<=1; ++b) { + bool on = !!b; + + s->setAutoLoadImages(on); + s->setDeveloperExtrasEnabled(on); + s->setJavaEnabled(on); + s->setJavascriptCanAccessClipboard(on); + s->setJavascriptCanOpenWindows(on); + s->setJavascriptEnabled(on); + s->setLinksIncludedInFocusChain(on); + s->setLocalContentCanAccessRemoteUrls(on); + s->setLocalStorageDatabaseEnabled(on); + s->setOfflineStorageDatabaseEnabled(on); + s->setOfflineWebApplicationCacheEnabled(on); + s->setPluginsEnabled(on); + s->setPrintElementBackgrounds(on); + s->setPrivateBrowsingEnabled(on); + s->setZoomTextOnly(on); + + QVERIFY(s->autoLoadImages() == on); + QVERIFY(s->developerExtrasEnabled() == on); + QVERIFY(s->javaEnabled() == on); + QVERIFY(s->javascriptCanAccessClipboard() == on); + QVERIFY(s->javascriptCanOpenWindows() == on); + QVERIFY(s->javascriptEnabled() == on); + QVERIFY(s->linksIncludedInFocusChain() == on); + QVERIFY(s->localContentCanAccessRemoteUrls() == on); + QVERIFY(s->localStorageDatabaseEnabled() == on); + QVERIFY(s->offlineStorageDatabaseEnabled() == on); + QVERIFY(s->offlineWebApplicationCacheEnabled() == on); + QVERIFY(s->pluginsEnabled() == on); + QVERIFY(s->printElementBackgrounds() == on); + QVERIFY(s->privateBrowsingEnabled() == on); + QVERIFY(s->zoomTextOnly() == on); + + QVERIFY(s->property("autoLoadImages") == on); + QVERIFY(s->property("developerExtrasEnabled") == on); + QVERIFY(s->property("javaEnabled") == on); + QVERIFY(s->property("javascriptCanAccessClipboard") == on); + QVERIFY(s->property("javascriptCanOpenWindows") == on); + QVERIFY(s->property("javascriptEnabled") == on); + QVERIFY(s->property("linksIncludedInFocusChain") == on); + QVERIFY(s->property("localContentCanAccessRemoteUrls") == on); + QVERIFY(s->property("localStorageDatabaseEnabled") == on); + QVERIFY(s->property("offlineStorageDatabaseEnabled") == on); + QVERIFY(s->property("offlineWebApplicationCacheEnabled") == on); + QVERIFY(s->property("pluginsEnabled") == on); + QVERIFY(s->property("printElementBackgrounds") == on); + QVERIFY(s->property("privateBrowsingEnabled") == on); + QVERIFY(s->property("zoomTextOnly") == on); + } +} + void tst_qmlgraphicswebview::historyNav() { QmlComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/basic.qml")); @@ -258,6 +326,21 @@ void tst_qmlgraphicswebview::setHtml() QCOMPARE(wv->html(),QString("<html><head></head><body><p>This is a <b>string</b> set on the WebView</p></body></html>")); } +void tst_qmlgraphicswebview::elementAreaAt() +{ + QmlComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/elements.qml")); + checkNoErrors(component); + QmlGraphicsWebView *wv = qobject_cast<QmlGraphicsWebView*>(component.create()); + QVERIFY(wv != 0); + QTRY_COMPARE(wv->progress(), 1.0); + + QCOMPARE(wv->elementAreaAt(40,30,100,100),QRect(1,1,75,54)); // Area A in data/elements.html + QCOMPARE(wv->elementAreaAt(130,30,200,100),QRect(78,3,110,50)); // Area B + QCOMPARE(wv->elementAreaAt(40,30,400,400),QRect(0,0,310,100)); // Whole view + QCOMPARE(wv->elementAreaAt(130,30,280,280),QRect(76,1,223,54)); // Area BC + QCOMPARE(wv->elementAreaAt(130,30,400,400),QRect(0,0,310,100)); // Whole view +} + void tst_qmlgraphicswebview::javaScript() { QmlComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/javaScript.qml")); diff --git a/tests/auto/declarative/qmllanguage/data/cppnamespace.2.qml b/tests/auto/declarative/qmllanguage/data/cppnamespace.2.qml new file mode 100644 index 0000000..e3b32ca --- /dev/null +++ b/tests/auto/declarative/qmllanguage/data/cppnamespace.2.qml @@ -0,0 +1,5 @@ +import Test 1.0 + +MySecondNamespacedType { + list: [ MyNamespacedType {} ] +} diff --git a/tests/auto/declarative/qmlpropertymap/tst_qmlpropertymap.cpp b/tests/auto/declarative/qmlpropertymap/tst_qmlpropertymap.cpp index ece6030..fe2658c 100644 --- a/tests/auto/declarative/qmlpropertymap/tst_qmlpropertymap.cpp +++ b/tests/auto/declarative/qmlpropertymap/tst_qmlpropertymap.cpp @@ -41,7 +41,7 @@ #include <qtest.h> #include <QtDeclarative/qmlengine.h> #include <QtDeclarative/qmlcontext.h> -#include <private/qmlpropertymap_p.h> +#include <QtDeclarative/qmlpropertymap.h> #include <QtDeclarative/qmlcomponent.h> #include <private/qmlgraphicstext_p.h> #include <QSignalSpy> diff --git a/tests/auto/declarative/qmlqt/data/md5.qml b/tests/auto/declarative/qmlqt/data/md5.qml new file mode 100644 index 0000000..3c96a6b --- /dev/null +++ b/tests/auto/declarative/qmlqt/data/md5.qml @@ -0,0 +1,6 @@ +import Qt 4.6 + +Object { + property string test1: Qt.md5() + property string test2: Qt.md5("Hello World") +} diff --git a/tests/auto/declarative/qmlqt/tst_qmlqt.cpp b/tests/auto/declarative/qmlqt/tst_qmlqt.cpp index e9c9052..13f4904 100644 --- a/tests/auto/declarative/qmlqt/tst_qmlqt.cpp +++ b/tests/auto/declarative/qmlqt/tst_qmlqt.cpp @@ -46,6 +46,7 @@ #include <QmlComponent> #include <QDir> #include <QVector3D> +#include <QCryptographicHash> class tst_qmlqt : public QObject { @@ -67,6 +68,7 @@ private slots: void closestAngle(); void playSound(); void openUrlExternally(); + void md5(); private: QmlEngine engine; @@ -279,6 +281,19 @@ void tst_qmlqt::openUrlExternally() QVERIFY(false); } +void tst_qmlqt::md5() +{ + QmlComponent component(&engine, TEST_FILE("md5.qml")); + QObject *object = component.create(); + QVERIFY(object != 0); + + QCOMPARE(object->property("test1").toString(), QLatin1String(QCryptographicHash::hash(QByteArray(), QCryptographicHash::Md5).toHex())); + QCOMPARE(object->property("test2").toString(), QLatin1String(QCryptographicHash::hash("Hello World", QCryptographicHash::Md5).toHex())); + + delete object; +} + + QTEST_MAIN(tst_qmlqt) #include "tst_qmlqt.moc" diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.0.png b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.0.png Binary files differindex fe81eef..3021d58 100644 --- a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.0.png +++ b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.0.png diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.1.png b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.1.png Binary files differindex 9670674..baeb1a6 100644 --- a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.1.png +++ b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.1.png diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.2.png b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.2.png Binary files differindex e44eba1..2d0c731 100644 --- a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.2.png +++ b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.2.png diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.3.png b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.3.png Binary files differindex 78fce9d..af9ed05 100644 --- a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.3.png +++ b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.3.png diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.4.png b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.4.png Binary files differindex c86fdbb..0b0945d 100644 --- a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.4.png +++ b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.4.png diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.5.png b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.5.png Binary files differindex 96ef090..618ae0c 100644 --- a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.5.png +++ b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.5.png diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.6.png b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.6.png Binary files differindex e0aab58..fc31262 100644 --- a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.6.png +++ b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.6.png diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.7.png b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.7.png Binary files differindex b36ea46..22291ac 100644 --- a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.7.png +++ b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.7.png diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.8.png b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.8.png Binary files differindex 366cf46..3021d58 100644 --- a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.8.png +++ b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.8.png diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.qml b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.qml index e3a04ee..fb5f1fb 100644 --- a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.qml +++ b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.qml @@ -84,193 +84,161 @@ VisualTest { msec: 320 hash: "33d81c39d16c6a326012499796e50e03" } - Key { - type: 6 - key: 16777236 - modifiers: 536870912 - text: "1d" - autorep: false - count: 1 - } Frame { msec: 336 hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 352 - hash: "aaec7184a27e6700d96ffff376b8fa53" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 368 - hash: "3fa3a890a4ff4a59336a9a2d478d0dde" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 384 - hash: "3711c6c2f4f9aba7f2c72bd1f1d85016" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 400 - hash: "23da2f9a800b805ce7b77ff08218907d" - } - Key { - type: 7 - key: 16777236 - modifiers: 536870912 - text: "1d" - autorep: false - count: 1 + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 416 - hash: "12e4bc953b06cdaad0720f87fb96a37e" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 432 - hash: "46e69658bda69bab202a2790a76ba1cd" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 448 - hash: "44608e67c69b92ccbb45e119e1158fe3" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 464 - hash: "97a309b47017d38294644a486a7ce68e" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 480 - hash: "41f42b50b22e0496c8aca5019b24b9cb" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 496 - hash: "8603ea1cb60c804563f50bc41c0180fe" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 512 - hash: "e29777fa70daafe9640c6e9bb7bd63d6" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 528 - hash: "2c4c360320f527e99fee799e68c2c0aa" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 544 - hash: "0d30916c7e05ff8609af5894f47a89bb" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 560 - hash: "0d30916c7e05ff8609af5894f47a89bb" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 576 - hash: "0d30916c7e05ff8609af5894f47a89bb" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 592 - hash: "0d30916c7e05ff8609af5894f47a89bb" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 608 - hash: "0d30916c7e05ff8609af5894f47a89bb" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 624 - hash: "0d30916c7e05ff8609af5894f47a89bb" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 640 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Key { - type: 6 - key: 16777236 - modifiers: 536870912 - text: "1d" - autorep: false - count: 1 + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 656 - hash: "0d30916c7e05ff8609af5894f47a89bb" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 672 - hash: "7c2ab6be73f21b82ca99503464ec214b" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 688 - hash: "d481669ee8d30716aff5321dbc2199bb" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 704 - hash: "11cc48f29948e054af9c61e02c1a77c8" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 720 - hash: "26f3f27f601739090c260cf3674b726a" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 736 - hash: "bb676e48336cf88fb785b8d2d3f92886" - } - Key { - type: 7 - key: 16777236 - modifiers: 536870912 - text: "1d" - autorep: false - count: 1 + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 752 - hash: "2a220616f82b393c106567c2dbd8fdae" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 768 - hash: "12c16f3219a0c2c0955038e748706a58" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 784 - hash: "e2a522b7362bfc75744912cb27438017" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 800 - hash: "b2826fa90fe5a64f53135f542a1f11b8" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 816 - hash: "046d8f44e9b3c982788ff016f61c919b" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 832 - hash: "b30c2fa8698819cb6c48b447a35dd0bc" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 848 - hash: "02b39d806f6f11738e00d51c2918d2e5" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 864 - hash: "0199fee9ba18ebe4288415daf0900962" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 880 - hash: "0199fee9ba18ebe4288415daf0900962" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 896 - hash: "0199fee9ba18ebe4288415daf0900962" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 912 - hash: "0199fee9ba18ebe4288415daf0900962" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 928 - hash: "0199fee9ba18ebe4288415daf0900962" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 944 - hash: "0199fee9ba18ebe4288415daf0900962" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 960 @@ -278,243 +246,243 @@ VisualTest { } Frame { msec: 976 - hash: "0199fee9ba18ebe4288415daf0900962" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 992 - hash: "0199fee9ba18ebe4288415daf0900962" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 1008 - hash: "0199fee9ba18ebe4288415daf0900962" - } - Key { - type: 6 - key: 16777236 - modifiers: 536870912 - text: "1d" - autorep: false - count: 1 + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 1024 - hash: "0199fee9ba18ebe4288415daf0900962" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 1040 - hash: "8109dd7307290cf1322ee3a36759b491" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 1056 - hash: "035225d5881b29d9ccd97a24997b760b" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 1072 - hash: "a312bc0741af4eea147a4fe6453907df" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 1088 - hash: "bb4228997710bae15708bd9cd78358de" - } - Key { - type: 7 - key: 16777236 - modifiers: 536870912 - text: "1d" - autorep: false - count: 1 + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 1104 - hash: "08116c8357f93cb6074cebd5a811cf1d" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 1120 - hash: "a1cb30e98ab2e805d05b904f765bb844" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 1136 - hash: "547502f1c738cf0cbfaff2c64a3a5c55" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 1152 - hash: "019ce6a2812563842d98aa3f67a0562a" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 1168 - hash: "d8809cd87b068cc6b22e34c82eced2e1" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 1184 - hash: "7b14f17ed6bc8adf291f1a02df6d7868" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 1200 - hash: "17bd866b076c37218fd34502bd1ba533" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 1216 - hash: "515987a2a440977d54e766253a251788" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 1232 - hash: "592f34925c9505c5bd6d30e194bdb732" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 1248 - hash: "f85950afce4786c22392cd53cbfc0a21" + hash: "33d81c39d16c6a326012499796e50e03" + } + Key { + type: 6 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 } Frame { msec: 1264 - hash: "e1d64ba993fc788ed99869e167578c3c" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 1280 - hash: "7b83968aa2f9526df3d69fa8cf2307e3" + hash: "aaec7184a27e6700d96ffff376b8fa53" } Frame { msec: 1296 - hash: "19b9d0493823862f52b9a1dd4ee4ebed" + hash: "3fa3a890a4ff4a59336a9a2d478d0dde" } Frame { msec: 1312 - hash: "f7a2ec0ee9ad8a2ee4c621b42b3dc068" + hash: "3711c6c2f4f9aba7f2c72bd1f1d85016" } Frame { msec: 1328 - hash: "aaea6fba5aa361b5aa40ee5cb6c98bb1" + hash: "23da2f9a800b805ce7b77ff08218907d" } Frame { msec: 1344 - hash: "e263be3561491c41fe62ef94a760d305" + hash: "12e4bc953b06cdaad0720f87fb96a37e" } Frame { msec: 1360 - hash: "d9650a680ac028679ec2d347a2f679cb" + hash: "46e69658bda69bab202a2790a76ba1cd" + } + Key { + type: 7 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 } Frame { msec: 1376 - hash: "28a049b2e7077a6276a6924854c34f1e" + hash: "44608e67c69b92ccbb45e119e1158fe3" } Frame { msec: 1392 - hash: "6761dfcf62280d8f77e22f48e83f2779" + hash: "97a309b47017d38294644a486a7ce68e" } Frame { msec: 1408 - hash: "724feb5f2a577b25e53ea504deca5255" + hash: "41f42b50b22e0496c8aca5019b24b9cb" } Frame { msec: 1424 - hash: "1829f839426920fbd34ebc1af92a44f5" + hash: "8603ea1cb60c804563f50bc41c0180fe" } Frame { msec: 1440 - hash: "1829f839426920fbd34ebc1af92a44f5" + hash: "e29777fa70daafe9640c6e9bb7bd63d6" } Frame { msec: 1456 - hash: "1829f839426920fbd34ebc1af92a44f5" + hash: "2c4c360320f527e99fee799e68c2c0aa" } Frame { msec: 1472 - hash: "1829f839426920fbd34ebc1af92a44f5" + hash: "0d30916c7e05ff8609af5894f47a89bb" } Frame { msec: 1488 - hash: "1829f839426920fbd34ebc1af92a44f5" + hash: "0d30916c7e05ff8609af5894f47a89bb" } Frame { msec: 1504 - hash: "1829f839426920fbd34ebc1af92a44f5" + hash: "0d30916c7e05ff8609af5894f47a89bb" } Frame { msec: 1520 - hash: "1829f839426920fbd34ebc1af92a44f5" + hash: "0d30916c7e05ff8609af5894f47a89bb" } Frame { msec: 1536 - hash: "1829f839426920fbd34ebc1af92a44f5" - } - Key { - type: 6 - key: 16777236 - modifiers: 536870912 - text: "1d" - autorep: false - count: 1 + hash: "0d30916c7e05ff8609af5894f47a89bb" } Frame { msec: 1552 - hash: "1829f839426920fbd34ebc1af92a44f5" + hash: "0d30916c7e05ff8609af5894f47a89bb" } Frame { msec: 1568 - hash: "724feb5f2a577b25e53ea504deca5255" + hash: "0d30916c7e05ff8609af5894f47a89bb" } Frame { msec: 1584 - hash: "6761dfcf62280d8f77e22f48e83f2779" + hash: "0d30916c7e05ff8609af5894f47a89bb" + } + Key { + type: 6 + key: 16777237 + modifiers: 536870912 + text: "1f" + autorep: false + count: 1 } Frame { msec: 1600 - hash: "28a049b2e7077a6276a6924854c34f1e" + hash: "0d30916c7e05ff8609af5894f47a89bb" } Frame { msec: 1616 - hash: "d9650a680ac028679ec2d347a2f679cb" + hash: "17027b7c099b11cb5382f30dbbd1e647" } Frame { msec: 1632 - hash: "e263be3561491c41fe62ef94a760d305" - } - Key { - type: 7 - key: 16777236 - modifiers: 536870912 - text: "1d" - autorep: false - count: 1 + hash: "0e17461a4ca843f9903b7f03e99a0b00" } Frame { msec: 1648 - hash: "aaea6fba5aa361b5aa40ee5cb6c98bb1" + hash: "a5e61901920553e59892fa405beea15a" } Frame { msec: 1664 - hash: "f7a2ec0ee9ad8a2ee4c621b42b3dc068" + hash: "310eaf71fe8d3807606e58a666c65ccd" } Frame { msec: 1680 - hash: "19b9d0493823862f52b9a1dd4ee4ebed" + hash: "76f556d05fb77082f33eb1836c10587a" + } + Key { + type: 7 + key: 16777237 + modifiers: 536870912 + text: "1f" + autorep: false + count: 1 } Frame { msec: 1696 - hash: "7b83968aa2f9526df3d69fa8cf2307e3" + hash: "4e7e4b7790a96396e7ea3533b5c32ed9" } Frame { msec: 1712 - hash: "e1d64ba993fc788ed99869e167578c3c" + hash: "b065287b6490f58ca6f0e9eb2027cf20" } Frame { msec: 1728 - hash: "f85950afce4786c22392cd53cbfc0a21" + hash: "907cd9dbdffa1d395caaabd466dc8e86" } Frame { msec: 1744 - hash: "592f34925c9505c5bd6d30e194bdb732" + hash: "3b144e5b4867328beafa3020ce931480" } Frame { msec: 1760 - hash: "77d5193bc5f53fe5cb98a236c55f841e" + hash: "b59b2b60b7d55424b61b1b0ed3e227b8" } Frame { msec: 1776 - hash: "77d5193bc5f53fe5cb98a236c55f841e" + hash: "4032e934871b315b68c7c2abea42efee" } Frame { msec: 1792 - hash: "77d5193bc5f53fe5cb98a236c55f841e" + hash: "8f80127b2f8d6fc10aa84062544cc381" } Frame { msec: 1808 @@ -540,14 +508,6 @@ VisualTest { msec: 1888 hash: "77d5193bc5f53fe5cb98a236c55f841e" } - Key { - type: 6 - key: 16777236 - modifiers: 536870912 - text: "1d" - autorep: false - count: 1 - } Frame { msec: 1904 hash: "77d5193bc5f53fe5cb98a236c55f841e" @@ -558,22 +518,30 @@ VisualTest { } Frame { msec: 1936 - hash: "714711d7382ef8bba5fb39e2e44bd59c" + hash: "77d5193bc5f53fe5cb98a236c55f841e" } Frame { msec: 1952 - hash: "63deed0356e761f94f88be18a7d10053" + hash: "77d5193bc5f53fe5cb98a236c55f841e" } Frame { msec: 1968 - hash: "d5b4fc1b568a4a1b63a91b422272c704" + hash: "77d5193bc5f53fe5cb98a236c55f841e" } Frame { msec: 1984 - hash: "b6d2c80925cc6b4b7b297bd6ee903c7c" + hash: "77d5193bc5f53fe5cb98a236c55f841e" + } + Frame { + msec: 2000 + hash: "77d5193bc5f53fe5cb98a236c55f841e" + } + Frame { + msec: 2016 + hash: "77d5193bc5f53fe5cb98a236c55f841e" } Key { - type: 7 + type: 6 key: 16777236 modifiers: 536870912 text: "1d" @@ -581,72 +549,64 @@ VisualTest { count: 1 } Frame { - msec: 2000 - hash: "38117482196360353586cb7ace593894" - } - Frame { - msec: 2016 - hash: "2301f3a148bf4e311cc8ce011ddf65f8" - } - Frame { msec: 2032 - hash: "2a4982a0961f89a15618f8d4c2081f5a" + hash: "77d5193bc5f53fe5cb98a236c55f841e" } Frame { msec: 2048 - hash: "acf8666d6a8a29925f3895aa8e93f713" + hash: "a45d2630872a14541f39b862e15ff461" } Frame { msec: 2064 - hash: "967ed026bc92a6d2747c5227105543a6" + hash: "714711d7382ef8bba5fb39e2e44bd59c" } Frame { msec: 2080 - hash: "ff72f3fb95f25990c99c1c14cfef57da" + hash: "63deed0356e761f94f88be18a7d10053" } Frame { msec: 2096 - hash: "0874a4f863596c3860dcf5b1f7f6ceb2" + hash: "d5b4fc1b568a4a1b63a91b422272c704" } Frame { msec: 2112 - hash: "520445d8619ad9bdde0db0e61f17567c" + hash: "b6d2c80925cc6b4b7b297bd6ee903c7c" + } + Key { + type: 7 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 } Frame { msec: 2128 - hash: "520445d8619ad9bdde0db0e61f17567c" + hash: "38117482196360353586cb7ace593894" } Frame { msec: 2144 - hash: "520445d8619ad9bdde0db0e61f17567c" + hash: "2301f3a148bf4e311cc8ce011ddf65f8" } Frame { msec: 2160 - hash: "520445d8619ad9bdde0db0e61f17567c" + hash: "2a4982a0961f89a15618f8d4c2081f5a" } Frame { msec: 2176 - hash: "520445d8619ad9bdde0db0e61f17567c" + hash: "acf8666d6a8a29925f3895aa8e93f713" } Frame { msec: 2192 - hash: "520445d8619ad9bdde0db0e61f17567c" + hash: "967ed026bc92a6d2747c5227105543a6" } Frame { msec: 2208 - hash: "520445d8619ad9bdde0db0e61f17567c" + hash: "ff72f3fb95f25990c99c1c14cfef57da" } Frame { msec: 2224 - hash: "520445d8619ad9bdde0db0e61f17567c" - } - Key { - type: 6 - key: 16777236 - modifiers: 536870912 - text: "1d" - autorep: false - count: 1 + hash: "0874a4f863596c3860dcf5b1f7f6ceb2" } Frame { msec: 2240 @@ -654,175 +614,191 @@ VisualTest { } Frame { msec: 2256 - hash: "38e916aaa015643c8aa1a6b38b2ded11" + hash: "520445d8619ad9bdde0db0e61f17567c" } Frame { msec: 2272 - hash: "306e0c5da54956ae86664631254abaff" + hash: "520445d8619ad9bdde0db0e61f17567c" } Frame { msec: 2288 - hash: "6eb41a7488b2170ce804a323d04ee3ac" + hash: "520445d8619ad9bdde0db0e61f17567c" } Frame { msec: 2304 - hash: "53504cdfe0329c75167018d20aac4802" + hash: "520445d8619ad9bdde0db0e61f17567c" } Frame { msec: 2320 - hash: "04e2d7df00e043ee8420c12666e74cc3" - } - Key { - type: 7 - key: 16777236 - modifiers: 536870912 - text: "1d" - autorep: false - count: 1 + hash: "520445d8619ad9bdde0db0e61f17567c" } Frame { msec: 2336 - hash: "504baf54d9ea564beaa38dd1721d0d7f" + hash: "520445d8619ad9bdde0db0e61f17567c" } Frame { msec: 2352 - hash: "f1a159ad7d290ddd9aeb2a82c8daa005" + hash: "520445d8619ad9bdde0db0e61f17567c" } Frame { msec: 2368 - hash: "c2f8cdd35514a15eab07b58e95a42595" + hash: "520445d8619ad9bdde0db0e61f17567c" + } + Key { + type: 6 + key: 16777237 + modifiers: 536870912 + text: "1f" + autorep: false + count: 1 } Frame { msec: 2384 - hash: "d81105c661d57fefac2719c3f2e72195" + hash: "520445d8619ad9bdde0db0e61f17567c" } Frame { msec: 2400 - hash: "50c9cf40900cb5cca541b2f4f5c6f49d" + hash: "7c4bbf0423d63d7642d218cac56a6215" } Frame { msec: 2416 - hash: "83ee765caeb775cf858735f2aab5712b" + hash: "e8c77dbc89721b51549f8d46453fe09d" } Frame { msec: 2432 - hash: "3098d35f80f8c7a87b470b9dea86b8e5" + hash: "7953503590b639872ac12215695e8cea" } Frame { msec: 2448 - hash: "95419b34afde55f67e48686327be2bff" + hash: "edaee946a2e25fed6de9acfda0d44a14" } Frame { msec: 2464 - hash: "fcc551cb390b8727147b5e8cdca4d589" + hash: "4996ef39bb0122c10d65f8dd8674b386" } Frame { msec: 2480 - hash: "c49cc92b98904e7d27d45ac0ae3cc4a2" + hash: "ede7c6ca9d6deb7819c3715e98755d6e" } Frame { msec: 2496 - hash: "336c908463796547dbf5a6459c56b62e" + hash: "e703fad2fcf9244ec9865200c7d17ce3" + } + Key { + type: 7 + key: 16777237 + modifiers: 536870912 + text: "1f" + autorep: false + count: 1 } Frame { msec: 2512 - hash: "94887e3dd76236972643db277943ea53" + hash: "e2bfc16fd893bb3eb0e5df89a0169af3" } Frame { msec: 2528 - hash: "fad61012614f65bc48e87a60cc50d31e" + hash: "cfd0eb2bc378bd46644f3f7820150685" } Frame { msec: 2544 - hash: "40e6032e6352e62bf7ceea8c75f5d2ff" + hash: "442b05b04762c2bcda291aaa0341398e" } Frame { msec: 2560 - hash: "9f382f5b18fe7ae619e6a6ec0634541b" + hash: "55842a6503057eea98e2075ef160873e" } Frame { msec: 2576 - hash: "9ccda1ba0f636e6abee5ca4a005a9117" + hash: "730f80233dacf1119660a76d2a34c5fc" } Frame { msec: 2592 - hash: "b10afc5bf160b01d5567f7de26275460" + hash: "d4a48ee79a18cc5c0bc123fbb40c3efd" } Frame { msec: 2608 - hash: "6e67fdc1773c6db11ca2827db4e12c64" + hash: "d4a48ee79a18cc5c0bc123fbb40c3efd" } Frame { msec: 2624 - hash: "fc2bd8e7b3446c6c2da2f4ead51e4318" + hash: "d4a48ee79a18cc5c0bc123fbb40c3efd" } Frame { msec: 2640 - hash: "ac0295495345987d1e000f6bb2436927" + hash: "d4a48ee79a18cc5c0bc123fbb40c3efd" } Frame { msec: 2656 - hash: "ac0295495345987d1e000f6bb2436927" + hash: "d4a48ee79a18cc5c0bc123fbb40c3efd" } Frame { msec: 2672 - hash: "ac0295495345987d1e000f6bb2436927" + hash: "d4a48ee79a18cc5c0bc123fbb40c3efd" } Frame { msec: 2688 - hash: "ac0295495345987d1e000f6bb2436927" + hash: "d4a48ee79a18cc5c0bc123fbb40c3efd" } Frame { msec: 2704 - hash: "ac0295495345987d1e000f6bb2436927" + hash: "d4a48ee79a18cc5c0bc123fbb40c3efd" } Frame { msec: 2720 - hash: "ac0295495345987d1e000f6bb2436927" + hash: "d4a48ee79a18cc5c0bc123fbb40c3efd" } Frame { msec: 2736 - hash: "ac0295495345987d1e000f6bb2436927" + hash: "d4a48ee79a18cc5c0bc123fbb40c3efd" + } + Key { + type: 6 + key: 16777234 + modifiers: 536870912 + text: "1c" + autorep: false + count: 1 } Frame { msec: 2752 - hash: "ac0295495345987d1e000f6bb2436927" + hash: "d4a48ee79a18cc5c0bc123fbb40c3efd" } Frame { msec: 2768 - hash: "ac0295495345987d1e000f6bb2436927" + hash: "4d04c12bc7fab0b22df3135bf3a87a22" } Frame { msec: 2784 - hash: "ac0295495345987d1e000f6bb2436927" + hash: "fdca5a3f8312452feba7f37b1caa6419" } Frame { msec: 2800 - hash: "ac0295495345987d1e000f6bb2436927" + hash: "97b955e0f8cde30299b238d9ac0eb308" } Frame { msec: 2816 - hash: "ac0295495345987d1e000f6bb2436927" + hash: "19664de1a738458810896959ba4087ad" } Frame { msec: 2832 - hash: "ac0295495345987d1e000f6bb2436927" + hash: "4f9a4b6de6a2969e4639076a8f7c258e" + } + Key { + type: 7 + key: 16777234 + modifiers: 536870912 + text: "1c" + autorep: false + count: 1 } Frame { msec: 2848 - hash: "ac0295495345987d1e000f6bb2436927" + hash: "a10f18aa686be2681a48082ec9f01df7" } Frame { msec: 2864 - hash: "ac0295495345987d1e000f6bb2436927" - } - Key { - type: 6 - key: 16777236 - modifiers: 536870912 - text: "1d" - autorep: false - count: 1 + hash: "b8f39a6cca377dd573429d879286dd63" } Frame { msec: 2880 @@ -830,279 +806,279 @@ VisualTest { } Frame { msec: 2896 - hash: "fc2bd8e7b3446c6c2da2f4ead51e4318" + hash: "3301e52a46efbc49882401c77853ffde" } Frame { msec: 2912 - hash: "6e67fdc1773c6db11ca2827db4e12c64" + hash: "0c614597f17496ebc701efe7b0c1fbb6" } Frame { msec: 2928 - hash: "b10afc5bf160b01d5567f7de26275460" + hash: "6dda2d6b034c932e279cf216c9b3e6ad" } Frame { msec: 2944 - hash: "9ccda1ba0f636e6abee5ca4a005a9117" + hash: "7bf08cd5fe3ad3f83bbef28f452e0545" } Frame { msec: 2960 - hash: "9f382f5b18fe7ae619e6a6ec0634541b" - } - Key { - type: 7 - key: 16777236 - modifiers: 536870912 - text: "1d" - autorep: false - count: 1 + hash: "1b7ebcf0e3d68e429cb04966120985e5" } Frame { msec: 2976 - hash: "40e6032e6352e62bf7ceea8c75f5d2ff" + hash: "1b7ebcf0e3d68e429cb04966120985e5" } Frame { msec: 2992 - hash: "fad61012614f65bc48e87a60cc50d31e" + hash: "1b7ebcf0e3d68e429cb04966120985e5" } Frame { msec: 3008 - hash: "94887e3dd76236972643db277943ea53" + hash: "1b7ebcf0e3d68e429cb04966120985e5" } Frame { msec: 3024 - hash: "336c908463796547dbf5a6459c56b62e" + hash: "1b7ebcf0e3d68e429cb04966120985e5" + } + Key { + type: 6 + key: 16777237 + modifiers: 536870912 + text: "1f" + autorep: false + count: 1 } Frame { msec: 3040 - hash: "c49cc92b98904e7d27d45ac0ae3cc4a2" + hash: "1b7ebcf0e3d68e429cb04966120985e5" } Frame { msec: 3056 - hash: "fcc551cb390b8727147b5e8cdca4d589" + hash: "0fe7d46e7c18ce7bb5a098c5c662d557" } Frame { msec: 3072 - hash: "95419b34afde55f67e48686327be2bff" + hash: "cd5df541cc1ed545bc27da9e4a937261" } Frame { msec: 3088 - hash: "1b7ebcf0e3d68e429cb04966120985e5" + hash: "35762467b83fee1870cff9b0436994d3" } Frame { msec: 3104 - hash: "1b7ebcf0e3d68e429cb04966120985e5" + hash: "75a620b42caabf5b1576041dbd4c2808" } Frame { msec: 3120 - hash: "1b7ebcf0e3d68e429cb04966120985e5" + hash: "f1b06290a6cbd48b8d3d4ce1e42ed754" } Frame { msec: 3136 - hash: "1b7ebcf0e3d68e429cb04966120985e5" - } - Key { - type: 6 - key: 16777236 - modifiers: 536870912 - text: "1d" - autorep: false - count: 1 + hash: "8e1a50dc082828587a4656117760a852" } Frame { msec: 3152 - hash: "1b7ebcf0e3d68e429cb04966120985e5" + hash: "aae8e5f166e736040138d8e222a844dd" } Frame { msec: 3168 - hash: "9d5ee2458abc5dfd56abfd42c906270f" + hash: "f69e5cf2bcb26fe49126776695b0b7e0" + } + Key { + type: 7 + key: 16777237 + modifiers: 536870912 + text: "1f" + autorep: false + count: 1 } Frame { msec: 3184 - hash: "c88c120d64171197e4050cb73b56a766" + hash: "7b482fece0255ea07496ef0545b008a2" } Frame { msec: 3200 - hash: "2ce6de97a8dac08b338e1ce9f20d55f4" + hash: "3f96eaebfebe8d4eeb347b201b59ab11" } Frame { msec: 3216 - hash: "99b2d2edbcacd660776ea62e1556043c" + hash: "9943626d2226c3be711c8213906133f0" } Frame { msec: 3232 - hash: "1b60b4f0350304899d4dc787a9dc7450" + hash: "fd5fd8177b3957c27f1de0d95621351a" } Frame { msec: 3248 - hash: "c037da8bc97ba8c391e616ff2b3aadd3" - } - Key { - type: 7 - key: 16777236 - modifiers: 536870912 - text: "1d" - autorep: false - count: 1 + hash: "506283ccfe9670633ce0bf60b437b37b" } Frame { msec: 3264 - hash: "cbb9a6cc0df3e76f46adca01e1ad2099" + hash: "506283ccfe9670633ce0bf60b437b37b" } Frame { msec: 3280 - hash: "9e2cc9298333f65cbc020c20665e01a9" + hash: "506283ccfe9670633ce0bf60b437b37b" } Frame { msec: 3296 - hash: "df31529d31b9f81aeeda0c249d0e0f2b" + hash: "506283ccfe9670633ce0bf60b437b37b" } Frame { msec: 3312 - hash: "c7034a0e8956c9f483c128a934d68fa7" + hash: "506283ccfe9670633ce0bf60b437b37b" } Frame { msec: 3328 - hash: "f0161b0d27757137bcb7fd3e6db2280c" + hash: "506283ccfe9670633ce0bf60b437b37b" } Frame { msec: 3344 - hash: "90dcbe13ea318bf970629bfd2d580a8d" + hash: "506283ccfe9670633ce0bf60b437b37b" } Frame { msec: 3360 - hash: "d4a48ee79a18cc5c0bc123fbb40c3efd" + hash: "506283ccfe9670633ce0bf60b437b37b" } Frame { msec: 3376 - hash: "d4a48ee79a18cc5c0bc123fbb40c3efd" + hash: "506283ccfe9670633ce0bf60b437b37b" + } + Key { + type: 6 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 } Frame { msec: 3392 - hash: "d4a48ee79a18cc5c0bc123fbb40c3efd" + hash: "506283ccfe9670633ce0bf60b437b37b" } Frame { msec: 3408 - hash: "d4a48ee79a18cc5c0bc123fbb40c3efd" + hash: "fb437f6c23561092a124e498f1604ff2" } Frame { msec: 3424 - hash: "d4a48ee79a18cc5c0bc123fbb40c3efd" + hash: "402ba144bbb7260eec4553e68eb35cda" } Frame { msec: 3440 - hash: "d4a48ee79a18cc5c0bc123fbb40c3efd" + hash: "76a983de9e85e0c81dfb8908252bd6c9" } Frame { msec: 3456 - hash: "d4a48ee79a18cc5c0bc123fbb40c3efd" - } - Key { - type: 6 - key: 16777236 - modifiers: 536870912 - text: "1d" - autorep: false - count: 1 + hash: "09219f55fae47a0afed887ebf68a36bc" } Frame { msec: 3472 - hash: "d4a48ee79a18cc5c0bc123fbb40c3efd" + hash: "344e81cc262093facef2f6a235a734dc" } Frame { msec: 3488 - hash: "55050bc52a955a427e6d845f4c7adea3" + hash: "8f1c5544eb537555b1c59a377b15e31d" } Frame { msec: 3504 - hash: "4a333ddc220f8da4f0fd8dfc7c0395a4" + hash: "606b9bb549fe2e4bbd09d67b7dea0d1a" + } + Key { + type: 7 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 } Frame { msec: 3520 - hash: "7ee451bcd930dac49246b50831f236ea" + hash: "63e239c97bd01a61cb31ef2869e7f47c" } Frame { msec: 3536 - hash: "c04a389510e141185f72e9362a268794" + hash: "f7c176550c39f8a1ad64590cf33a60a4" } Frame { msec: 3552 - hash: "d57af1c1048a517c629761dca1879101" + hash: "8581cb14ed81efdf9abb638b5e542cc3" } Frame { msec: 3568 - hash: "0303941402e587a7a46c6ee76c93b33e" - } - Key { - type: 7 - key: 16777236 - modifiers: 536870912 - text: "1d" - autorep: false - count: 1 + hash: "7a1e9354ecc49d8bc27d303c7bdc81f9" } Frame { msec: 3584 - hash: "ed13f12e4f3f2e80126ce921b213e9ba" + hash: "610288b97276ee03702ed8a814ef333d" } Frame { msec: 3600 - hash: "86b3cfd06900fb446c09748f41176dbe" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 3616 - hash: "50b1cfef8e5c0e134c0825ab7a94a45f" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 3632 - hash: "c84e56751463bc69b9ad7729bf5895e4" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 3648 - hash: "fa846e78b01651191def27deab9665ea" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 3664 - hash: "e9ad89402275acbe4f504ab65bba0e4a" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 3680 - hash: "c7c4d839f5791578eda5a65b823e4d49" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 3696 - hash: "8dde1718ff572566322d845e7167522d" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 3712 - hash: "8fd9942e967d012e357a3dc5f83837a6" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 3728 - hash: "c4da9fd821add0816d6d0a1aac4b4736" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 3744 - hash: "119e88b3f87362b43d7b8c422dc87b7d" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 3760 - hash: "942e48d515c3982c73739b3a270e6521" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 3776 - hash: "623d099d333e663ff398566299f2287b" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" + } + Key { + type: 6 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 } Frame { msec: 3792 - hash: "cb23f7866992cfc44d240f4969b2f201" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 3808 - hash: "e8d400b1c3f298817597c2602b2d8be6" + hash: "9713c6b9aff051dd0cc45c545d34b688" } Frame { msec: 3824 - hash: "184587e1c69062c2324e5f001eb92a6b" + hash: "1f8fd4d759e343720a8681b6ad126b72" } Frame { msec: 3840 @@ -1110,182 +1086,158 @@ VisualTest { } Frame { msec: 3856 - hash: "66ba6777a409b055b9cbe94e80480e07" + hash: "8550d916d91a40b0c3a886b962e07ffc" + } + Key { + type: 7 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 } Frame { msec: 3872 - hash: "cc3020c9b243b08f409a58d12b84dcb2" + hash: "df0c2e474139e79429bfc19c79a65ef8" } Frame { msec: 3888 - hash: "cc3020c9b243b08f409a58d12b84dcb2" + hash: "acfb99d081d754276e5ed59bd590aeab" } Frame { msec: 3904 - hash: "cc3020c9b243b08f409a58d12b84dcb2" + hash: "2b34cd101b442f7a3de2893fd5514c16" } Frame { msec: 3920 - hash: "cc3020c9b243b08f409a58d12b84dcb2" + hash: "df92ced66faa1d59354d8010278438ec" } Frame { msec: 3936 - hash: "cc3020c9b243b08f409a58d12b84dcb2" + hash: "dd39a8e6fa3784453461193a6da416cd" } Frame { msec: 3952 - hash: "cc3020c9b243b08f409a58d12b84dcb2" + hash: "5670e8f91ea2df451f0974a51cd77d7d" } Frame { msec: 3968 - hash: "cc3020c9b243b08f409a58d12b84dcb2" + hash: "74b97a09bfe7400872a2c6214e04a5ac" } Frame { msec: 3984 - hash: "cc3020c9b243b08f409a58d12b84dcb2" + hash: "cfd55b963506ab54cf09a7311e84bcc9" } Frame { msec: 4000 - hash: "cc3020c9b243b08f409a58d12b84dcb2" + hash: "59657ee9293c03f064d62de826931435" } Frame { msec: 4016 - hash: "cc3020c9b243b08f409a58d12b84dcb2" + hash: "31f6a4adf31be5ed0af0ea4097e3acee" } Frame { msec: 4032 - hash: "cc3020c9b243b08f409a58d12b84dcb2" + hash: "8f5bfc40c8cdb2f8ce69adb72e7efe76" } Frame { msec: 4048 - hash: "cc3020c9b243b08f409a58d12b84dcb2" + hash: "9dc38985113124130e2ca7950e0bd144" } Frame { msec: 4064 - hash: "cc3020c9b243b08f409a58d12b84dcb2" + hash: "786e6e8b9e74876a6f393d61a78b8fc7" } Frame { msec: 4080 - hash: "cc3020c9b243b08f409a58d12b84dcb2" - } - Key { - type: 6 - key: 16777236 - modifiers: 536870912 - text: "1d" - autorep: false - count: 1 + hash: "1f4d59a4e4684aab309363a711b30006" } Frame { msec: 4096 - hash: "cc3020c9b243b08f409a58d12b84dcb2" + hash: "a11e332de151b43051796e16dbcf75c3" } Frame { msec: 4112 - hash: "66ba6777a409b055b9cbe94e80480e07" + hash: "1a0e82029ae107cb2a018786752433ff" } Frame { msec: 4128 - hash: "398a769979b6adfbe42bd4ae61ffc9d5" + hash: "b14c51977c7fbf51f9cf6fec309bff6a" } Frame { msec: 4144 - hash: "184587e1c69062c2324e5f001eb92a6b" + hash: "2b418f811992399c3f87c268db745632" } Frame { msec: 4160 - hash: "e8d400b1c3f298817597c2602b2d8be6" + hash: "0e9a056207053ca98c4e9f42de244c62" } Frame { msec: 4176 - hash: "cb23f7866992cfc44d240f4969b2f201" - } - Key { - type: 7 - key: 16777236 - modifiers: 536870912 - text: "1d" - autorep: false - count: 1 + hash: "1945c3f9e3a1337e7d111e15adea345f" } Frame { msec: 4192 - hash: "623d099d333e663ff398566299f2287b" + hash: "d8cf36b6cc15a01ead815d814ae81cb4" } Frame { msec: 4208 - hash: "942e48d515c3982c73739b3a270e6521" + hash: "d8cf36b6cc15a01ead815d814ae81cb4" } Frame { msec: 4224 - hash: "119e88b3f87362b43d7b8c422dc87b7d" + hash: "d8cf36b6cc15a01ead815d814ae81cb4" } Frame { msec: 4240 - hash: "c4da9fd821add0816d6d0a1aac4b4736" + hash: "d8cf36b6cc15a01ead815d814ae81cb4" } Frame { msec: 4256 - hash: "8fd9942e967d012e357a3dc5f83837a6" + hash: "d8cf36b6cc15a01ead815d814ae81cb4" } Frame { msec: 4272 - hash: "8dde1718ff572566322d845e7167522d" + hash: "d8cf36b6cc15a01ead815d814ae81cb4" } Frame { msec: 4288 - hash: "c7c4d839f5791578eda5a65b823e4d49" + hash: "d8cf36b6cc15a01ead815d814ae81cb4" } Frame { msec: 4304 - hash: "506283ccfe9670633ce0bf60b437b37b" + hash: "d8cf36b6cc15a01ead815d814ae81cb4" } Frame { msec: 4320 - hash: "506283ccfe9670633ce0bf60b437b37b" + hash: "d8cf36b6cc15a01ead815d814ae81cb4" } Frame { msec: 4336 - hash: "506283ccfe9670633ce0bf60b437b37b" + hash: "d8cf36b6cc15a01ead815d814ae81cb4" } Frame { msec: 4352 - hash: "506283ccfe9670633ce0bf60b437b37b" - } - Key { - type: 6 - key: 16777236 - modifiers: 536870912 - text: "1d" - autorep: false - count: 1 + hash: "d8cf36b6cc15a01ead815d814ae81cb4" } Frame { msec: 4368 - hash: "506283ccfe9670633ce0bf60b437b37b" + hash: "d8cf36b6cc15a01ead815d814ae81cb4" } Frame { msec: 4384 - hash: "fb437f6c23561092a124e498f1604ff2" + hash: "d8cf36b6cc15a01ead815d814ae81cb4" } Frame { msec: 4400 - hash: "402ba144bbb7260eec4553e68eb35cda" + hash: "d8cf36b6cc15a01ead815d814ae81cb4" } Frame { msec: 4416 - hash: "76a983de9e85e0c81dfb8908252bd6c9" - } - Frame { - msec: 4432 - hash: "09219f55fae47a0afed887ebf68a36bc" - } - Frame { - msec: 4448 - hash: "344e81cc262093facef2f6a235a734dc" + hash: "d8cf36b6cc15a01ead815d814ae81cb4" } Key { - type: 7 + type: 6 key: 16777236 modifiers: 536870912 text: "1d" @@ -1293,104 +1245,104 @@ VisualTest { count: 1 } Frame { + msec: 4432 + hash: "d8cf36b6cc15a01ead815d814ae81cb4" + } + Frame { + msec: 4448 + hash: "1945c3f9e3a1337e7d111e15adea345f" + } + Frame { msec: 4464 - hash: "8f1c5544eb537555b1c59a377b15e31d" + hash: "0e9a056207053ca98c4e9f42de244c62" } Frame { msec: 4480 - hash: "606b9bb549fe2e4bbd09d67b7dea0d1a" + hash: "2b418f811992399c3f87c268db745632" } Frame { msec: 4496 - hash: "63e239c97bd01a61cb31ef2869e7f47c" + hash: "b14c51977c7fbf51f9cf6fec309bff6a" } Frame { msec: 4512 - hash: "f7c176550c39f8a1ad64590cf33a60a4" + hash: "1a0e82029ae107cb2a018786752433ff" } Frame { msec: 4528 - hash: "8581cb14ed81efdf9abb638b5e542cc3" + hash: "a11e332de151b43051796e16dbcf75c3" + } + Key { + type: 7 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 } Frame { msec: 4544 - hash: "7a1e9354ecc49d8bc27d303c7bdc81f9" + hash: "1f4d59a4e4684aab309363a711b30006" } Frame { msec: 4560 - hash: "610288b97276ee03702ed8a814ef333d" + hash: "786e6e8b9e74876a6f393d61a78b8fc7" } Frame { msec: 4576 - hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" + hash: "9dc38985113124130e2ca7950e0bd144" } Frame { msec: 4592 - hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" + hash: "8f5bfc40c8cdb2f8ce69adb72e7efe76" } Frame { msec: 4608 - hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" + hash: "31f6a4adf31be5ed0af0ea4097e3acee" } Frame { msec: 4624 - hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" + hash: "59657ee9293c03f064d62de826931435" } Frame { msec: 4640 - hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" + hash: "23aa652a0de7fced4a780d72f0940a1b" } Frame { msec: 4656 - hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" - } - Key { - type: 6 - key: 16777236 - modifiers: 536870912 - text: "1d" - autorep: false - count: 1 + hash: "23aa652a0de7fced4a780d72f0940a1b" } Frame { msec: 4672 - hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" + hash: "23aa652a0de7fced4a780d72f0940a1b" } Frame { msec: 4688 - hash: "9713c6b9aff051dd0cc45c545d34b688" + hash: "23aa652a0de7fced4a780d72f0940a1b" } Frame { msec: 4704 - hash: "1f8fd4d759e343720a8681b6ad126b72" + hash: "23aa652a0de7fced4a780d72f0940a1b" } Frame { msec: 4720 - hash: "2d7c0164278a8a07117315f790224688" + hash: "23aa652a0de7fced4a780d72f0940a1b" } Frame { msec: 4736 - hash: "8550d916d91a40b0c3a886b962e07ffc" + hash: "23aa652a0de7fced4a780d72f0940a1b" } Frame { msec: 4752 - hash: "df0c2e474139e79429bfc19c79a65ef8" + hash: "23aa652a0de7fced4a780d72f0940a1b" } Frame { msec: 4768 - hash: "acfb99d081d754276e5ed59bd590aeab" - } - Key { - type: 7 - key: 16777236 - modifiers: 536870912 - text: "1d" - autorep: false - count: 1 + hash: "23aa652a0de7fced4a780d72f0940a1b" } Frame { msec: 4784 - hash: "2b34cd101b442f7a3de2893fd5514c16" + hash: "23aa652a0de7fced4a780d72f0940a1b" } Frame { msec: 4800 @@ -1398,271 +1350,271 @@ VisualTest { } Frame { msec: 4816 - hash: "dd39a8e6fa3784453461193a6da416cd" + hash: "23aa652a0de7fced4a780d72f0940a1b" + } + Key { + type: 6 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 } Frame { msec: 4832 - hash: "5670e8f91ea2df451f0974a51cd77d7d" + hash: "23aa652a0de7fced4a780d72f0940a1b" } Frame { msec: 4848 - hash: "74b97a09bfe7400872a2c6214e04a5ac" + hash: "d46eea049d6156a5e85d9c6811d9d367" } Frame { msec: 4864 - hash: "cfd55b963506ab54cf09a7311e84bcc9" + hash: "d5796ae85247cb8502f92f0d044e4e1f" } Frame { msec: 4880 - hash: "59657ee9293c03f064d62de826931435" + hash: "90987ac49c1a4e6b668436e3ff631e6c" } Frame { msec: 4896 - hash: "31f6a4adf31be5ed0af0ea4097e3acee" + hash: "c38d69759ad80242b1fe83ba191cd421" } Frame { msec: 4912 - hash: "8f5bfc40c8cdb2f8ce69adb72e7efe76" + hash: "09d08aed76a04e492d8a39cc4dd2b8f5" + } + Key { + type: 7 + key: 16777236 + modifiers: 536870912 + text: "1d" + autorep: false + count: 1 } Frame { msec: 4928 - hash: "9dc38985113124130e2ca7950e0bd144" + hash: "9671d2ff9a2ef46ce3c750a1965404a4" } Frame { msec: 4944 - hash: "786e6e8b9e74876a6f393d61a78b8fc7" + hash: "f55857816d666ece4a7987a70883b3d1" } Frame { msec: 4960 - hash: "1f4d59a4e4684aab309363a711b30006" + hash: "a2d80527b30316d9120b057bbfcfa666" } Frame { msec: 4976 - hash: "a11e332de151b43051796e16dbcf75c3" + hash: "87ca69287c1469cbc7e65d1673016de7" } Frame { msec: 4992 - hash: "1a0e82029ae107cb2a018786752433ff" + hash: "51588c7ebbe2dcd87a3c9bebf028aee3" } Frame { msec: 5008 - hash: "b14c51977c7fbf51f9cf6fec309bff6a" + hash: "917a9a171273fe9fd4c450eeed6f58ed" } Frame { msec: 5024 - hash: "2b418f811992399c3f87c268db745632" + hash: "6e7ade250a9a9692caee2a220dd2ac53" } Frame { msec: 5040 - hash: "0e9a056207053ca98c4e9f42de244c62" + hash: "ca2dcb16d553889a3a57b48700c2a595" } Frame { msec: 5056 - hash: "1945c3f9e3a1337e7d111e15adea345f" + hash: "ca2dcb16d553889a3a57b48700c2a595" } Frame { msec: 5072 - hash: "d8cf36b6cc15a01ead815d814ae81cb4" + hash: "ca2dcb16d553889a3a57b48700c2a595" } Frame { msec: 5088 - hash: "d8cf36b6cc15a01ead815d814ae81cb4" + hash: "ca2dcb16d553889a3a57b48700c2a595" } Frame { msec: 5104 - hash: "d8cf36b6cc15a01ead815d814ae81cb4" + hash: "ca2dcb16d553889a3a57b48700c2a595" } Frame { msec: 5120 - hash: "d8cf36b6cc15a01ead815d814ae81cb4" + hash: "ca2dcb16d553889a3a57b48700c2a595" } Frame { msec: 5136 - hash: "d8cf36b6cc15a01ead815d814ae81cb4" + hash: "ca2dcb16d553889a3a57b48700c2a595" } Frame { msec: 5152 - hash: "d8cf36b6cc15a01ead815d814ae81cb4" + hash: "ca2dcb16d553889a3a57b48700c2a595" } Frame { msec: 5168 - hash: "d8cf36b6cc15a01ead815d814ae81cb4" + hash: "ca2dcb16d553889a3a57b48700c2a595" } Frame { msec: 5184 - hash: "d8cf36b6cc15a01ead815d814ae81cb4" + hash: "ca2dcb16d553889a3a57b48700c2a595" } Frame { msec: 5200 - hash: "d8cf36b6cc15a01ead815d814ae81cb4" + hash: "ca2dcb16d553889a3a57b48700c2a595" } Frame { msec: 5216 - hash: "d8cf36b6cc15a01ead815d814ae81cb4" + hash: "ca2dcb16d553889a3a57b48700c2a595" } Frame { msec: 5232 - hash: "d8cf36b6cc15a01ead815d814ae81cb4" + hash: "ca2dcb16d553889a3a57b48700c2a595" } Frame { msec: 5248 - hash: "d8cf36b6cc15a01ead815d814ae81cb4" + hash: "ca2dcb16d553889a3a57b48700c2a595" } Frame { msec: 5264 - hash: "d8cf36b6cc15a01ead815d814ae81cb4" + hash: "ca2dcb16d553889a3a57b48700c2a595" } Frame { msec: 5280 - hash: "d8cf36b6cc15a01ead815d814ae81cb4" + hash: "ca2dcb16d553889a3a57b48700c2a595" } Frame { msec: 5296 - hash: "d8cf36b6cc15a01ead815d814ae81cb4" + hash: "ca2dcb16d553889a3a57b48700c2a595" } Frame { msec: 5312 - hash: "d8cf36b6cc15a01ead815d814ae81cb4" + hash: "ca2dcb16d553889a3a57b48700c2a595" } Frame { msec: 5328 - hash: "d8cf36b6cc15a01ead815d814ae81cb4" - } - Key { - type: 6 - key: 16777236 - modifiers: 536870912 - text: "1d" - autorep: false - count: 1 + hash: "ca2dcb16d553889a3a57b48700c2a595" } Frame { msec: 5344 - hash: "d8cf36b6cc15a01ead815d814ae81cb4" + hash: "ca2dcb16d553889a3a57b48700c2a595" } Frame { msec: 5360 - hash: "1945c3f9e3a1337e7d111e15adea345f" + hash: "ca2dcb16d553889a3a57b48700c2a595" } Frame { msec: 5376 - hash: "0e9a056207053ca98c4e9f42de244c62" + hash: "ca2dcb16d553889a3a57b48700c2a595" } Frame { msec: 5392 - hash: "2b418f811992399c3f87c268db745632" + hash: "ca2dcb16d553889a3a57b48700c2a595" } Frame { msec: 5408 - hash: "b14c51977c7fbf51f9cf6fec309bff6a" + hash: "ca2dcb16d553889a3a57b48700c2a595" } Frame { msec: 5424 - hash: "1a0e82029ae107cb2a018786752433ff" - } - Key { - type: 7 - key: 16777236 - modifiers: 536870912 - text: "1d" - autorep: false - count: 1 + hash: "ca2dcb16d553889a3a57b48700c2a595" } Frame { msec: 5440 - hash: "a11e332de151b43051796e16dbcf75c3" + hash: "ca2dcb16d553889a3a57b48700c2a595" } Frame { msec: 5456 - hash: "1f4d59a4e4684aab309363a711b30006" + hash: "ca2dcb16d553889a3a57b48700c2a595" } Frame { msec: 5472 - hash: "786e6e8b9e74876a6f393d61a78b8fc7" + hash: "ca2dcb16d553889a3a57b48700c2a595" } Frame { msec: 5488 - hash: "9dc38985113124130e2ca7950e0bd144" + hash: "ca2dcb16d553889a3a57b48700c2a595" } Frame { msec: 5504 - hash: "8f5bfc40c8cdb2f8ce69adb72e7efe76" + hash: "ca2dcb16d553889a3a57b48700c2a595" } Frame { msec: 5520 - hash: "31f6a4adf31be5ed0af0ea4097e3acee" + hash: "ca2dcb16d553889a3a57b48700c2a595" } Frame { msec: 5536 - hash: "59657ee9293c03f064d62de826931435" + hash: "ca2dcb16d553889a3a57b48700c2a595" } Frame { msec: 5552 - hash: "23aa652a0de7fced4a780d72f0940a1b" + hash: "ca2dcb16d553889a3a57b48700c2a595" } Frame { msec: 5568 - hash: "23aa652a0de7fced4a780d72f0940a1b" + hash: "ca2dcb16d553889a3a57b48700c2a595" } Frame { msec: 5584 - hash: "23aa652a0de7fced4a780d72f0940a1b" + hash: "ca2dcb16d553889a3a57b48700c2a595" + } + Frame { + msec: 5600 + hash: "ca2dcb16d553889a3a57b48700c2a595" } Key { type: 6 - key: 16777236 + key: 16777237 modifiers: 536870912 - text: "1d" + text: "1f" autorep: false count: 1 } Frame { - msec: 5600 - hash: "23aa652a0de7fced4a780d72f0940a1b" - } - Frame { msec: 5616 - hash: "d46eea049d6156a5e85d9c6811d9d367" + hash: "ca2dcb16d553889a3a57b48700c2a595" } Frame { msec: 5632 - hash: "d5796ae85247cb8502f92f0d044e4e1f" + hash: "c5c9aab9bea757f1c451e89df72bd836" } Frame { msec: 5648 - hash: "90987ac49c1a4e6b668436e3ff631e6c" + hash: "a8cf3085f8c3b743f3f15db1ad7b8801" } Frame { msec: 5664 - hash: "c38d69759ad80242b1fe83ba191cd421" + hash: "c25a92050eced1c304506572723273a3" } Frame { msec: 5680 - hash: "09d08aed76a04e492d8a39cc4dd2b8f5" + hash: "cff981039c1a3eb6c3c1a20f142fbae2" } Frame { msec: 5696 - hash: "9671d2ff9a2ef46ce3c750a1965404a4" + hash: "930765587fe3355873bbdff66b812b74" + } + Frame { + msec: 5712 + hash: "6a60f97c7b39add465e1bd366e9c644b" } Key { type: 7 - key: 16777236 + key: 16777237 modifiers: 536870912 - text: "1d" + text: "1f" autorep: false count: 1 } Frame { - msec: 5712 - hash: "f55857816d666ece4a7987a70883b3d1" - } - Frame { msec: 5728 - hash: "a2d80527b30316d9120b057bbfcfa666" + hash: "7a1fd3c488d1064a75dc598c9a773291" } Frame { msec: 5744 - hash: "87ca69287c1469cbc7e65d1673016de7" + hash: "e2ecd7e68e27eb3d2dcb5e368d3ee5a0" } Frame { msec: 5760 @@ -1670,271 +1622,255 @@ VisualTest { } Frame { msec: 5776 - hash: "917a9a171273fe9fd4c450eeed6f58ed" + hash: "20f3aaca2efc3066076e73d1d95e5363" } Frame { msec: 5792 - hash: "6e7ade250a9a9692caee2a220dd2ac53" + hash: "b18d476cadc36e22dddc3185f595c123" } Frame { msec: 5808 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "8cbc47555178c8ee355774eab17b4b19" } Frame { msec: 5824 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "e488fb76fb550fba51b95bee3fee80d5" } Frame { msec: 5840 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "e488fb76fb550fba51b95bee3fee80d5" } Frame { msec: 5856 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "e488fb76fb550fba51b95bee3fee80d5" } Frame { msec: 5872 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "e488fb76fb550fba51b95bee3fee80d5" } Frame { msec: 5888 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "e488fb76fb550fba51b95bee3fee80d5" } Frame { msec: 5904 - hash: "ca2dcb16d553889a3a57b48700c2a595" - } - Key { - type: 6 - key: 16777236 - modifiers: 536870912 - text: "1d" - autorep: false - count: 1 + hash: "e488fb76fb550fba51b95bee3fee80d5" } Frame { msec: 5920 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "e488fb76fb550fba51b95bee3fee80d5" } Frame { msec: 5936 - hash: "024ee59c130eca0a6e935f4715510bba" + hash: "e488fb76fb550fba51b95bee3fee80d5" } Frame { msec: 5952 - hash: "d478be3737e00319cc90e9c53fc8cdca" + hash: "e488fb76fb550fba51b95bee3fee80d5" } Frame { msec: 5968 - hash: "4d392f0852a197d5875cad45427092c4" + hash: "e488fb76fb550fba51b95bee3fee80d5" } Frame { msec: 5984 - hash: "b2a9d598fb16a331b1ae609839b02164" + hash: "e488fb76fb550fba51b95bee3fee80d5" } Frame { msec: 6000 - hash: "c0db11e439225dc4b725a7f1d7ae9840" - } - Key { - type: 7 - key: 16777236 - modifiers: 536870912 - text: "1d" - autorep: false - count: 1 + hash: "e488fb76fb550fba51b95bee3fee80d5" } Frame { msec: 6016 - hash: "9f5e1ef8af0aaf44c755f35304f5179b" + hash: "e488fb76fb550fba51b95bee3fee80d5" } Frame { msec: 6032 - hash: "dee750b713080dd6c6191a82d7422161" + hash: "e488fb76fb550fba51b95bee3fee80d5" } Frame { msec: 6048 - hash: "4f76165ee19bbcb8da190f206eb90c90" + hash: "e488fb76fb550fba51b95bee3fee80d5" } Frame { msec: 6064 - hash: "3bc9e612703a5462b43aef4e7160b0ae" + hash: "e488fb76fb550fba51b95bee3fee80d5" } Frame { msec: 6080 - hash: "8223bec3511bffcebdd6be81e2966767" + hash: "e488fb76fb550fba51b95bee3fee80d5" } Frame { msec: 6096 - hash: "db636385d0e73fcb56bd7c0f0c0d7e10" + hash: "e488fb76fb550fba51b95bee3fee80d5" + } + Key { + type: 6 + key: 16777237 + modifiers: 536870912 + text: "1f" + autorep: false + count: 1 } Frame { msec: 6112 - hash: "eeb33d29d7cf77b59372774ee795dd78" + hash: "e488fb76fb550fba51b95bee3fee80d5" } Frame { msec: 6128 - hash: "7c1d76b6b3c9c9c39cb6f26cbfa7b5ff" + hash: "8c2fab0c73d1cfbeeb0ec937085d6b3b" } Frame { msec: 6144 - hash: "8efc144cfcc12e97db3d0359c57707eb" + hash: "5d9353517177ef7c6314d8a65cb009ec" } Frame { msec: 6160 - hash: "7e8ea890b8ab2ed2a736a2fd108a24a6" + hash: "ed8de504f7e2028cd369c1555314fd81" } Frame { msec: 6176 - hash: "9886d9ebe7fe17ad487cf449882a0780" + hash: "8fe84d8badbe5bd08d097ba6bda10611" } Frame { msec: 6192 - hash: "2e62826b1fa6e0bdec3a93a6964ae501" + hash: "d77419a55a3cf933505e793bb258e6af" } Frame { msec: 6208 - hash: "47c505867f2194100f4952a9548d7b44" + hash: "457ac82be02e2f5e08e51ccc78c94781" } Frame { msec: 6224 - hash: "4326125610d9da145999e11c2417bf9e" + hash: "e57e2852f065afff9c24c5bc9f29edee" } Frame { msec: 6240 - hash: "dcdb1a8765c16ba563421e36b30e6d33" + hash: "f72cd6ad3324936c3a18c264e23e05a9" + } + Key { + type: 7 + key: 16777237 + modifiers: 536870912 + text: "1f" + autorep: false + count: 1 } Frame { msec: 6256 - hash: "6d1486fd8d72564de5d936d66f177dd5" + hash: "a4bf7eae6fc7a05239d09421ae95304a" } Frame { msec: 6272 - hash: "e277649cde67f64b0e9b1a76d7878c8d" + hash: "423f3bd07df8bee25818644c07201a3c" } Frame { msec: 6288 - hash: "54307b1f3b8ce30ea4f49e6c2b01a6c3" + hash: "225e9c698424f287b9458b7839b4479b" } Frame { msec: 6304 - hash: "853a09f007d7046f0d12b7a829029861" + hash: "0f463db7e4acc184a4efb7b5e5c0d397" } Frame { msec: 6320 - hash: "d80a513529cb80658a7696c34c33a7dd" + hash: "b92ad1c3be35c46c0d12bf7701c56f23" } Frame { msec: 6336 - hash: "d80a513529cb80658a7696c34c33a7dd" + hash: "b92ad1c3be35c46c0d12bf7701c56f23" } Frame { msec: 6352 - hash: "d80a513529cb80658a7696c34c33a7dd" + hash: "b92ad1c3be35c46c0d12bf7701c56f23" } Frame { msec: 6368 - hash: "d80a513529cb80658a7696c34c33a7dd" + hash: "b92ad1c3be35c46c0d12bf7701c56f23" } Frame { msec: 6384 - hash: "d80a513529cb80658a7696c34c33a7dd" + hash: "b92ad1c3be35c46c0d12bf7701c56f23" } Frame { msec: 6400 - hash: "d80a513529cb80658a7696c34c33a7dd" + hash: "b92ad1c3be35c46c0d12bf7701c56f23" } Frame { msec: 6416 - hash: "d80a513529cb80658a7696c34c33a7dd" + hash: "b92ad1c3be35c46c0d12bf7701c56f23" } Frame { msec: 6432 - hash: "d80a513529cb80658a7696c34c33a7dd" + hash: "b92ad1c3be35c46c0d12bf7701c56f23" } Frame { msec: 6448 - hash: "d80a513529cb80658a7696c34c33a7dd" + hash: "b92ad1c3be35c46c0d12bf7701c56f23" } Frame { msec: 6464 - hash: "d80a513529cb80658a7696c34c33a7dd" + hash: "b92ad1c3be35c46c0d12bf7701c56f23" } Frame { msec: 6480 - hash: "d80a513529cb80658a7696c34c33a7dd" + hash: "b92ad1c3be35c46c0d12bf7701c56f23" } Frame { msec: 6496 - hash: "d80a513529cb80658a7696c34c33a7dd" + hash: "b92ad1c3be35c46c0d12bf7701c56f23" } Frame { msec: 6512 - hash: "d80a513529cb80658a7696c34c33a7dd" + hash: "b92ad1c3be35c46c0d12bf7701c56f23" } Frame { msec: 6528 - hash: "d80a513529cb80658a7696c34c33a7dd" + hash: "b92ad1c3be35c46c0d12bf7701c56f23" } Frame { msec: 6544 - hash: "d80a513529cb80658a7696c34c33a7dd" + hash: "b92ad1c3be35c46c0d12bf7701c56f23" } Frame { msec: 6560 - hash: "d80a513529cb80658a7696c34c33a7dd" + hash: "b92ad1c3be35c46c0d12bf7701c56f23" } Frame { msec: 6576 - hash: "d80a513529cb80658a7696c34c33a7dd" - } - Key { - type: 6 - key: 16777236 - modifiers: 536870912 - text: "1d" - autorep: false - count: 1 + hash: "b92ad1c3be35c46c0d12bf7701c56f23" } Frame { msec: 6592 - hash: "d80a513529cb80658a7696c34c33a7dd" + hash: "b92ad1c3be35c46c0d12bf7701c56f23" } Frame { msec: 6608 - hash: "853a09f007d7046f0d12b7a829029861" + hash: "b92ad1c3be35c46c0d12bf7701c56f23" } Frame { msec: 6624 - hash: "54307b1f3b8ce30ea4f49e6c2b01a6c3" + hash: "b92ad1c3be35c46c0d12bf7701c56f23" } Frame { msec: 6640 - hash: "e277649cde67f64b0e9b1a76d7878c8d" + hash: "b92ad1c3be35c46c0d12bf7701c56f23" } Frame { msec: 6656 - hash: "6d1486fd8d72564de5d936d66f177dd5" + hash: "b92ad1c3be35c46c0d12bf7701c56f23" } Frame { msec: 6672 - hash: "dcdb1a8765c16ba563421e36b30e6d33" - } - Key { - type: 7 - key: 16777236 - modifiers: 536870912 - text: "1d" - autorep: false - count: 1 + hash: "b92ad1c3be35c46c0d12bf7701c56f23" } Frame { msec: 6688 - hash: "4326125610d9da145999e11c2417bf9e" + hash: "b92ad1c3be35c46c0d12bf7701c56f23" } Frame { msec: 6704 - hash: "47c505867f2194100f4952a9548d7b44" + hash: "b92ad1c3be35c46c0d12bf7701c56f23" } Frame { msec: 6720 @@ -1942,271 +1878,255 @@ VisualTest { } Frame { msec: 6736 - hash: "9886d9ebe7fe17ad487cf449882a0780" + hash: "b92ad1c3be35c46c0d12bf7701c56f23" + } + Key { + type: 6 + key: 16777237 + modifiers: 536870912 + text: "1f" + autorep: false + count: 1 } Frame { msec: 6752 - hash: "7e8ea890b8ab2ed2a736a2fd108a24a6" + hash: "b92ad1c3be35c46c0d12bf7701c56f23" } Frame { msec: 6768 - hash: "8efc144cfcc12e97db3d0359c57707eb" + hash: "738f6bcc043d221488285c7e529b1d1c" } Frame { msec: 6784 - hash: "7c1d76b6b3c9c9c39cb6f26cbfa7b5ff" + hash: "cb0a4e8e79372dd67e8ecfea2143a47c" } Frame { msec: 6800 - hash: "8033aa34452963bf474c32357d657291" + hash: "544d1825b36f4e7950c1a62b26c1fd9b" } Frame { msec: 6816 - hash: "8033aa34452963bf474c32357d657291" + hash: "df99396622342b4f092b0db34a224c3d" } Frame { msec: 6832 - hash: "8033aa34452963bf474c32357d657291" + hash: "47391f51e5df2249a6ca1f1f6e8e80e0" + } + Key { + type: 7 + key: 16777237 + modifiers: 536870912 + text: "1f" + autorep: false + count: 1 } Frame { msec: 6848 - hash: "8033aa34452963bf474c32357d657291" + hash: "d8079a874ca18d00aeeb611effcbeb8b" } Frame { msec: 6864 - hash: "8033aa34452963bf474c32357d657291" - } - Key { - type: 6 - key: 16777236 - modifiers: 536870912 - text: "1d" - autorep: false - count: 1 + hash: "4cfd9264af6935aca425da75ebb2d7cc" } Frame { msec: 6880 - hash: "8033aa34452963bf474c32357d657291" + hash: "aee6547cb653cd2d56d07285d836149d" } Frame { msec: 6896 - hash: "85281bb31dd2a4a02dccc8ecab2c7d05" + hash: "969720f17eae51258e2e143e14bfa737" } Frame { msec: 6912 - hash: "83b05ae44a1e20426652ac75899492cb" + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" } Frame { msec: 6928 - hash: "60ef7f46a0a2c9172f2bab8380f893fd" + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" } Frame { msec: 6944 - hash: "278eb628024c7b8f4c101ae0c7ed6149" + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" } Frame { msec: 6960 - hash: "92c830a5f89cf662413b127a06c605a3" - } - Key { - type: 7 - key: 16777236 - modifiers: 536870912 - text: "1d" - autorep: false - count: 1 + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" } Frame { msec: 6976 - hash: "cee562140d9f2a3702fa6fd059f06473" + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" } Frame { msec: 6992 - hash: "bd2c954c86c647d1e7d318ac8aa82127" + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" } Frame { msec: 7008 - hash: "c5eaf6e4c8e1b43c87d9831e151acee4" + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" } Frame { msec: 7024 - hash: "6e429382a6475cf10afcdb41bc2ceef7" + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" } Frame { msec: 7040 - hash: "671a251d2e66a9f227006a2833df496e" + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" } Frame { msec: 7056 - hash: "7d938be743cd72ffea5d0a4980e6edc6" + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" } Frame { msec: 7072 - hash: "352193740b77a712e2c2ad330bf09d1d" + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" } Frame { msec: 7088 - hash: "e488fb76fb550fba51b95bee3fee80d5" + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" } Frame { msec: 7104 - hash: "e488fb76fb550fba51b95bee3fee80d5" + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" } Frame { msec: 7120 - hash: "e488fb76fb550fba51b95bee3fee80d5" + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" } Frame { msec: 7136 - hash: "e488fb76fb550fba51b95bee3fee80d5" + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" } Frame { msec: 7152 - hash: "e488fb76fb550fba51b95bee3fee80d5" + hash: "beeaec4b983c970ae448e33047dfdfea" } Frame { msec: 7168 - hash: "e488fb76fb550fba51b95bee3fee80d5" + hash: "7c415ab1b7d8e25b71af75d3eec8ee4a" } Frame { msec: 7184 - hash: "e488fb76fb550fba51b95bee3fee80d5" - } - Key { - type: 6 - key: 16777236 - modifiers: 536870912 - text: "1d" - autorep: false - count: 1 + hash: "8913037e57b9a6a58b68f2d6e69b1bd1" } Frame { msec: 7200 - hash: "e488fb76fb550fba51b95bee3fee80d5" + hash: "19e59e9409fdaf90ccf75606b58688b7" } Frame { msec: 7216 - hash: "d32ef62f1983fb803c899298e3c77b17" + hash: "1ae71ef5b1006f637bd8df0769af65a6" } Frame { msec: 7232 - hash: "9f3596e95a7ba704c76948f1ecfc66fc" + hash: "1f0aa8b368b2dbccafd54b923d8cce95" } Frame { msec: 7248 - hash: "48a9c4e774d10e1e88dda294adc5ab69" + hash: "c5079fb25a8c80a995d7aa5fbbd91428" } Frame { msec: 7264 - hash: "18ec616a58098fec721e20b17e929b42" + hash: "59f41220fa5d23db298c9e94f115c17b" } Frame { msec: 7280 - hash: "a59607660cc32a4241f5af03eef49db6" + hash: "48259dfe8b266d9e7f50b187be98c3cb" } Frame { msec: 7296 - hash: "7eef7bbace7c9b73457cffdd3c45349e" - } - Key { - type: 7 - key: 16777236 - modifiers: 536870912 - text: "1d" - autorep: false - count: 1 + hash: "f7554552598351c3b8dfcbe3ebc32b3b" } Frame { msec: 7312 - hash: "d9e460e54ed750f89e161b82f7c37526" + hash: "219e9cd84d7e5c5c0e6cb80100aa3ab5" } Frame { msec: 7328 - hash: "129d9c9ec225f142ac6e8fe523fd1aae" + hash: "5578e870ee8ce00bce5a59bb25e3d0a9" } Frame { msec: 7344 - hash: "44b0cb0a4167d8f5e826a361a1f223f8" + hash: "4d9cebbf750c03380694245e0e22ab94" } Frame { msec: 7360 - hash: "7f0e4ece9195f7f06175b299b10d3482" + hash: "a60a8032e97ed0a3caa05012c1283de5" } Frame { msec: 7376 - hash: "822f4aac06674acbc8609d95c4fefe21" + hash: "3bee20b349a7e9d67f7770ede6da8673" } Frame { msec: 7392 - hash: "9898ec32f6b9e11ff24d92473530694f" + hash: "d8c34576c25fb8b5e4fa12680ac32e99" } Frame { msec: 7408 - hash: "4a530e8bfc58fbee76303b7d8a4ea62d" + hash: "cd1360aa7db7c3b2f2012dfc44de2198" } Frame { msec: 7424 - hash: "3d1895d6a5d08ca3ceac1c7ef7b530a8" + hash: "cd82782f63c9a7d21d51b3440c2f038b" } Frame { msec: 7440 - hash: "e958eb57c09645e6f4b4f6a2a24be774" + hash: "e59061967a841aa45607c0828b687527" } Frame { msec: 7456 - hash: "8821380e50148c5b488918e8f75a986f" + hash: "01962406c9aaf1aa8bf3ab49e30ddf5f" } Frame { msec: 7472 - hash: "42b500e9848f9989fe367d45a0523eaa" + hash: "5a5732a568189e598c7985ee806bc67e" } Frame { msec: 7488 - hash: "d93ebd971e82a36d85c289cc564331ce" + hash: "54775aed3a6283c1fa330d65de5bc70c" } Frame { msec: 7504 - hash: "4753d6c2a6b280b450176b3d3ba13c39" + hash: "66640b4a5c1e68924b25de24e3c3f008" } Frame { msec: 7520 - hash: "24693e3a86aa8ebe8598ddad8aeb01d1" + hash: "76999d3125f20ba47dbdff38ee722a8a" } Frame { msec: 7536 - hash: "14a2bd17a7b30bab0dfbf5f31cf31414" + hash: "5159c81533bee8825cff11910bcb90dc" } Frame { msec: 7552 - hash: "0052b5abfd354a315ac2b43c6c3e3ef1" + hash: "ac0295495345987d1e000f6bb2436927" } Frame { msec: 7568 - hash: "dfd0060290351b57b0fd0221ed57384b" + hash: "d56b4a04f1d2835a0852ea20e8e2f451" } Frame { msec: 7584 - hash: "921d73b58776bc9abafabdef0898bfc0" + hash: "ae41fe23e2ab508d7642973c0d9d35b0" } Frame { msec: 7600 - hash: "b1d77d0f292de883cec9862e0b7a04e2" + hash: "730ca01fbee6ec4928715ec52773c06c" } Frame { msec: 7616 - hash: "b1d77d0f292de883cec9862e0b7a04e2" + hash: "ad1fa52c617a2b119d61eb9fb7d58a82" } Frame { msec: 7632 - hash: "b1d77d0f292de883cec9862e0b7a04e2" + hash: "c74321a822b515a393e8e218bd45e8e3" } Frame { msec: 7648 - hash: "b1d77d0f292de883cec9862e0b7a04e2" + hash: "a9e2f3bee1d47166204c74bdf90cd8c8" } Frame { msec: 7664 - hash: "b1d77d0f292de883cec9862e0b7a04e2" + hash: "e10d4bf08980ea7d079a2f359ee62b95" } Frame { msec: 7680 @@ -2214,287 +2134,239 @@ VisualTest { } Frame { msec: 7696 - hash: "b1d77d0f292de883cec9862e0b7a04e2" + hash: "9f0ba6051e684e54ff4e36d980a7e600" } Frame { msec: 7712 - hash: "b1d77d0f292de883cec9862e0b7a04e2" + hash: "aa6268d8d7fb3d2b91db3e225e8c818a" } Frame { msec: 7728 - hash: "b1d77d0f292de883cec9862e0b7a04e2" + hash: "8e547e55279b1929f42bf51e753f142e" } Frame { msec: 7744 - hash: "b1d77d0f292de883cec9862e0b7a04e2" + hash: "5386c71f8d6701379e177f161d714da2" } Frame { msec: 7760 - hash: "b1d77d0f292de883cec9862e0b7a04e2" + hash: "a184e9e6012c72fc1aeaed9f98b0fb1e" } Frame { msec: 7776 - hash: "b1d77d0f292de883cec9862e0b7a04e2" - } - Key { - type: 6 - key: 16777236 - modifiers: 536870912 - text: "1d" - autorep: false - count: 1 + hash: "777a6b70ca77c45e2e5e3914cc328dcb" } Frame { msec: 7792 - hash: "b1d77d0f292de883cec9862e0b7a04e2" + hash: "424f73f25a1e91126f951838d45adc3b" } Frame { msec: 7808 - hash: "921d73b58776bc9abafabdef0898bfc0" + hash: "3f7f2eb6b9a5d19fbfcd700baf566dfb" } Frame { msec: 7824 - hash: "dfd0060290351b57b0fd0221ed57384b" + hash: "c3c4c72b25c2295b82a5fd7454942f77" } Frame { msec: 7840 - hash: "0052b5abfd354a315ac2b43c6c3e3ef1" + hash: "3b35e93d3eb9d28c5c03d6d353f805d2" } Frame { msec: 7856 - hash: "14a2bd17a7b30bab0dfbf5f31cf31414" + hash: "5dcad019a1c0eaaab381a7602e1914ff" } Frame { msec: 7872 - hash: "24693e3a86aa8ebe8598ddad8aeb01d1" + hash: "602a5c569555767413bf445af44c744f" } Frame { msec: 7888 - hash: "4753d6c2a6b280b450176b3d3ba13c39" - } - Key { - type: 7 - key: 16777236 - modifiers: 536870912 - text: "1d" - autorep: false - count: 1 + hash: "3e9facab95dae772f695b6f7c5175063" } Frame { msec: 7904 - hash: "d93ebd971e82a36d85c289cc564331ce" + hash: "0921220ec36ca7b25eaae699872a2006" } Frame { msec: 7920 - hash: "42b500e9848f9989fe367d45a0523eaa" + hash: "1d5fa7fd630af62bcc805bdc6686df37" } Frame { msec: 7936 - hash: "8821380e50148c5b488918e8f75a986f" + hash: "165c02de63604aa118d9f8995e6b45af" } Frame { msec: 7952 - hash: "e958eb57c09645e6f4b4f6a2a24be774" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 7968 - hash: "3d1895d6a5d08ca3ceac1c7ef7b530a8" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 7984 - hash: "4a530e8bfc58fbee76303b7d8a4ea62d" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8000 - hash: "916eaaf52ffde2b176a3e4a02c447409" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8016 - hash: "916eaaf52ffde2b176a3e4a02c447409" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8032 - hash: "916eaaf52ffde2b176a3e4a02c447409" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8048 - hash: "916eaaf52ffde2b176a3e4a02c447409" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8064 - hash: "916eaaf52ffde2b176a3e4a02c447409" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8080 - hash: "916eaaf52ffde2b176a3e4a02c447409" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8096 - hash: "916eaaf52ffde2b176a3e4a02c447409" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8112 - hash: "916eaaf52ffde2b176a3e4a02c447409" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8128 - hash: "916eaaf52ffde2b176a3e4a02c447409" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8144 - hash: "916eaaf52ffde2b176a3e4a02c447409" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8160 - hash: "916eaaf52ffde2b176a3e4a02c447409" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8176 - hash: "916eaaf52ffde2b176a3e4a02c447409" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8192 - hash: "916eaaf52ffde2b176a3e4a02c447409" - } - Key { - type: 6 - key: 16777235 - modifiers: 536870912 - text: "1e" - autorep: false - count: 1 + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8208 - hash: "916eaaf52ffde2b176a3e4a02c447409" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8224 - hash: "754ab9d39b63a37fff9438192b922dca" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8240 - hash: "57c269040d25924ac208692c687fcc9e" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8256 - hash: "78062136ee9f2ddae9c34e2ae66bfc49" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8272 - hash: "995fb06a454ce29db5d3c4433c2a93ec" - } - Key { - type: 7 - key: 16777235 - modifiers: 536870912 - text: "1e" - autorep: false - count: 1 + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8288 - hash: "ca89d735d9315377908c6e268eaff16b" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8304 - hash: "76bbf3fc1f0261fcaed5e0a245e99c56" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8320 - hash: "6c6cdb20b617ec634370efca554367b1" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8336 - hash: "f979473bd94f44db812795cdfee11bbe" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8352 - hash: "900faba9568c2d31df8773b872f13dbe" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8368 - hash: "d70076d643952efdeb1fce506623c33a" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8384 - hash: "2dbe655931825dd8af1d8b75a46a1d2d" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8400 - hash: "0162a9b00b9b7b69d487f9a1e85f6407" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8416 - hash: "7240727aedaf9f3d72c33a95175255a4" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8432 - hash: "7240727aedaf9f3d72c33a95175255a4" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8448 - hash: "7240727aedaf9f3d72c33a95175255a4" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8464 - hash: "7240727aedaf9f3d72c33a95175255a4" - } - Key { - type: 6 - key: 16777235 - modifiers: 536870912 - text: "1e" - autorep: false - count: 1 + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8480 - hash: "7240727aedaf9f3d72c33a95175255a4" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8496 - hash: "0cf200b277d35697e1dd785b051ee0d1" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8512 - hash: "a5d3f2ce5649466fa81073821d58b4c2" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8528 - hash: "c7ff1e80b4bffcb4e42e83e96f7b1231" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8544 - hash: "1d1358126ed02a890344d881a5e59fd5" - } - Key { - type: 7 - key: 16777235 - modifiers: 536870912 - text: "1e" - autorep: false - count: 1 + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8560 - hash: "371d29e0160a9060a1b84b36fdfc6178" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8576 - hash: "94a0b0b69d4891b6cea345225105b0f4" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8592 - hash: "8cb68d6d214044ee58dae2641bcab4d4" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8608 - hash: "93813fc46675f13d1d85a139710c0760" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8624 - hash: "d5da634c1e30ae7898699eaec638e205" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8640 @@ -2502,570 +2374,106 @@ VisualTest { } Frame { msec: 8656 - hash: "e5a3c5a92e640e66c554f52469f47b31" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8672 - hash: "561a894707b154acf5a6beee16e014e5" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8688 - hash: "aacc636aa3658958a2d5046130ca422c" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8704 - hash: "aacc636aa3658958a2d5046130ca422c" + hash: "33d81c39d16c6a326012499796e50e03" + } + Key { + type: 6 + key: 16777249 + modifiers: 67108864 + text: "" + autorep: false + count: 1 } Frame { msec: 8720 - hash: "aacc636aa3658958a2d5046130ca422c" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8736 - hash: "aacc636aa3658958a2d5046130ca422c" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8752 - hash: "aacc636aa3658958a2d5046130ca422c" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8768 - hash: "aacc636aa3658958a2d5046130ca422c" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8784 - hash: "aacc636aa3658958a2d5046130ca422c" - } - Key { - type: 6 - key: 16777235 - modifiers: 536870912 - text: "1e" - autorep: false - count: 1 + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8800 - hash: "aacc636aa3658958a2d5046130ca422c" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8816 - hash: "cdceca4bc7b3a05fc8d0e1d90bd7c84e" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8832 - hash: "54758c6d678ab6fa000282e7c34dba81" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8848 - hash: "0b64560a1c0c5eb6f41eecf863581185" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8864 - hash: "d205b1421f61c09c4a380f1b71758fa9" - } - Key { - type: 7 - key: 16777235 - modifiers: 536870912 - text: "1e" - autorep: false - count: 1 + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8880 - hash: "87117d124480f50452451990d1e1f967" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8896 - hash: "4e2892234cbcd10cc6c3369bcd5a83c3" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8912 - hash: "81abd23f89029d33804f89dc65096994" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8928 - hash: "c516e9a6d29939b8be171e104e732f57" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8944 - hash: "64f6f8e3e952219542af56c71ca8456c" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8960 - hash: "258d650a1f92064f5f37eba5f36097e1" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8976 - hash: "66d06f8aa8a2783585be7589580acb22" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8992 - hash: "2b80eef9fafd5aa77b64144602a26ca5" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 9008 - hash: "88e47e6aab5c39bde5bb088b4290ade7" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 9024 - hash: "88e47e6aab5c39bde5bb088b4290ade7" - } - Frame { - msec: 9040 - hash: "88e47e6aab5c39bde5bb088b4290ade7" - } - Frame { - msec: 9056 - hash: "88e47e6aab5c39bde5bb088b4290ade7" - } - Frame { - msec: 9072 - hash: "88e47e6aab5c39bde5bb088b4290ade7" - } - Frame { - msec: 9088 - hash: "88e47e6aab5c39bde5bb088b4290ade7" - } - Key { - type: 6 - key: 16777235 - modifiers: 536870912 - text: "1e" - autorep: false - count: 1 - } - Frame { - msec: 9104 - hash: "88e47e6aab5c39bde5bb088b4290ade7" - } - Frame { - msec: 9120 - hash: "c9856dbc374a487054e9930443617b51" - } - Frame { - msec: 9136 - hash: "863f8a4336b9487fa6050920b5c5445f" - } - Frame { - msec: 9152 - hash: "15966d5c44aad8d231d3b08fd879d06d" - } - Frame { - msec: 9168 - hash: "294e1360ba8551963a873b4216a22268" - } - Key { - type: 7 - key: 16777235 - modifiers: 536870912 - text: "1e" - autorep: false - count: 1 - } - Frame { - msec: 9184 - hash: "6a051090b04631480cb4e61d5197495b" - } - Frame { - msec: 9200 - hash: "6cec62afc9eaf4157553207b5de3186a" - } - Frame { - msec: 9216 - hash: "5a75c18bf80d99901872cabac4c75c59" - } - Frame { - msec: 9232 - hash: "caa915713b3996bc4f38faed7ef9692f" - } - Frame { - msec: 9248 - hash: "95f561f70fa88bb9cc65ba8495361ffe" - } - Frame { - msec: 9264 - hash: "902524e1adbbfa154f80938a731720d1" - } - Frame { - msec: 9280 - hash: "618e53106212d428e891de289c6a09c9" - } - Frame { - msec: 9296 - hash: "70ca177e13273b79da870072848616ce" - } - Frame { - msec: 9312 - hash: "fad7be058489838a16234c13771da043" - } - Frame { - msec: 9328 - hash: "fad7be058489838a16234c13771da043" - } - Frame { - msec: 9344 - hash: "fad7be058489838a16234c13771da043" - } - Frame { - msec: 9360 - hash: "fad7be058489838a16234c13771da043" - } - Frame { - msec: 9376 - hash: "fad7be058489838a16234c13771da043" - } - Frame { - msec: 9392 - hash: "fad7be058489838a16234c13771da043" - } - Frame { - msec: 9408 - hash: "fad7be058489838a16234c13771da043" - } - Key { - type: 6 - key: 16777235 - modifiers: 536870912 - text: "1e" - autorep: false - count: 1 - } - Frame { - msec: 9424 - hash: "fad7be058489838a16234c13771da043" - } - Frame { - msec: 9440 - hash: "6935dc4b1e3ec8cb994e424aa79be008" - } - Frame { - msec: 9456 - hash: "2f303654e651ec5efd93e5d67ccf2bb0" - } - Frame { - msec: 9472 - hash: "6f4134bceaef09336413634a90064df9" - } - Frame { - msec: 9488 - hash: "6bcf0084c86f5b3643b858e5506d7541" - } - Key { - type: 7 - key: 16777235 - modifiers: 536870912 - text: "1e" - autorep: false - count: 1 - } - Frame { - msec: 9504 - hash: "cd4003c9c35971f0992140407ee4c1dc" - } - Frame { - msec: 9520 - hash: "513809beb2d08ceb6e3dddc741c91ea6" - } - Frame { - msec: 9536 - hash: "bb172a6667414a6152ea7be9ee001537" - } - Frame { - msec: 9552 - hash: "5a90ce27ac85ea34120a2f4f44b71449" - } - Frame { - msec: 9568 - hash: "344993181b11737f8fe95483dffeef4e" - } - Frame { - msec: 9584 - hash: "4ca8d732a4922bb1d1a460ed561e90a8" - } - Frame { - msec: 9600 - image: "gridview2.9.png" - } - Frame { - msec: 9616 - hash: "5e510910df3236fe0f616276f1d30246" - } - Frame { - msec: 9632 - hash: "9bd4d01ff09c0615af59ef664240bc9f" - } - Frame { - msec: 9648 - hash: "9bd4d01ff09c0615af59ef664240bc9f" - } - Frame { - msec: 9664 - hash: "9bd4d01ff09c0615af59ef664240bc9f" - } - Frame { - msec: 9680 - hash: "9bd4d01ff09c0615af59ef664240bc9f" - } - Frame { - msec: 9696 - hash: "9bd4d01ff09c0615af59ef664240bc9f" - } - Frame { - msec: 9712 - hash: "9bd4d01ff09c0615af59ef664240bc9f" - } - Frame { - msec: 9728 - hash: "9bd4d01ff09c0615af59ef664240bc9f" - } - Frame { - msec: 9744 - hash: "9bd4d01ff09c0615af59ef664240bc9f" - } - Frame { - msec: 9760 - hash: "9bd4d01ff09c0615af59ef664240bc9f" - } - Frame { - msec: 9776 - hash: "9bd4d01ff09c0615af59ef664240bc9f" - } - Key { - type: 6 - key: 16777235 - modifiers: 536870912 - text: "1e" - autorep: false - count: 1 - } - Frame { - msec: 9792 - hash: "9bd4d01ff09c0615af59ef664240bc9f" - } - Frame { - msec: 9808 - hash: "ed2f5376944bd2b113ca8a658f7e039a" - } - Frame { - msec: 9824 - hash: "d0f89a274132600dd5080199a59d987d" - } - Frame { - msec: 9840 - hash: "e4a48a016105d700ee77ee3b9a72915a" - } - Frame { - msec: 9856 - hash: "738ac20b239f5adfc9a537e0ce2f422e" - } - Frame { - msec: 9872 - hash: "422ce76c5ba7c0edb485436e3ad7bd8b" - } - Key { - type: 7 - key: 16777235 - modifiers: 536870912 - text: "1e" - autorep: false - count: 1 - } - Frame { - msec: 9888 - hash: "a24b4fee45a5c1cadd51dd5eeec4d785" - } - Frame { - msec: 9904 - hash: "d183b814bed2b1324fdf673f9dde3c98" - } - Frame { - msec: 9920 - hash: "ceb6626e581b7eb5560829768b9be444" - } - Frame { - msec: 9936 - hash: "6384040fb8815701604e2c68ed5f19fe" - } - Frame { - msec: 9952 - hash: "a80d8cbf0c6fe8383badbb2badb361ad" - } - Frame { - msec: 9968 - hash: "c1a568599592a3f455ad550c2e4878a8" - } - Frame { - msec: 9984 - hash: "1087cd3d8d5afbe101cabfc9ec3cd055" - } - Frame { - msec: 10000 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Frame { - msec: 10016 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Frame { - msec: 10032 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Frame { - msec: 10048 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Frame { - msec: 10064 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Frame { - msec: 10080 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Frame { - msec: 10096 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Frame { - msec: 10112 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Frame { - msec: 10128 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Key { - type: 6 - key: 16777235 - modifiers: 536870912 - text: "1e" - autorep: false - count: 1 - } - Frame { - msec: 10144 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Frame { - msec: 10160 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Frame { - msec: 10176 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Frame { - msec: 10192 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Frame { - msec: 10208 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Frame { - msec: 10224 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Frame { - msec: 10240 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Key { - type: 7 - key: 16777235 - modifiers: 536870912 - text: "1e" - autorep: false - count: 1 - } - Frame { - msec: 10256 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Frame { - msec: 10272 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Frame { - msec: 10288 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Frame { - msec: 10304 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Frame { - msec: 10320 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Frame { - msec: 10336 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Frame { - msec: 10352 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Frame { - msec: 10368 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Frame { - msec: 10384 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Frame { - msec: 10400 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Frame { - msec: 10416 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Frame { - msec: 10432 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Frame { - msec: 10448 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Frame { - msec: 10464 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Key { - type: 6 - key: 16777249 - modifiers: 67108864 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 10480 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Frame { - msec: 10496 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Frame { - msec: 10512 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Frame { - msec: 10528 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Frame { - msec: 10544 - hash: "0d30916c7e05ff8609af5894f47a89bb" - } - Frame { - msec: 10560 - image: "gridview2.10.png" + hash: "33d81c39d16c6a326012499796e50e03" } } diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/gridview2.qml b/tests/auto/declarative/visual/qmlgraphicsgridview/gridview2.qml index b30e693..81d06cf 100644 --- a/tests/auto/declarative/visual/qmlgraphicsgridview/gridview2.qml +++ b/tests/auto/declarative/visual/qmlgraphicsgridview/gridview2.qml @@ -43,6 +43,7 @@ Rectangle { id: gridView; anchors.fill: parent cellWidth: 100; cellHeight: 100; cacheBuffer: 200 model: appModel; delegate: appDelegate; focus: true + keyNavigationWraps: true flickableData: [ Rectangle { diff --git a/tests/auto/declarative/visual/webview/zooming/data/zooming.0.png b/tests/auto/declarative/visual/webview/zooming/data/zooming.0.png Binary files differnew file mode 100644 index 0000000..aaab35d --- /dev/null +++ b/tests/auto/declarative/visual/webview/zooming/data/zooming.0.png diff --git a/tests/auto/declarative/visual/webview/zooming/data/zooming.1.png b/tests/auto/declarative/visual/webview/zooming/data/zooming.1.png Binary files differnew file mode 100644 index 0000000..aaab35d --- /dev/null +++ b/tests/auto/declarative/visual/webview/zooming/data/zooming.1.png diff --git a/tests/auto/declarative/visual/webview/zooming/data/zooming.2.png b/tests/auto/declarative/visual/webview/zooming/data/zooming.2.png Binary files differnew file mode 100644 index 0000000..aaab35d --- /dev/null +++ b/tests/auto/declarative/visual/webview/zooming/data/zooming.2.png diff --git a/tests/auto/declarative/visual/webview/zooming/data/zooming.3.png b/tests/auto/declarative/visual/webview/zooming/data/zooming.3.png Binary files differnew file mode 100644 index 0000000..aaab35d --- /dev/null +++ b/tests/auto/declarative/visual/webview/zooming/data/zooming.3.png diff --git a/tests/auto/declarative/visual/webview/zooming/data/zooming.qml b/tests/auto/declarative/visual/webview/zooming/data/zooming.qml new file mode 100644 index 0000000..ad83800 --- /dev/null +++ b/tests/auto/declarative/visual/webview/zooming/data/zooming.qml @@ -0,0 +1,2115 @@ +import Qt.VisualTest 4.6 + +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/visual/webview/zooming/zooming.html b/tests/auto/declarative/visual/webview/zooming/zooming.html new file mode 100644 index 0000000..4e91035 --- /dev/null +++ b/tests/auto/declarative/visual/webview/zooming/zooming.html @@ -0,0 +1,6 @@ +<html> +<body> +<h1>Zooming</h1> +<p> +This test shows how zooming can be to HTML elements.</p> +<img src="qtlogo.png"> diff --git a/tests/auto/declarative/visual/webview/zooming/zooming.qml b/tests/auto/declarative/visual/webview/zooming/zooming.qml new file mode 100644 index 0000000..3ac57f6 --- /dev/null +++ b/tests/auto/declarative/visual/webview/zooming/zooming.qml @@ -0,0 +1,17 @@ +import Qt 4.6 + +// 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 { + width: 200 + height: 250 + x: Behavior { NumberAnimation { } } + y: Behavior { NumberAnimation { } } + scale: Behavior { NumberAnimation { } } + url: "zooming.html" + preferredWidth: width + preferredHeight: height + onDoubleClick: {print(clickX,clickY);heuristicZoom(clickX,clickY,2)} + onZoomTo: {print(zoom);scale=zoom;x=width/2-centerX;y=height/2-centerY} +} diff --git a/tests/auto/declarative/xmlhttprequest/data/cdata.qml b/tests/auto/declarative/xmlhttprequest/data/cdata.qml new file mode 100644 index 0000000..5faa359 --- /dev/null +++ b/tests/auto/declarative/xmlhttprequest/data/cdata.qml @@ -0,0 +1,135 @@ +import Qt 4.6 + +Object { + property bool xmlTest: false + property bool dataOK: false + + Script { + function checkCData(text, whitespacetext) + { + // This is essentially a copy of text.qml/checkText() + + if (text == null) + return; + + if (text.nodeName != "#cdata-section") + return; + + if (text.nodeValue != "Hello world!") + return; + + if (text.nodeType != 4) + return; + + if (text.parentNode.nodeName != "item") + return; + + if (text.childNodes.length != 0) + return; + + if (text.firstChild != null) + return; + + if (text.lastChild != null) + return; + + if (text.previousSibling != null) + return; + + if (text.nextSibling != null) + return; + + if (text.attributes != null) + return; + + if (text.wholeText != "Hello world!") + return; + + if (text.data != "Hello world!") + return; + + if (text.length != 12) + return; + + if (text.isElementContentWhitespace != false) + return; + + if (whitespacetext.nodeName != "#cdata-section") + return; + + if (whitespacetext.nodeValue != " ") + return; + + if (whitespacetext.nodeType != 4) + return; + + if (whitespacetext.parentNode.nodeName != "item") + return; + + if (whitespacetext.childNodes.length != 0) + return; + + if (whitespacetext.firstChild != null) + return; + + if (whitespacetext.lastChild != null) + return; + + if (whitespacetext.previousSibling != null) + return; + + if (whitespacetext.nextSibling != null) + return; + + if (whitespacetext.attributes != null) + return; + + if (whitespacetext.wholeText != " ") + return; + + if (whitespacetext.data != " ") + return; + + if (whitespacetext.length != 3) + return; + + if (whitespacetext.isElementContentWhitespace != true) + return; + + + xmlTest = true; + } + + function checkXML(document) + { + checkCData(document.documentElement.childNodes[0].childNodes[0], + document.documentElement.childNodes[1].childNodes[0]); + + } + } + + Component.onCompleted: { + var x = new XMLHttpRequest; + + x.open("GET", "cdata.xml"); + + // Test to the end + x.onreadystatechange = function() { + if (x.readyState == XMLHttpRequest.DONE) { + + dataOK = true; + + if (x.responseXML != null) + checkXML(x.responseXML); + + } + } + + x.send() + } +} + + + + + diff --git a/tests/auto/declarative/xmlhttprequest/data/cdata.xml b/tests/auto/declarative/xmlhttprequest/data/cdata.xml new file mode 100644 index 0000000..061d37c --- /dev/null +++ b/tests/auto/declarative/xmlhttprequest/data/cdata.xml @@ -0,0 +1,2 @@ +<root><item><![CDATA[Hello world!]]></item><item><![CDATA[ ]]></item></root> + diff --git a/tests/auto/declarative/xmlhttprequest/data/document.qml b/tests/auto/declarative/xmlhttprequest/data/document.qml index fe78e31..7601a10 100644 --- a/tests/auto/declarative/xmlhttprequest/data/document.qml +++ b/tests/auto/declarative/xmlhttprequest/data/document.qml @@ -10,12 +10,18 @@ Object { if (document.xmlVersion != "1.0") return; + if (document.xmlEncoding != "UTF-8") + return; + if (document.xmlStandalone != true) return; if (document.documentElement == null) return; + if (document.nodeName != "#document") + return; + if (document.nodeValue != null) return; diff --git a/tests/auto/declarative/xmlhttprequest/data/document.xml b/tests/auto/declarative/xmlhttprequest/data/document.xml index b5fbe31..fb693ea 100644 --- a/tests/auto/declarative/xmlhttprequest/data/document.xml +++ b/tests/auto/declarative/xmlhttprequest/data/document.xml @@ -1,3 +1,3 @@ -<?xml version="1.0" standalone='yes' ?> +<?xml version="1.0" encoding="UTF-8" standalone='yes'?> <root> </root> diff --git a/tests/auto/declarative/xmlhttprequest/data/element.qml b/tests/auto/declarative/xmlhttprequest/data/element.qml index a1ae2ab..79620bf 100644 --- a/tests/auto/declarative/xmlhttprequest/data/element.qml +++ b/tests/auto/declarative/xmlhttprequest/data/element.qml @@ -5,7 +5,7 @@ Object { property bool dataOK: false Script { - function checkElement(e) + function checkElement(e, person, fruit) { if (e.tagName != "root") return; @@ -47,6 +47,9 @@ Object { if (e.attributes == null) return; + if (e.attributes.length != 2) + return; + var attr1 = e.attributes["attr"]; if (attr1.nodeValue != "value") return; @@ -67,12 +70,33 @@ Object { if (attrIdx2 != null) return; + // Check person and fruit sub elements + if (person.parentNode.nodeName != "root") + return; + + if (person.previousSibling != null) + return; + + if (person.nextSibling.nodeName != "fruit") + return; + + if (fruit.parentNode.nodeName != "root") + return; + + if (fruit.previousSibling.nodeName != "person") + return; + + if (fruit.nextSibling != null) + return; + xmlTest = true; } function checkXML(document) { - checkElement(document.documentElement); + checkElement(document.documentElement, + document.documentElement.childNodes[0], + document.documentElement.childNodes[1]); } } diff --git a/tests/auto/declarative/xmlhttprequest/data/text.qml b/tests/auto/declarative/xmlhttprequest/data/text.qml new file mode 100644 index 0000000..8c97504 --- /dev/null +++ b/tests/auto/declarative/xmlhttprequest/data/text.qml @@ -0,0 +1,131 @@ +import Qt 4.6 + +Object { + property bool xmlTest: false + property bool dataOK: false + + Script { + function checkText(text, whitespacetext) + { + if (text == null) + return; + + if (text.nodeName != "#text") + return; + + if (text.nodeValue != "Hello world!") + return; + + if (text.nodeType != 3) + return; + + if (text.parentNode.nodeName != "item") + return; + + if (text.childNodes.length != 0) + return; + + if (text.firstChild != null) + return; + + if (text.lastChild != null) + return; + + if (text.previousSibling != null) + return; + + if (text.nextSibling != null) + return; + + if (text.attributes != null) + return; + + if (text.wholeText != "Hello world!") + return; + + if (text.data != "Hello world!") + return; + + if (text.length != 12) + return; + + if (text.isElementContentWhitespace != false) + return; + + if (whitespacetext.nodeName != "#text") + return; + + if (whitespacetext.nodeValue != " ") + return; + + if (whitespacetext.nodeType != 3) + return; + + if (whitespacetext.parentNode.nodeName != "item") + return; + + if (whitespacetext.childNodes.length != 0) + return; + + if (whitespacetext.firstChild != null) + return; + + if (whitespacetext.lastChild != null) + return; + + if (whitespacetext.previousSibling != null) + return; + + if (whitespacetext.nextSibling != null) + return; + + if (whitespacetext.attributes != null) + return; + + if (whitespacetext.wholeText != " ") + return; + + if (whitespacetext.data != " ") + return; + + if (whitespacetext.length != 3) + return; + + if (whitespacetext.isElementContentWhitespace != true) + return; + + xmlTest = true; + } + + function checkXML(document) + { + checkText(document.documentElement.childNodes[0].childNodes[0], + document.documentElement.childNodes[1].childNodes[0]); + + } + } + + Component.onCompleted: { + var x = new XMLHttpRequest; + + x.open("GET", "text.xml"); + + // Test to the end + x.onreadystatechange = function() { + if (x.readyState == XMLHttpRequest.DONE) { + + dataOK = true; + + if (x.responseXML != null) + checkXML(x.responseXML); + + } + } + + x.send() + } +} + + + + diff --git a/tests/auto/declarative/xmlhttprequest/data/text.xml b/tests/auto/declarative/xmlhttprequest/data/text.xml new file mode 100644 index 0000000..e741688 --- /dev/null +++ b/tests/auto/declarative/xmlhttprequest/data/text.xml @@ -0,0 +1 @@ +<root><item>Hello world!</item><item> </item></root> diff --git a/tests/auto/declarative/xmlhttprequest/tst_xmlhttprequest.cpp b/tests/auto/declarative/xmlhttprequest/tst_xmlhttprequest.cpp index 0af7b18..100a11b 100644 --- a/tests/auto/declarative/xmlhttprequest/tst_xmlhttprequest.cpp +++ b/tests/auto/declarative/xmlhttprequest/tst_xmlhttprequest.cpp @@ -84,10 +84,14 @@ private slots: void statusText(); void responseText(); void responseXML_invalid(); + void invalidMethodUsage(); + // Attributes void document(); void element(); void attr(); + void text(); + void cdata(); // Crashes // void outstanding_request_at_shutdown(); @@ -962,6 +966,10 @@ void tst_xmlhttprequest::responseText() } } +void tst_xmlhttprequest::invalidMethodUsage() +{ +} + void tst_xmlhttprequest::responseXML_invalid() { QmlComponent component(&engine, TEST_FILE("responseXML_invalid.qml")); @@ -1017,6 +1025,34 @@ void tst_xmlhttprequest::attr() delete object; } +// Test the Text DOM element +void tst_xmlhttprequest::text() +{ + QmlComponent component(&engine, TEST_FILE("text.qml")); + QObject *object = component.create(); + QVERIFY(object != 0); + + TRY_WAIT(object->property("dataOK").toBool() == true); + + QCOMPARE(object->property("xmlTest").toBool(), true); + + delete object; +} + +// Test the CDataSection DOM element +void tst_xmlhttprequest::cdata() +{ + QmlComponent component(&engine, TEST_FILE("cdata.qml")); + QObject *object = component.create(); + QVERIFY(object != 0); + + TRY_WAIT(object->property("dataOK").toBool() == true); + + QCOMPARE(object->property("xmlTest").toBool(), true); + + delete object; +} + QTEST_MAIN(tst_xmlhttprequest) #include "tst_xmlhttprequest.moc" |