Merge branch 'master' into refactor
authorGunnar Sletta <gunnar.sletta@nokia.com>
Mon, 12 Sep 2011 06:12:58 +0000 (08:12 +0200)
committerGunnar Sletta <gunnar.sletta@nokia.com>
Mon, 12 Sep 2011 06:12:58 +0000 (08:12 +0200)
Conflicts:
examples/declarative/cppextensions/qwidgets/qwidgets.pro
examples/declarative/minehunt/main.cpp
examples/declarative/minehunt/minehunt.pro
src/declarative/items/context2d/qsgcontext2d.cpp
src/declarative/items/qsgflickable.cpp
src/declarative/items/qsgtextedit.cpp
src/declarative/items/qsgtextinput.cpp
src/declarative/particles/qsgangleddirection.cpp
src/declarative/particles/qsgcumulativedirection.cpp
src/declarative/particles/qsgcumulativedirection_p.h
src/declarative/particles/qsgfollowemitter.cpp
src/declarative/particles/qsgmodelparticle.cpp
src/declarative/particles/qsgparticlesystem.cpp
src/qtquick1/util/qdeclarativeview.h
tests/auto/declarative/examples/examples.pro
tests/auto/declarative/qsgfocusscope/tst_qsgfocusscope.cpp

Change-Id: Ib4be2a5e742dee1a399d73da97161736f77448e5

43 files changed:
1  2 
examples/declarative/minehunt/main.cpp
examples/declarative/qtquick1/cppextensions/qwidgets/qwidgets.cpp
src/declarative/debugger/qdeclarativedebugserver.cpp
src/declarative/declarative.pro
src/declarative/items/context2d/qsgcontext2d.cpp
src/declarative/items/qsganimation.cpp
src/declarative/items/qsgcanvas.cpp
src/declarative/items/qsgflickable.cpp
src/declarative/items/qsgflickable_p.h
src/declarative/items/qsgflickable_p_p.h
src/declarative/items/qsgitem.cpp
src/declarative/items/qsgitem.h
src/declarative/items/qsgitem_p.h
src/declarative/items/qsgitemsmodule.cpp
src/declarative/items/qsgshadereffect.cpp
src/declarative/items/qsgshadereffect_p.h
src/declarative/items/qsgshadereffectmesh_p.h
src/declarative/items/qsgtext.cpp
src/declarative/items/qsgtextedit.cpp
src/declarative/items/qsgtextinput.cpp
src/declarative/items/qsgview.h
src/declarative/particles/qsgcustomparticle.cpp
src/declarative/particles/qsgimageparticle.cpp
src/declarative/particles/qsgimageparticle_p.h
src/declarative/particles/qsgparticlesystem.cpp
src/declarative/qml/ftw/qdeclarativepool_p.h
src/declarative/qml/qdeclarativecomponent.cpp
src/declarative/qml/qdeclarativeengine.cpp
src/declarative/qml/qdeclarativevme.cpp
src/declarative/qml/v8/qv8qobjectwrapper.cpp
src/qtquick1/graphicsitems/qdeclarativetextedit.cpp
src/qtquick1/graphicsitems/qdeclarativetextinput.cpp
src/qtquick1/util/qdeclarativeview.h
tests/auto/declarative/declarative.pro
tests/auto/declarative/examples/examples.pro
tests/auto/declarative/examples/tst_examples.cpp
tests/auto/declarative/qsgfocusscope/tst_qsgfocusscope.cpp
tests/auto/declarative/qsggridview/tst_qsggridview.cpp
tests/auto/declarative/qsglistview/tst_qsglistview.cpp
tests/auto/declarative/qsgtextedit/tst_qsgtextedit.cpp
tests/auto/declarative/qsgtextinput/tst_qsgtextinput.cpp
tests/auto/qtquick1/qdeclarativetextedit/tst_qdeclarativetextedit.cpp
tests/auto/qtquick1/qdeclarativetextinput/tst_qdeclarativetextinput.cpp

@@@ -39,8 -39,8 +39,8 @@@
  **
  ****************************************************************************/
  
- #include <QtWidgets/QApplication>
- #include <QtQuick1/QDeclarativeView>
 -#include <QtGui/QApplication>
