Merge branch 'master' into refactor
[profile/ivi/qtdeclarative.git] / src / declarative / items / qsgitem.cpp
index c2abc46..a779763 100644 (file)
@@ -51,9 +51,8 @@
 #include <QtDeclarative/qdeclarativeengine.h>
 #include <QtDeclarative/qdeclarativecomponent.h>
 #include <QtDeclarative/qdeclarativeinfo.h>
-#include <QtGui/qgraphicstransform.h>
+#include <QtWidgets/qgraphicstransform.h>
 #include <QtGui/qpen.h>
-#include <QtGui/qinputcontext.h>
 #include <QtCore/qdebug.h>
 #include <QtCore/qcoreevent.h>
 #include <QtCore/qnumeric.h>
@@ -2046,9 +2045,6 @@ void QSGItemPrivate::initCanvas(InitializationState *state, QSGCanvas *c)
     if (canvas && polishScheduled)
         QSGCanvasPrivate::get(canvas)->itemsToPolish.insert(q);
 
-    if (canvas && hoverEnabled && !canvas->hasMouseTracking())
-        canvas->setMouseTracking(true);
-
     itemNodeInstance = 0;
     opacityNode = 0;
     clipNode = 0;
@@ -2929,11 +2925,10 @@ void QSGItem::setInputMethodHints(Qt::InputMethodHints hints)
     if (!d->canvas || d->canvas->activeFocusItem() != this)
         return;
 
-    QSGCanvasPrivate::get(d->canvas)->updateInputMethodData();
+    QSGCanvasPrivate *cd = QSGCanvasPrivate::get(d->canvas);
+    cd->updateInputMethodData();
 #ifndef QT_NO_IM
-    if (d->canvas->hasFocus())
-        if (QInputContext *inputContext = d->canvas->inputContext())
-            inputContext->update();
+    cd->updateInputContext();
 #endif
 }
 
@@ -2941,9 +2936,8 @@ void QSGItem::updateMicroFocus()
 {
 #ifndef QT_NO_IM
     Q_D(QSGItem);
-    if (d->canvas && d->canvas->hasFocus())
-        if (QInputContext *inputContext = d->canvas->inputContext())
-            inputContext->update();
+    if (d->canvas)
+        QSGCanvasPrivate::get(d->canvas)->updateInputContext();
 #endif
 }
 
@@ -4415,7 +4409,7 @@ bool QSGItem::isUnderMouse() const
         return false;
 
     QPoint cursorPos = QCursor::pos();
-    if (QRectF(0, 0, width(), height()).contains(mapFromScene(d->canvas->mapFromGlobal(cursorPos))))
+    if (QRectF(0, 0, width(), height()).contains(mapFromScene(cursorPos))) // ### refactor: d->canvas->mapFromGlobal(cursorPos))))
         return true;
     return false;
 }
@@ -4430,22 +4424,6 @@ void QSGItem::setAcceptHoverEvents(bool enabled)
 {
     Q_D(QSGItem);
     d->hoverEnabled = enabled;
-
-    if (d->canvas){
-        QSGCanvasPrivate *c = QSGCanvasPrivate::get(d->canvas);
-        if (d->hoverEnabled){
-            if (!d->canvas->hasMouseTracking())
-                d->canvas->setMouseTracking(true);
-            if (isUnderMouse())
-                c->hoverItems.prepend(this);
-                c->sendHoverEvent(QEvent::HoverEnter, this, c->lastMousePosition, c->lastMousePosition,
-                        QApplication::keyboardModifiers(), true);
-        } else {
-            c->hoverItems.removeAll(this);
-            c->sendHoverEvent(QEvent::HoverLeave, this, c->lastMousePosition, c->lastMousePosition,
-                    QApplication::keyboardModifiers(), true);
-        }
-    }
 }
 
 void QSGItem::grabMouse() 
@@ -4980,6 +4958,24 @@ qint64 QSGItemPrivate::restart(QElapsedTimer &t)
         return ((QElapsedTimerConsistentTimeHack*)&t)->restart();
 }
 
+/*!
+    \fn bool QSGItem::isTextureProvider() const
+
+    Returns true if this item is a texture provider. The default
+    implementation returns false.
+
+    This function can be called from any thread.
+ */
+
+/*!
+    \fn QSGTextureProvider *QSGItem::textureProvider() const
+
+    Returns the texture provider for an item. The default implementation
+    returns 0.
+
+    This function may only be called on the rendering thread.
+ */
+
 QT_END_NAMESPACE
 
 #include <moc_qsgitem.cpp>