diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2013-12-24 10:33:07 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-12-24 10:33:07 +0100 |
commit | 751fa46df9bf06a1003df34b3e74c73c079e8626 (patch) | |
tree | 1de5e2588702bf8c29030fdfc55115caaa3ff2e2 /src | |
parent | 70004585f89f325f398c556d101bfa1833d87b53 (diff) | |
parent | d588ec795bf905d6d4a4827ad74f3d01315e40bf (diff) |
Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev
Diffstat (limited to 'src')
26 files changed, 114 insertions, 81 deletions
diff --git a/src/3rdparty/masm/wtf/MathExtras.h b/src/3rdparty/masm/wtf/MathExtras.h index 600a9c7148..5b12157148 100644 --- a/src/3rdparty/masm/wtf/MathExtras.h +++ b/src/3rdparty/masm/wtf/MathExtras.h @@ -267,7 +267,7 @@ template<typename T> inline T clampTo(double value, T min = defaultMinimumForCla return min; return static_cast<T>(value); } -template<> inline long long int clampTo(double, long long int, long long int); // clampTo does not support long long ints. +template<> long long int clampTo(double, long long int, long long int); // clampTo does not support long long ints. inline int clampToInteger(double value) { diff --git a/src/imports/dialogs/qquickabstractdialog.cpp b/src/imports/dialogs/qquickabstractdialog.cpp index 633e5b7269..9bb2388741 100644 --- a/src/imports/dialogs/qquickabstractdialog.cpp +++ b/src/imports/dialogs/qquickabstractdialog.cpp @@ -62,7 +62,9 @@ QQuickAbstractDialog::QQuickAbstractDialog(QObject *parent) , m_contentItem(0) , m_windowDecoration(0) , m_hasNativeWindows(QGuiApplicationPrivate::platformIntegration()-> - hasCapability(QPlatformIntegration::MultipleWindows)) + hasCapability(QPlatformIntegration::MultipleWindows) && + QGuiApplicationPrivate::platformIntegration()-> + hasCapability(QPlatformIntegration::WindowManagement)) , m_hasAspiredPosition(false) { } diff --git a/src/particles/particles.pro b/src/particles/particles.pro index 71be71ae25..ba65ee3002 100644 --- a/src/particles/particles.pro +++ b/src/particles/particles.pro @@ -10,27 +10,10 @@ solaris-cc*:QMAKE_CXXFLAGS_RELEASE -= -O2 exists("qqml_enable_gcov") { QMAKE_CXXFLAGS = -fprofile-arcs -ftest-coverage -fno-elide-constructors - LIBS += -lgcov + LIBS_PRIVATE += -lgcov } MODULE = quickparticles load(qt_module) include(particles.pri) - -mac { - # FIXME: this is a workaround for broken qmake logic in qtAddModule() - # This function refuses to use frameworks unless the framework exists on - # the filesystem at the time qmake is run, resulting in a build failure - # if QtQuick is qmaked before QtQml is built and frameworks are - # in use. qtAddLibrary() contains correct logic to deal with this, so - # we'll explicitly call that for now. - load(qt) - LIBS -= -lQtQml # in non-framework builds, these should be re-added - LIBS -= -lQtQml_debug # within the qtAddLibrary if appropriate, so no - qtAddLibrary(QtQml) # harm done :) - LIBS -= -lQtQuick - LIBS -= -lQtQuick_debug - qtAddLibrary(QtQuick) -} - diff --git a/src/qml/compiler/qv4ssa.cpp b/src/qml/compiler/qv4ssa.cpp index b3eb6835df..eccdfff623 100644 --- a/src/qml/compiler/qv4ssa.cpp +++ b/src/qml/compiler/qv4ssa.cpp @@ -2330,7 +2330,7 @@ void splitCriticalEdges(Function *f) // (see for example section 4 (Lifetime Analysis) of [Wimmer1]). This algorithm makes sure that the // blocks of a group are scheduled together, with no non-loop blocks in between. This applies // recursively for nested loops. It also schedules groups of if-then-else-endif blocks together for -// the smae reason. +// the same reason. class BlockScheduler { Function *function; @@ -2357,15 +2357,15 @@ class BlockScheduler if (emitted.alreadyProcessed(in)) continue; - // this is a loop, where there in -> candidate edge is the jump back to the top of the loop. if (dominatorTree.dominates(candidate, in)) + // this is a loop, where there in -> candidate edge is the jump back to the top of the loop. continue; return false; // an incoming edge that is not yet emitted, and is not a back-edge } - // postpone everything, and schedule the loop first. if (candidate->isGroupStart()) { + // postpone everything, and schedule the loop first. postponedGroups.push(currentGroup); currentGroup = WorkForGroup(candidate); } @@ -2389,6 +2389,7 @@ class BlockScheduler return next; } + Q_UNREACHABLE(); return 0; } @@ -3476,11 +3477,11 @@ void Optimizer::run(QQmlEnginePrivate *qmlEngine) // block scheduling, so remove those now. // qout << "Cleaning up unreachable basic blocks..." << endl; cleanupBasicBlocks(function, false); - showMeTheCode(function); +// showMeTheCode(function); // qout << "Doing block scheduling..." << endl; startEndLoops = BlockScheduler(function, df).go(); - showMeTheCode(function); +// showMeTheCode(function); #ifndef QT_NO_DEBUG checkCriticalEdges(function->basicBlocks); @@ -3750,3 +3751,10 @@ MoveMapping::Action MoveMapping::schedule(const Move &m, QList<Move> &todo, QLis // References: // [Wimmer1] C. Wimmer and M. Franz. Linear Scan Register Allocation on SSA Form. In Proceedings of // CGO’10, ACM Press, 2010 +// [Wimmer2] C. Wimmer and H. Mossenbock. Optimized Interval Splitting in a Linear Scan Register +// Allocator. In Proceedings of the ACM/USENIX International Conference on Virtual +// Execution Environments, pages 132–141. ACM Press, 2005. +// [Briggs] P. Briggs, K.D. Cooper, T.J. Harvey, and L.T. Simpson. Practical Improvements to the +// Construction and Destruction of Static Single Assignment Form. +// [Appel] A.W. Appel. Modern Compiler Implementation in Java. Second edition, Cambridge +// University Press. diff --git a/src/qml/jsruntime/qv4engine.cpp b/src/qml/jsruntime/qv4engine.cpp index dc8c0da321..539bc5ddd6 100644 --- a/src/qml/jsruntime/qv4engine.cpp +++ b/src/qml/jsruntime/qv4engine.cpp @@ -76,6 +76,7 @@ #if USE(PTHREADS) # include <pthread.h> +# include <sys/resource.h> #endif QT_BEGIN_NAMESPACE @@ -113,6 +114,15 @@ quintptr getStackLimit() pthread_attr_getstack(&attr, &stackBottom, &stackSize); pthread_attr_destroy(&attr); +# if defined(Q_OS_ANDROID) + // Bionic pretends that the main thread has a tiny stack; work around it + if (gettid() == getpid()) { + rlimit limit; + getrlimit(RLIMIT_STACK, &limit); + stackBottom = reinterpret_cast<void*>(reinterpret_cast<quintptr>(stackBottom) + stackSize - limit.rlim_cur); + } +# endif + stackLimit = reinterpret_cast<quintptr>(stackBottom); # endif // This is wrong. StackLimit is the currently committed stack size, not the real end. diff --git a/src/qml/qml.pro b/src/qml/qml.pro index b0ea93e9fb..d060b2d8c8 100644 --- a/src/qml/qml.pro +++ b/src/qml/qml.pro @@ -13,7 +13,7 @@ MODULE_PLUGIN_TYPES = \ exists("qqml_enable_gcov") { QMAKE_CXXFLAGS = -fprofile-arcs -ftest-coverage -fno-elide-constructors - LIBS += -lgcov + LIBS_PRIVATE += -lgcov } QMAKE_DOCS = $$PWD/doc/qtqml.qdocconf diff --git a/src/qml/qml/ftw/qqmlthread.cpp b/src/qml/qml/ftw/qqmlthread.cpp index 3accb9dce5..1ea3f25405 100644 --- a/src/qml/qml/ftw/qqmlthread.cpp +++ b/src/qml/qml/ftw/qqmlthread.cpp @@ -179,15 +179,17 @@ void QQmlThreadPrivate::threadEvent() { lock(); - if (m_shutdown) { - quit(); - wakeOne(); - unlock(); - q->shutdownThread(); - } else { - m_threadProcessing = true; + for (;;) { + if (m_shutdown) { + quit(); + wakeOne(); + unlock(); + q->shutdownThread(); + + return; + } else if (!threadList.isEmpty()) { + m_threadProcessing = true; - while (!threadList.isEmpty()) { QQmlThread::Message *message = threadList.first(); unlock(); @@ -197,13 +199,15 @@ void QQmlThreadPrivate::threadEvent() lock(); delete threadList.takeFirst(); - } + } else { + wakeOne(); - wakeOne(); + m_threadProcessing = false; - m_threadProcessing = false; + unlock(); - unlock(); + return; + } } } @@ -228,8 +232,11 @@ void QQmlThread::shutdown() d->lock(); Q_ASSERT(!d->m_shutdown); d->m_shutdown = true; - if (d->threadList.isEmpty() && d->m_threadProcessing == false) + if (d->threadList.isEmpty() && d->m_threadProcessing == false) { d->triggerThreadEvent(); + } else if (d->mainSync) { + d->wakeOne(); + } d->wait(); d->unlock(); d->QThread::wait(); @@ -333,8 +340,14 @@ void QQmlThread::internalCallMethodInMain(Message *message) d->triggerMainEvent(); } - while (d->mainSync && !d->m_shutdown) + while (d->mainSync) { + if (d->m_shutdown) { + delete d->mainSync; + d->mainSync = 0; + break; + } d->wait(); + } d->unlock(); } diff --git a/src/qml/types/qqmllistmodel.cpp b/src/qml/types/qqmllistmodel.cpp index d6d3de8af3..7e441023c9 100644 --- a/src/qml/types/qqmllistmodel.cpp +++ b/src/qml/types/qqmllistmodel.cpp @@ -1508,11 +1508,11 @@ QQmlListModelParser::ListInstruction *QQmlListModelParser::ListModelData::instru Here is an example that uses WorkerScript to periodically append the current time to a list model: - \snippet quick/threading/threadedlistmodel/timedisplay.qml 0 + \snippet ../quick/threading/threadedlistmodel/timedisplay.qml 0 The included file, \tt dataloader.js, looks like this: - \snippet quick/threading/threadedlistmodel/dataloader.js 0 + \snippet ../quick/threading/threadedlistmodel/dataloader.js 0 The timer in the main example sends messages to the worker script by calling \l WorkerScript::sendMessage(). When this message is received, diff --git a/src/qmltest/qmltest.pro b/src/qmltest/qmltest.pro index 952ef24922..4b4c06b27e 100644 --- a/src/qmltest/qmltest.pro +++ b/src/qmltest/qmltest.pro @@ -4,6 +4,10 @@ DEFINES += QT_NO_URL_CAST_FROM_STRING QT = core QT_PRIVATE = testlib-private quick qml-private gui core-private +# Testlib is only a private dependency, which results in our users not +# inheriting CONFIG+=console transitively. Make it explicit. +MODULE_CONFIG = console + !contains(QT_CONFIG, no-widgets) { QT += widgets DEFINES += QT_QMLTEST_WITH_WIDGETS diff --git a/src/quick/doc/src/qmltypereference.qdoc b/src/quick/doc/src/qmltypereference.qdoc index cf40fbe37c..0155ee4e2d 100644 --- a/src/quick/doc/src/qmltypereference.qdoc +++ b/src/quick/doc/src/qmltypereference.qdoc @@ -246,8 +246,8 @@ QML Lists and Models The \l{Qt QML Models QML Types}{Qt QML Models} submodule provides the types for structuring data with models and lists. \list -\li \l ListModel - Defines a list of data -\li \l ListElement - Defines a data item in a \l ListModel +\li \l{ListModel} - Defines a list of data +\li \l{ListElement} - Defines a data item in a \l{ListModel} \endlist These QML types are part of Qt Quick for backwards compatibility, but for diff --git a/src/quick/items/qquickborderimage.cpp b/src/quick/items/qquickborderimage.cpp index 0bed5e96a2..8ecf473d85 100644 --- a/src/quick/items/qquickborderimage.cpp +++ b/src/quick/items/qquickborderimage.cpp @@ -350,6 +350,7 @@ void QQuickBorderImage::load() } /*! + \qmlpropertygroup QtQuick::BorderImage::border \qmlproperty int QtQuick::BorderImage::border.left \qmlproperty int QtQuick::BorderImage::border.right \qmlproperty int QtQuick::BorderImage::border.top diff --git a/src/quick/items/qquickdrag.cpp b/src/quick/items/qquickdrag.cpp index ea130968ca..ed9d1838b8 100644 --- a/src/quick/items/qquickdrag.cpp +++ b/src/quick/items/qquickdrag.cpp @@ -507,24 +507,23 @@ void QQuickDragAttached::setProposedAction(Qt::DropAction action) } /*! - \qmlattachedproperty enumeration QtQuick::Drag::dragType - \since 5.2 - - This property indicates whether to automatically start drags, do nothing, or - to use backwards compatible internal drags. The default is to use backwards - compatible internal drags. + \qmlattachedproperty enumeration QtQuick::Drag::dragType + \since 5.2 - A drag can also be started manually using \l startDrag. + This property indicates whether to automatically start drags, do nothing, or + to use backwards compatible internal drags. The default is to use backwards + compatible internal drags. - \list - \li Drag.None - do not start drags automatically - \li Drag.Automatic - start drags automatically - \li Drag.Internal (default) - start backwards compatible drags automatically - \endlist + A drag can also be started manually using \l startDrag. - When using \l Drag.Automatic you should also define \l mimeData and bind the - \active property to the active property of \l MouseArea.drag. + \list + \li Drag.None - do not start drags automatically + \li Drag.Automatic - start drags automatically + \li Drag.Internal (default) - start backwards compatible drags automatically + \endlist + When using \l Drag.Automatic you should also define \l mimeData and bind the + \active property to the active property of \l MouseArea.drag. */ QQuickDrag::DragType QQuickDragAttached::dragType() const @@ -622,7 +621,6 @@ void QQuickDragAttached::start(QQmlV4Function *args) \li Qt.LinkAction Create a link from the source to the target. \li Qt.IgnoreAction Ignore the action (do nothing with the data). \endlist - */ int QQuickDragAttached::drop() @@ -696,17 +694,17 @@ void QQuickDragAttached::cancel() } /*! - \qmlsignal QtQuick::DropArea::onDragStarted() + \qmlattachedsignal QtQuick::Drag::onDragStarted() - This handler is called when a drag is started with the \l startDrag method - or when it is started automatically using the \l dragType property. + This handler is called when a drag is started with the \l startDrag method + or when it is started automatically using the \l dragType property. */ /*! - \qmlsignal QtQuick::DropArea::onDragFinished(DropAction action) + \qmlattachedsignal QtQuick::Drag::onDragFinished(DropAction action) - This handler is called when a drag finishes and the drag was started with the - \l startDrag method or started automatically using the \l dragType property. + This handler is called when a drag finishes and the drag was started with the + \l startDrag method or started automatically using the \l dragType property. */ Qt::DropAction QQuickDragAttachedPrivate::startDrag(Qt::DropActions supportedActions) diff --git a/src/quick/items/qquickdroparea.cpp b/src/quick/items/qquickdroparea.cpp index 405e8f8c90..01166ab121 100644 --- a/src/quick/items/qquickdroparea.cpp +++ b/src/quick/items/qquickdroparea.cpp @@ -193,6 +193,7 @@ QObject *QQuickDropAreaDrag::source() const } /*! + \qmlpropertygroup QtQuick::DropArea::drag \qmlproperty qreal QtQuick::DropArea::drag.x \qmlproperty qreal QtQuick::DropArea::drag.y diff --git a/src/quick/items/qquickflickable.cpp b/src/quick/items/qquickflickable.cpp index fa18d4aa30..3b592004c9 100644 --- a/src/quick/items/qquickflickable.cpp +++ b/src/quick/items/qquickflickable.cpp @@ -646,6 +646,7 @@ is finished. */ /*! + \qmlpropertygroup QtQuick::Flickable::visibleArea \qmlproperty real QtQuick::Flickable::visibleArea.xPosition \qmlproperty real QtQuick::Flickable::visibleArea.widthRatio \qmlproperty real QtQuick::Flickable::visibleArea.yPosition diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp index d6dd7cb61a..8c94b9dd5b 100644 --- a/src/quick/items/qquickitem.cpp +++ b/src/quick/items/qquickitem.cpp @@ -3052,6 +3052,7 @@ void QQuickItemPrivate::_q_resourceObjectDeleted(QObject *object) } /*! + \qmlpropertygroup QtQuick::Item::anchors \qmlproperty AnchorLine QtQuick::Item::anchors.top \qmlproperty AnchorLine QtQuick::Item::anchors.bottom \qmlproperty AnchorLine QtQuick::Item::anchors.left @@ -3175,6 +3176,7 @@ QQmlListProperty<QObject> QQuickItemPrivate::data() } /*! + \qmlpropertygroup QtQuick::Item::childrenRect \qmlproperty real QtQuick::Item::childrenRect.x \qmlproperty real QtQuick::Item::childrenRect.y \qmlproperty real QtQuick::Item::childrenRect.width diff --git a/src/quick/items/qquickitemanimation.cpp b/src/quick/items/qquickitemanimation.cpp index b840ee421c..1d1ea97925 100644 --- a/src/quick/items/qquickitemanimation.cpp +++ b/src/quick/items/qquickitemanimation.cpp @@ -486,6 +486,7 @@ void QQuickAnchorAnimation::setDuration(int duration) } /*! + \qmlpropertygroup QtQuick::AnchorAnimation::easing \qmlproperty enumeration QtQuick::AnchorAnimation::easing.type \qmlproperty real QtQuick::AnchorAnimation::easing.amplitude \qmlproperty real QtQuick::AnchorAnimation::easing.overshoot @@ -622,6 +623,7 @@ void QQuickPathAnimation::setDuration(int duration) } /*! + \qmlpropertygroup QtQuick::PathAnimation::easing \qmlproperty enumeration QtQuick::PathAnimation::easing.type \qmlproperty real QtQuick::PathAnimation::easing.amplitude \qmlproperty list<real> QtQuick::PathAnimation::easing.bezierCurve diff --git a/src/quick/items/qquickitemview.cpp b/src/quick/items/qquickitemview.cpp index 6d4c2e7877..f5c0e3b8d2 100644 --- a/src/quick/items/qquickitemview.cpp +++ b/src/quick/items/qquickitemview.cpp @@ -2101,7 +2101,7 @@ void QQuickItemViewPrivate::removeItem(FxViewItem *item, const QQmlChangeSet::Re { if (removeResult->visiblePos.isValid()) { if (item->position() < removeResult->visiblePos) - removeResult->sizeChangesBeforeVisiblePos += item->size(); + updateSizeChangesBeforeVisiblePos(item, removeResult); else removeResult->sizeChangesAfterVisiblePos += item->size(); } @@ -2116,6 +2116,11 @@ void QQuickItemViewPrivate::removeItem(FxViewItem *item, const QQmlChangeSet::Re removeResult->changedFirstItem = true; } +void QQuickItemViewPrivate::updateSizeChangesBeforeVisiblePos(FxViewItem *item, ChangeResult *removeResult) +{ + removeResult->sizeChangesBeforeVisiblePos += item->size(); +} + void QQuickItemViewPrivate::repositionFirstItem(FxViewItem *prevVisibleItemsFirst, qreal prevVisibleItemsFirstPos, FxViewItem *prevFirstVisible, diff --git a/src/quick/items/qquickitemview_p_p.h b/src/quick/items/qquickitemview_p_p.h index bb1b7927c2..af7c23c02e 100644 --- a/src/quick/items/qquickitemview_p_p.h +++ b/src/quick/items/qquickitemview_p_p.h @@ -211,6 +211,7 @@ public: bool applyModelChanges(ChangeResult *insertionResult, ChangeResult *removalResult); bool applyRemovalChange(const QQmlChangeSet::Remove &removal, ChangeResult *changeResult, int *removedCount); void removeItem(FxViewItem *item, const QQmlChangeSet::Remove &removal, ChangeResult *removeResult); + virtual void updateSizeChangesBeforeVisiblePos(FxViewItem *item, ChangeResult *removeResult); void repositionFirstItem(FxViewItem *prevVisibleItemsFirst, qreal prevVisibleItemsFirstPos, FxViewItem *prevFirstVisible, ChangeResult *insertionResult, ChangeResult *removalResult); diff --git a/src/quick/items/qquicklistview.cpp b/src/quick/items/qquicklistview.cpp index 6324d7960a..94222693b5 100644 --- a/src/quick/items/qquicklistview.cpp +++ b/src/quick/items/qquicklistview.cpp @@ -98,6 +98,7 @@ public: virtual void repositionPackageItemAt(QQuickItem *item, int index); virtual void resetFirstItemPosition(qreal pos = 0.0); virtual void adjustFirstItem(qreal forwards, qreal backwards, int); + virtual void updateSizeChangesBeforeVisiblePos(FxViewItem *item, ChangeResult *removeResult); virtual void createHighlight(); virtual void updateHighlight(); @@ -846,6 +847,12 @@ void QQuickListViewPrivate::adjustFirstItem(qreal forwards, qreal backwards, int static_cast<FxListItemSG*>(visibleItems.first())->setPosition(visibleItems.first()->position() + diff); } +void QQuickListViewPrivate::updateSizeChangesBeforeVisiblePos(FxViewItem *item, ChangeResult *removeResult) +{ + if (item != visibleItems.first()) + QQuickItemViewPrivate::updateSizeChangesBeforeVisiblePos(item, removeResult); +} + void QQuickListViewPrivate::createHighlight() { Q_Q(QQuickListView); @@ -2167,6 +2174,7 @@ void QQuickListView::setOrientation(QQuickListView::Orientation orientation) */ /*! + \qmlpropertygroup QtQuick::ListView::section \qmlproperty string QtQuick::ListView::section.property \qmlproperty enumeration QtQuick::ListView::section.criteria \qmlproperty Component QtQuick::ListView::section.delegate diff --git a/src/quick/items/qquickmousearea.cpp b/src/quick/items/qquickmousearea.cpp index 438ec29fd0..f07571d3cc 100644 --- a/src/quick/items/qquickmousearea.cpp +++ b/src/quick/items/qquickmousearea.cpp @@ -1183,6 +1183,7 @@ void QQuickMouseArea::setCursorShape(Qt::CursorShape shape) #endif /*! + \qmlpropertygroup QtQuick::MouseArea::drag \qmlproperty Item QtQuick::MouseArea::drag.target \qmlproperty bool QtQuick::MouseArea::drag.active \qmlproperty enumeration QtQuick::MouseArea::drag.axis diff --git a/src/quick/items/qquickpincharea.cpp b/src/quick/items/qquickpincharea.cpp index eadf82f888..419792aaa5 100644 --- a/src/quick/items/qquickpincharea.cpp +++ b/src/quick/items/qquickpincharea.cpp @@ -221,6 +221,7 @@ QQuickPinchAreaPrivate::~QQuickPinchAreaPrivate() /*! + \qmlpropertygroup QtQuick::PinchArea::pinch \qmlproperty Item QtQuick::PinchArea::pinch.target \qmlproperty bool QtQuick::PinchArea::pinch.active \qmlproperty real QtQuick::PinchArea::pinch.minimumScale diff --git a/src/quick/items/qquickrectangle.cpp b/src/quick/items/qquickrectangle.cpp index d6323026e7..ee1b66f2b5 100644 --- a/src/quick/items/qquickrectangle.cpp +++ b/src/quick/items/qquickrectangle.cpp @@ -331,6 +331,7 @@ void QQuickRectangle::doUpdate() */ /*! + \qmlpropertygroup QtQuick::Rectangle::border \qmlproperty int QtQuick::Rectangle::border.width \qmlproperty color QtQuick::Rectangle::border.color diff --git a/src/quick/items/qquickstateoperations.cpp b/src/quick/items/qquickstateoperations.cpp index 00c2103289..a05b4f38ff 100644 --- a/src/quick/items/qquickstateoperations.cpp +++ b/src/quick/items/qquickstateoperations.cpp @@ -954,6 +954,7 @@ void QQuickAnchorChanges::setObject(QQuickItem *target) } /*! + \qmlpropertygroup QtQuick::AnchorChanges::anchors \qmlproperty AnchorLine QtQuick::AnchorChanges::anchors.left \qmlproperty AnchorLine QtQuick::AnchorChanges::anchors.right \qmlproperty AnchorLine QtQuick::AnchorChanges::anchors.horizontalCenter diff --git a/src/quick/items/qquicktranslate.cpp b/src/quick/items/qquicktranslate.cpp index 93104ffa7a..f1b716cf5b 100644 --- a/src/quick/items/qquicktranslate.cpp +++ b/src/quick/items/qquicktranslate.cpp @@ -198,6 +198,7 @@ QQuickScale::~QQuickScale() } /*! + \qmlpropertygroup QtQuick::Scale::origin \qmlproperty real QtQuick::Scale::origin.x \qmlproperty real QtQuick::Scale::origin.y @@ -347,6 +348,7 @@ QQuickRotation::~QQuickRotation() } /*! + \qmlpropertygroup QtQuick::Rotation::origin \qmlproperty real QtQuick::Rotation::origin.x \qmlproperty real QtQuick::Rotation::origin.y @@ -391,6 +393,7 @@ void QQuickRotation::setAngle(qreal angle) } /*! + \qmlpropertygroup QtQuick::Rotation::axis \qmlproperty real QtQuick::Rotation::axis.x \qmlproperty real QtQuick::Rotation::axis.y \qmlproperty real QtQuick::Rotation::axis.z diff --git a/src/quick/quick.pro b/src/quick/quick.pro index 7c540591ab..5168ec2c24 100644 --- a/src/quick/quick.pro +++ b/src/quick/quick.pro @@ -9,7 +9,7 @@ solaris-cc*:QMAKE_CXXFLAGS_RELEASE -= -O2 exists("qqml_enable_gcov") { QMAKE_CXXFLAGS = -fprofile-arcs -ftest-coverage -fno-elide-constructors - LIBS += -lgcov + LIBS_PRIVATE += -lgcov } QMAKE_DOCS = $$PWD/doc/qtquick.qdocconf @@ -40,17 +40,3 @@ SOURCES += qtquick2.cpp # To make #include "qquickcontext2d_jsclass.cpp" work INCLUDEPATH += $$PWD - -mac { - # FIXME: this is a workaround for broken qmake logic in qtAddModule() - # This function refuses to use frameworks unless the framework exists on - # the filesystem at the time qmake is run, resulting in a build failure - # if QtQuick is qmaked before QtQml is built and frameworks are - # in use. qtAddLibrary() contains correct logic to deal with this, so - # we'll explicitly call that for now. - load(qt) - LIBS -= -lQtQml # in non-framework builds, these should be re-added - LIBS -= -lQtQml_debug # within the qtAddLibrary if appropriate, so no - qtAddLibrary(QtQml) # harm done :) -} - diff --git a/src/quick/util/qquickanimation.cpp b/src/quick/util/qquickanimation.cpp index f743acc249..ad9cf06d5c 100644 --- a/src/quick/util/qquickanimation.cpp +++ b/src/quick/util/qquickanimation.cpp @@ -2083,6 +2083,7 @@ void QQuickPropertyAnimation::setTo(const QVariant &t) } /*! + \qmlpropertygroup QtQuick::PropertyAnimation::easing \qmlproperty enumeration QtQuick::PropertyAnimation::easing.type \qmlproperty real QtQuick::PropertyAnimation::easing.amplitude \qmlproperty real QtQuick::PropertyAnimation::easing.overshoot |