++#include <QtGui/QGuiApplication>
+ #include <qsgview.h>
  #include <QtDeclarative/QDeclarativeContext>
  #include <QtDeclarative/QDeclarativeEngine>
  
  
  int main(int argc, char *argv[])
  {
--    QApplication app(argc, argv);
-     QDeclarativeView canvas;
-     
++    QGuiApplication app(argc, argv);
+     QSGView canvas;
      qmlRegisterType<TileData>();
      MinehuntGame* game = new MinehuntGame();
-     
- #ifdef Q_OS_SYMBIAN
-     canvas.setResizeMode(QDeclarativeView::SizeRootObjectToView);
- #endif
-     canvas.engine()->rootContext()->setContextObject(game);        
+     canvas.setResizeMode(QSGView::SizeRootObjectToView);
+     canvas.engine()->rootContext()->setContextObject(game);
      canvas.setSource(QString("qrc:minehunt.qml"));
      QObject::connect(canvas.engine(), SIGNAL(quit()), &app, SLOT(quit()));
-     
- #ifdef Q_OS_SYMBIAN
-     canvas.showFullScreen();
- #else
-     canvas.setGeometry(QRect(100, 100, 450, 450));
      canvas.show();
- #endif
      return app.exec();
  }
Simple merge
  #include "qsgcontext2d_p_p.h"
  #include "private/qsgadaptationlayer_p.h"
  #include "qsgcanvasitem_p.h"
 -#include <QtOpenGL/qglframebufferobject.h>
 +#include <QtGui/qopenglframebufferobject.h>
  #include <QtCore/qdebug.h>
  #include "private/qsgcontext_p.h"
+ #include "private/qdeclarativesvgparser_p.h"
  
 -#include <QtGui/qgraphicsitem.h>
 -#include <QtGui/qapplication.h>
 -#include <QtGui/qgraphicseffect.h>
 +#include <QtGui/qguiapplication.h>
  #include <qdeclarativeinfo.h>
  #include <QtCore/qmath.h>
  #include "qdeclarativepixmapcache_p.h"
@@@ -76,7 -79,10 +77,8 @@@ void copy_vector(QVector<T>* dst, cons
      }
  }
  
 -// Note, this is exported but in a private header as qtopengl depends on it.
 -// But it really should be considered private API
 -void qt_blurImage(QPainter *p, QImage &blurImage, qreal radius, bool quality, bool alphaOnly, int transposed = 0);
 -void qt_blurImage(QImage &blurImage, qreal radius, bool quality, int transposed = 0);
 +static bool parsePathDataFast(const QString &dataStr, QPainterPath &path);
++
  #define DEGREES(t) ((t) * 180.0 / Q_PI)
  #define qClamp(val, min, max) qMin(qMax(val, min), max)
  
Simple merge
@@@ -778,7 -778,22 +779,22 @@@ void QSGFlickable::setFlickableDirectio
      }
  }
  
