diff options
Diffstat (limited to 'src/quick')
-rw-r--r-- | src/quick/items/context2d/qquickcanvasitem.cpp | 2 | ||||
-rw-r--r-- | src/quick/items/qquickdrag.cpp | 6 | ||||
-rw-r--r-- | src/quick/items/qquickwindowmodule.cpp | 4 | ||||
-rw-r--r-- | src/quick/scenegraph/qsgcontext.cpp | 6 | ||||
-rw-r--r-- | src/quick/scenegraph/qsgwindowsrenderloop.cpp | 8 | ||||
-rw-r--r-- | src/quick/scenegraph/util/qsgatlastexture.cpp | 4 | ||||
-rw-r--r-- | src/quick/util/qquickpropertychanges.cpp | 4 |
7 files changed, 23 insertions, 11 deletions
diff --git a/src/quick/items/context2d/qquickcanvasitem.cpp b/src/quick/items/context2d/qquickcanvasitem.cpp index 11aff9b95d..cb694c499a 100644 --- a/src/quick/items/context2d/qquickcanvasitem.cpp +++ b/src/quick/items/context2d/qquickcanvasitem.cpp @@ -277,7 +277,7 @@ QQuickCanvasItemPrivate::~QQuickCanvasItemPrivate() \section1 Tips for Porting Existing HTML5 Canvas Applications - Although the Canvas item is provides a HTML5 like API, HTML5 canvas + Although the Canvas item provides an HTML5-like API, HTML5 canvas applications need to be modified to run in the Canvas item: \list \li Replace all DOM API calls with QML property bindings or Canvas item methods. diff --git a/src/quick/items/qquickdrag.cpp b/src/quick/items/qquickdrag.cpp index 64e46d1762..4d46485718 100644 --- a/src/quick/items/qquickdrag.cpp +++ b/src/quick/items/qquickdrag.cpp @@ -33,6 +33,9 @@ #include "qquickdrag_p.h" +#include <private/qguiapplication_p.h> +#include <qpa/qplatformintegration.h> +#include <qpa/qplatformdrag.h> #include <private/qquickitem_p.h> #include <QtQuick/private/qquickevents_p_p.h> #include <private/qquickitemchangelistener_p.h> @@ -724,7 +727,8 @@ Qt::DropAction QQuickDragAttachedPrivate::startDrag(Qt::DropActions supportedAct Qt::DropAction dropAction = drag->exec(supportedActions); - delete drag; + if (!QGuiApplicationPrivate::platformIntegration()->drag()->ownsDragObject()) + drag->deleteLater(); deliverLeaveEvent(); diff --git a/src/quick/items/qquickwindowmodule.cpp b/src/quick/items/qquickwindowmodule.cpp index 414f068285..5c66a2ef84 100644 --- a/src/quick/items/qquickwindowmodule.cpp +++ b/src/quick/items/qquickwindowmodule.cpp @@ -143,9 +143,9 @@ void QQuickWindowQmlImpl::setWindowVisibility() error.setObject(this); const QQmlContextData* urlContext = data->context; - while (urlContext && urlContext->url.isEmpty()) + while (urlContext && urlContext->url().isEmpty()) urlContext = urlContext->parent; - error.setUrl(urlContext ? urlContext->url : QUrl()); + error.setUrl(urlContext ? urlContext->url() : QUrl()); QString objectId = data->context->findObjectId(this); if (!objectId.isEmpty()) diff --git a/src/quick/scenegraph/qsgcontext.cpp b/src/quick/scenegraph/qsgcontext.cpp index 100861bfc1..dd071d757e 100644 --- a/src/quick/scenegraph/qsgcontext.cpp +++ b/src/quick/scenegraph/qsgcontext.cpp @@ -256,12 +256,12 @@ public: advanceAnimation(); } - float m_time; - float m_vsync; + double m_time; + double m_vsync; Mode m_mode; QElapsedTimer m_timer; QElapsedTimer m_wallTime; - float m_lag; + double m_lag; int m_bad; int m_good; }; diff --git a/src/quick/scenegraph/qsgwindowsrenderloop.cpp b/src/quick/scenegraph/qsgwindowsrenderloop.cpp index b88d21ce66..0e22fa8b7b 100644 --- a/src/quick/scenegraph/qsgwindowsrenderloop.cpp +++ b/src/quick/scenegraph/qsgwindowsrenderloop.cpp @@ -35,6 +35,7 @@ #include <QtCore/QCoreApplication> #include <QtCore/QLibraryInfo> +#include <QtCore/QThread> #include <QtGui/QScreen> #include <QtGui/QGuiApplication> @@ -355,13 +356,20 @@ bool QSGWindowsRenderLoop::event(QEvent *event) void QSGWindowsRenderLoop::render() { RLDEBUG("render"); + bool rendered = false; foreach (const WindowData &wd, m_windows) { if (wd.pendingUpdate) { const_cast<WindowData &>(wd).pendingUpdate = false; renderWindow(wd.window); + rendered = true; } } + if (!rendered) { + RLDEBUG("no changes, sleep"); + QThread::msleep(m_vsyncDelta); + } + if (m_animationDriver->isRunning()) { RLDEBUG("advancing animations"); QSG_LOG_TIME_SAMPLE(time_start); diff --git a/src/quick/scenegraph/util/qsgatlastexture.cpp b/src/quick/scenegraph/util/qsgatlastexture.cpp index 09418ecfd7..076b068f27 100644 --- a/src/quick/scenegraph/util/qsgatlastexture.cpp +++ b/src/quick/scenegraph/util/qsgatlastexture.cpp @@ -394,8 +394,8 @@ void Atlas::bind(QSGTexture::Filtering filtering) t->releaseImage(); qCDebug(QSG_LOG_TIME_TEXTURE).nospace() << "atlastexture uploaded in: " << qsg_renderer_timer.elapsed() - << "ms (" << m_pending_uploads.at(i)->image().width() << "x" - << m_pending_uploads.at(i)->image().height() << ")"; + << "ms (" << t->textureSize().width() << "x" + << t->textureSize().height() << ")"; // Skip mipmap; unused Q_QUICK_SG_PROFILE_RECORD(QQuickProfiler::SceneGraphTexturePrepare); diff --git a/src/quick/util/qquickpropertychanges.cpp b/src/quick/util/qquickpropertychanges.cpp index 4e96d90fde..6c333c6b13 100644 --- a/src/quick/util/qquickpropertychanges.cpp +++ b/src/quick/util/qquickpropertychanges.cpp @@ -295,8 +295,8 @@ void QQuickPropertyChangesPrivate::decodeBinding(const QString &propertyPrefix, int column = -1; QQmlData *ddata = QQmlData::get(q); - if (ddata && ddata->outerContext && !ddata->outerContext->url.isEmpty()) { - url = ddata->outerContext->url; + if (ddata && ddata->outerContext && !ddata->outerContext->url().isEmpty()) { + url = ddata->outerContext->url(); line = ddata->lineNumber; column = ddata->columnNumber; } |