+ bool QSGFlickable::pixelAligned() const
+ {
+     Q_D(const QSGFlickable);
+     return d->pixelAligned;
+ }
+ void QSGFlickable::setPixelAligned(bool align)
+ {
+     Q_D(QSGFlickable);
+     if (align != d->pixelAligned) {
+         d->pixelAligned = align;
+         emit pixelAlignedChanged();
+     }
+ }
 -void QSGFlickablePrivate::handleMousePressEvent(QGraphicsSceneMouseEvent *event)
 +void QSGFlickablePrivate::handleMousePressEvent(QMouseEvent *event)
  {
      Q_Q(QSGFlickable);
      if (interactive && timeline.isActive()
Simple merge
Simple merge
Simple merge
@@@ -125,9 -126,11 +126,12 @@@ static void qt_sgitems_defineModule(con
      qmlRegisterType<QDeclarativePathLine>(uri,major,minor,"PathLine");
      qmlRegisterType<QDeclarativePathPercent>(uri,major,minor,"PathPercent");
      qmlRegisterType<QDeclarativePathQuad>(uri,major,minor,"PathQuad");
+     qmlRegisterType<QDeclarativePathCatmullRomCurve>("QtQuick",2,0,"PathCurve");
+     qmlRegisterType<QDeclarativePathArc>("QtQuick",2,0,"PathArc");
+     qmlRegisterType<QDeclarativePathSvg>("QtQuick",2,0,"PathSvg");
      qmlRegisterType<QSGPathView>(uri,major,minor,"PathView");
 -    qmlRegisterUncreatableType<QSGBasePositioner>(uri,major,minor,"Positioner","Positioner is an abstract type that is only available as an attached property.");
 +    qmlRegisterUncreatableType<QSGBasePositioner>(uri,major,minor,"Positioner",
 +                                                  QStringLiteral("Positioner is an abstract type that is only available as an attached property."));
  #ifndef QT_NO_VALIDATOR
      qmlRegisterType<QIntValidator>(uri,major,minor,"IntValidator");
      qmlRegisterType<QDoubleValidator>(uri,major,minor,"DoubleValidator");
Simple merge
Simple merge
@@@ -403,7 -405,11 +403,9 @@@ bool QSGTextInputPrivate::determineHori
      if (hAlignImplicit) {
          // if no explicit alignment has been set, follow the natural layout direction of the text
          QString text = control->text();
+         if (text.isEmpty())
+             text = control->preeditAreaText();
 -        bool isRightToLeft = text.isEmpty()
 -                ? QApplication::keyboardInputDirection() == Qt::RightToLeft
 -                : text.isRightToLeft();
 +        bool isRightToLeft = text.isEmpty() ? QGuiApplication::keyboardInputDirection() == Qt::RightToLeft : text.isRightToLeft();
          return setHAlign(isRightToLeft ? QSGTextInput::AlignRight : QSGTextInput::AlignLeft);
      }
      return false;
Simple merge
@@@ -532,14 -522,15 +536,15 @@@ void QSGCustomParticle::buildData(
  {
      if (!m_rootNode)
          return;
+     const QByteArray timestampName("qt_Timestamp");
      QVector<QPair<QByteArray, QVariant> > values;
 -    QVector<QPair<QByteArray, QPointer<QSGItem> > > textures;
 -    const QVector<QPair<QByteArray, QPointer<QSGItem> > > &oldTextures = m_material.textureProviders();
 +    QVector<QPair<QByteArray, QSGTextureProvider *> > textures;
 +    const QVector<QPair<QByteArray, QSGTextureProvider *> > &oldTextures = m_material->textureProviders();
      for (int i = 0; i < oldTextures.size(); ++i) {
 -        QSGTextureProvider *oldSource = QSGTextureProvider::from(oldTextures.at(i).second);
 -        if (oldSource && oldSource->textureChangedSignal())
 +        QSGTextureProvider *t = oldTextures.at(i).second;
 +        if (t)
              foreach (QSGShaderEffectNode* node, m_nodes)
 -                disconnect(oldTextures.at(i).second, oldSource->textureChangedSignal(), node, SLOT(markDirtyTexture()));
 +                disconnect(t, SIGNAL(textureChanged()), node, SLOT(markDirtyTexture()));
      }
      for (int i = 0; i < m_sources.size(); ++i) {
          const SourceData &source = m_sources.at(i);
  #ifndef ULTRAPARTICLE_H
  #define ULTRAPARTICLE_H
  #include "qsgparticlepainter_p.h"
- #include "qsgstochasticdirection_p.h"
+ #include "qsgdirection_p.h"
  #include <QDeclarativeListProperty>
  #include <qsgsimplematerial.h>
 +#include <QtGui/qcolor.h>
  
  QT_BEGIN_HEADER
  
  
  #include <QtCore/qdatetime.h>
  #include <QtCore/qurl.h>
 -#include <QtGui/qgraphicssceneevent.h>
 -#include <QtGui/qgraphicsview.h>
 -#include <QtGui/qwidget.h>
 +#include <QtWidgets/qgraphicssceneevent.h>
 +#include <QtWidgets/qgraphicsview.h>
 +#include <QtWidgets/qwidget.h>
+ #include <QtDeclarative/qdeclarativedebug.h>
  
  QT_BEGIN_HEADER
  
@@@ -124,15 -127,11 +124,12 @@@ void tst_qsgfocusscope::basic(
      QVERIFY(item3 != 0);
  
      view->show();
 -    qApp->setActiveWindow(view);
 +    view->requestActivateWindow();
 +    qApp->processEvents();
  
- #ifdef Q_WS_X11
-     // to be safe and avoid failing setFocus with window managers
-     qt_x11_wait_for_window_manager(view);
- #endif
+     QTest::qWaitForWindowShown(view);
  
 -    QTRY_VERIFY(view->hasFocus());
 +    QVERIFY(view->isTopLevel());
      QVERIFY(item0->hasActiveFocus() == true);
      QVERIFY(item1->hasActiveFocus() == true);
      QVERIFY(item2->hasActiveFocus() == false);
@@@ -170,15 -169,11 +167,12 @@@ void tst_qsgfocusscope::nested(
      QVERIFY(item5 != 0);
  
      view->show();
 -    qApp->setActiveWindow(view);
 +    view->requestActivateWindow();
 +    qApp->processEvents();
  
- #ifdef Q_WS_X11
-     // to be safe and avoid failing setFocus with window managers
-     qt_x11_wait_for_window_manager(view);
- #endif
+     QTest::qWaitForWindowShown(view);
  
 -    QTRY_VERIFY(view->hasFocus());
 +    QVERIFY(view->windowState() == Qt::WindowActive);
  
      QVERIFY(item1->hasActiveFocus() == true);
      QVERIFY(item2->hasActiveFocus() == true);
@@@ -203,15 -198,11 +197,12 @@@ void tst_qsgfocusscope::noFocus(
      QVERIFY(item3 != 0);
  
      view->show();
 -    qApp->setActiveWindow(view);
 +    view->requestActivateWindow();
 +    qApp->processEvents();
  
- #ifdef Q_WS_X11
-     // to be safe and avoid failing setFocus with window managers
-     qt_x11_wait_for_window_manager(view);
- #endif
+     QTest::qWaitForWindowShown(view);
  
 -    QTRY_VERIFY(view->hasFocus());
 +    QVERIFY(view->windowState() == Qt::WindowActive);
      QVERIFY(item0->hasActiveFocus() == false);
      QVERIFY(item1->hasActiveFocus() == false);
      QVERIFY(item2->hasActiveFocus() == false);
@@@ -247,15 -238,11 +238,12 @@@ void tst_qsgfocusscope::textEdit(
      QVERIFY(item3 != 0);
  
      view->show();
 -    qApp->setActiveWindow(view);
 +    view->requestActivateWindow();
 +    qApp->processEvents();
  
- #ifdef Q_WS_X11
-     // to be safe and avoid failing setFocus with window managers
-     qt_x11_wait_for_window_manager(view);
- #endif
+     QTest::qWaitForWindowShown(view);
  
 -    QTRY_VERIFY(view->hasFocus());
 +    QVERIFY(view->windowState() == Qt::WindowActive);
      QVERIFY(item0->hasActiveFocus() == true);
      QVERIFY(item1->hasActiveFocus() == true);
      QVERIFY(item2->hasActiveFocus() == false);
@@@ -305,15 -292,11 +293,12 @@@ void tst_qsgfocusscope::forceFocus(
      QVERIFY(item5 != 0);
  
      view->show();
 -    qApp->setActiveWindow(view);
 +    view->requestActivateWindow();
 +    qApp->processEvents();
  
- #ifdef Q_WS_X11
-     // to be safe and avoid failing setFocus with window managers
-     qt_x11_wait_for_window_manager(view);
- #endif
+     QTest::qWaitForWindowShown(view);
  
 -    QTRY_VERIFY(view->hasFocus());
 +    QVERIFY(view->windowState() == Qt::WindowActive);
      QVERIFY(item0->hasActiveFocus() == true);
      QVERIFY(item1->hasActiveFocus() == true);
      QVERIFY(item2->hasActiveFocus() == false);
@@@ -379,13 -362,9 +364,10 @@@ void tst_qsgfocusscope::signalEmission(
      QVERIFY(item4 != 0);
  
      view->show();
 -    qApp->setActiveWindow(view);
 +    view->requestActivateWindow();
 +    qApp->processEvents();
  
- #ifdef Q_WS_X11
-     // to be safe and avoid failing setFocus with window managers
-     qt_x11_wait_for_window_manager(view);
- #endif
+     QTest::qWaitForWindowShown(view);
  
      QVariant blue(QColor("blue"));
      QVariant red(QColor("red"));
@@@ -431,15 -410,11 +413,12 @@@ void tst_qsgfocusscope::qtBug13380(
  
      view->show();
      QVERIFY(view->rootObject());
 -    qApp->setActiveWindow(view);
 +    view->requestActivateWindow();
 +    qApp->processEvents();
  
- #ifdef Q_WS_X11
-     // to be safe and avoid failing setFocus with window managers
-     qt_x11_wait_for_window_manager(view);
- #endif
+     QTest::qWaitForWindowShown(view);
  
 -    QTRY_VERIFY(view->hasFocus());
 +    QVERIFY(view->windowState() == Qt::WindowActive);
      QVERIFY(view->rootObject()->property("noFocus").toBool());
  
      view->rootObject()->setProperty("showRect", true);
@@@ -610,16 -585,12 +589,13 @@@ void tst_qsgfocusscope::canvasFocus(
      QCOMPARE(item2->hasActiveFocus(), false);
  
      view->show();
 -    qApp->setActiveWindow(view);
 +    view->requestActivateWindow();
 +    qApp->processEvents();
  
- #ifdef Q_WS_X11
-     // to be safe and avoid failing setFocus with window managers
-     qt_x11_wait_for_window_manager(view);
- #endif
+     QTest::qWaitForWindowShown(view);
  
      // Now the canvas has focus, active focus given to item1
 -    QTRY_COMPARE(view->hasFocus(), true);
 +    QTRY_COMPARE((view->windowState() == Qt::WindowActive), true);
      QCOMPARE(rootItem->hasFocus(), true);
      QCOMPARE(rootItem->hasActiveFocus(), true);
      QCOMPARE(scope1->hasFocus(), true);
  #include <QDir>
  #include <QStyle>
  #include <QInputContext>
 -#include <private/qapplication_p.h>
 +#include <QtWidgets/5.0.0/QtWidgets/private/qapplication_p.h>
  
+ #include "qplatformdefs.h"
  #ifdef Q_OS_SYMBIAN
  // In Symbian OS test data is located in applications private dir
  #define SRCDIR "."